(window.webpackJsonp = window.webpackJsonp || []).push([
    [6],
    [function(e, t, i) {
        "use strict";
        (function(e, r) {
            i.d(t, "a", function() {
                return Et
            }), i.d(t, "b", function() {
                return Ge
            }), i.d(t, "c", function() {
                return He
            }), i.d(t, "d", function() {
                return K
            }), i.d(t, "e", function() {
                return Qe
            }), i.d(t, "f", function() {
                return q
            }), i.d(t, "g", function() {
                return ze
            }), i.d(t, "h", function() {
                return Ue
            }), i.d(t, "i", function() {
                return at
            });
            /*! *****************************************************************************
            Copyright (c) Microsoft Corporation. All rights reserved.
            Licensed under the Apache License, Version 2.0 (the "License"); you may not use
            this file except in compliance with the License. You may obtain a copy of the
            License at http://www.apache.org/licenses/LICENSE-2.0

            THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
            KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
            WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
            MERCHANTABLITY OR NON-INFRINGEMENT.

            See the Apache Version 2.0 License for specific language governing permissions
            and limitations under the License.
            ***************************************************************************** */
            var n = function(e, t) {
                return (n = Object.setPrototypeOf || {
                        __proto__: []
                    }
                    instanceof Array && function(e, t) {
                        e.__proto__ = t
                    } || function(e, t) {
                        for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i])
                    })(e, t)
            };
            var a = function() {
                return (a = Object.assign || function(e) {
                    for (var t, i = 1, r = arguments.length; i < r; i++)
                        for (var n in t = arguments[i]) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                    return e
                }).apply(this, arguments)
            };

            function s(e) {
                var t = "function" == typeof Symbol && e[Symbol.iterator],
                    i = 0;
                return t ? t.call(e) : {
                    next: function() {
                        return e && i >= e.length && (e = void 0), {
                            value: e && e[i++],
                            done: !e
                        }
                    }
                }
            }

            function o(e, t) {
                var i = "function" == typeof Symbol && e[Symbol.iterator];
                if (!i) return e;
                var r, n, a = i.call(e),
                    s = [];
                try {
                    for (;
                        (void 0 === t || t-- > 0) && !(r = a.next()).done;) s.push(r.value)
                } catch (e) {
                    n = {
                        error: e
                    }
                } finally {
                    try {
                        r && !r.done && (i = a.return) && i.call(a)
                    } finally {
                        if (n) throw n.error
                    }
                }
                return s
            }
            var u = "An invariant failed, however the error is obfuscated because this is an production build.",
                h = [];
            Object.freeze(h);
            var l = {};

            function f() {
                return ++xe.mobxGuid
            }

            function c(e) {
                throw d(!1, e), "X"
            }

            function d(e, t) {
                if (!e) throw new Error("[mobx] " + (t || u))
            }
            Object.freeze(l);

            function p(e) {
                var t = !1;
                return function() {
                    if (!t) return t = !0, e.apply(this, arguments)
                }
            }
            var v = function() {};

            function m(e) {
                return null !== e && "object" == typeof e
            }

            function _(e) {
                if (null === e || "object" != typeof e) return !1;
                var t = Object.getPrototypeOf(e);
                return t === Object.prototype || null === t
            }

            function b(e, t, i) {
                Object.defineProperty(e, t, {
                    enumerable: !1,
                    writable: !0,
                    configurable: !0,
                    value: i
                })
            }

            function g(e, t) {
                var i = "isMobX" + e;
                return t.prototype[i] = !0,
                    function(e) {
                        return m(e) && !0 === e[i]
                    }
            }

            function y(e) {
                return e instanceof Map
            }

            function A(e) {
                return e instanceof Set
            }

            function w(e) {
                var t = new Set;
                for (var i in e) t.add(i);
                return Object.getOwnPropertySymbols(e).forEach(function(i) {
                    Object.getOwnPropertyDescriptor(e, i).enumerable && t.add(i)
                }), Array.from(t)
            }

            function x(e) {
                return e && e.toString ? e.toString() : new String(e).toString()
            }

            function k(e) {
                return null === e ? null : "object" == typeof e ? "" + e : e
            }
            var T = Symbol("mobx administration"),
                E = function() {
                    function e(e) {
                        void 0 === e && (e = "Atom@" + f()), this.name = e, this.isPendingUnobservation = !1, this.isBeingObserved = !1, this.observers = new Set, this.diffValue = 0, this.lastAccessedBy = 0, this.lowestObserverState = ae.NOT_TRACKING
                    }
                    return e.prototype.onBecomeObserved = function() {
                        this.onBecomeObservedListeners && this.onBecomeObservedListeners.forEach(function(e) {
                            return e()
                        })
                    }, e.prototype.onBecomeUnobserved = function() {
                        this.onBecomeUnobservedListeners && this.onBecomeUnobservedListeners.forEach(function(e) {
                            return e()
                        })
                    }, e.prototype.reportObserved = function() {
                        return Me(this)
                    }, e.prototype.reportChanged = function() {
                        Pe(),
                            function(e) {
                                if (e.lowestObserverState === ae.STALE) return;
                                e.lowestObserverState = ae.STALE, e.observers.forEach(function(t) {
                                    t.dependenciesState === ae.UP_TO_DATE && (t.isTracing !== se.NONE && Ce(t, e), t.onBecomeStale()), t.dependenciesState = ae.STALE
                                })
                            }(this), Ie()
                    }, e.prototype.toString = function() {
                        return this.name
                    }, e
                }(),
                S = g("Atom", E);

            function P(e, t, i) {
                void 0 === t && (t = v), void 0 === i && (i = v);
                var r, n = new E(e);
                return t !== v && Je("onBecomeObserved", n, t, r), i !== v && qe(n, i), n
            }
            var I = {
                    identity: function(e, t) {
                        return e === t
                    },
                    structural: function(e, t) {
                        return Xt(e, t)
                    },
                    default: function(e, t) {
                        return Object.is(e, t)
                    }
                },
                M = Symbol("mobx did run lazy initializers"),
                C = Symbol("mobx pending decorators"),
                O = {},
                R = {};

            function D(e, t) {
                var i = t ? O : R;
                return i[e] || (i[e] = {
                    configurable: !0,
                    enumerable: t,
                    get: function() {
                        return F(this), this[e]
                    },
                    set: function(t) {
                        F(this), this[e] = t
                    }
                })
            }

            function F(e) {
                if (!0 !== e[M]) {
                    var t = e[C];
                    if (t)
                        for (var i in b(e, M, !0), t) {
                            var r = t[i];
                            r.propertyCreator(e, r.prop, r.descriptor, r.decoratorTarget, r.decoratorArguments)
                        }
                }
            }

            function B(e, t) {
                return function() {
                    var i, r = function(r, n, s, o) {
                        if (!0 === o) return t(r, n, s, r, i), null;
                        if (!Object.prototype.hasOwnProperty.call(r, C)) {
                            var u = r[C];
                            b(r, C, a({}, u))
                        }
                        return r[C][n] = {
                            prop: n,
                            propertyCreator: t,
                            descriptor: s,
                            decoratorTarget: r,
                            decoratorArguments: i
                        }, D(n, e)
                    };
                    return N(arguments) ? (i = h, r.apply(null, arguments)) : (i = Array.prototype.slice.call(arguments), r)
                }
            }

            function N(e) {
                return (2 === e.length || 3 === e.length) && "string" == typeof e[1] || 4 === e.length && !0 === e[3]
            }

            function L(e, t, i) {
                return rt(e) ? e : Array.isArray(e) ? q.array(e, {
                    name: i
                }) : _(e) ? q.object(e, void 0, {
                    name: i
                }) : y(e) ? q.map(e, {
                    name: i
                }) : A(e) ? q.set(e, {
                    name: i
                }) : e
            }

            function U(e) {
                return e
            }

            function V(t) {
                d(t);
                var i = B(!0, function(e, i, r, n, a) {
                        var s = r ? r.initializer ? r.initializer.call(e) : r.value : void 0;
                        Ot(e).addObservableProp(i, s, t)
                    }),
                    r = (void 0 !== e && e.env, i);
                return r.enhancer = t, r
            }
            var X = {
                deep: !0,
                name: void 0,
                defaultDecorator: void 0,
                proxy: !0
            };

            function j(e) {
                return null == e ? X : "string" == typeof e ? {
                    name: e,
                    deep: !0,
                    proxy: !0
                } : e
            }
            Object.freeze(X);
            var G = V(L),
                $ = V(function(e, t, i) {
                    return null == e ? e : Nt(e) || xt(e) || St(e) || Mt(e) ? e : Array.isArray(e) ? q.array(e, {
                        name: i,
                        deep: !1
                    }) : _(e) ? q.object(e, void 0, {
                        name: i,
                        deep: !1
                    }) : y(e) ? q.map(e, {
                        name: i,
                        deep: !1
                    }) : A(e) ? q.set(e, {
                        name: i,
                        deep: !1
                    }) : c(!1)
                }),
                H = V(U),
                W = V(function(e, t, i) {
                    return Xt(e, t) ? t : e
                });

            function Y(e) {
                return e.defaultDecorator ? e.defaultDecorator.enhancer : !1 === e.deep ? U : L
            }
            var z = {
                    box: function(e, t) {
                        arguments.length > 2 && J("box");
                        var i = j(t);
                        return new oe(e, Y(i), i.name, !0, i.equals)
                    },
                    array: function(e, t) {
                        arguments.length > 2 && J("array");
                        var i = j(t);
                        return bt(e, Y(i), i.name)
                    },
                    map: function(e, t) {
                        arguments.length > 2 && J("map");
                        var i = j(t);
                        return new Et(e, Y(i), i.name)
                    },
                    set: function(e, t) {
                        arguments.length > 2 && J("set");
                        var i = j(t);
                        return new It(e, Y(i), i.name)
                    },
                    object: function(e, t, i) {
                        "string" == typeof arguments[1] && J("object");
                        var r = j(i);
                        if (!1 === r.proxy) return Ze({}, e, t, r);
                        var n = Ke(r),
                            a = Ze({}, void 0, void 0, r),
                            s = lt(a);
                        return et(s, e, t, n), s
                    },
                    ref: H,
                    shallow: $,
                    deep: G,
                    struct: W
                },
                q = function(e, t, i) {
                    if ("string" == typeof arguments[1]) return G.apply(null, arguments);
                    if (rt(e)) return e;
                    var r = _(e) ? q.object(e, t, i) : Array.isArray(e) ? q.array(e, t) : y(e) ? q.map(e, t) : A(e) ? q.set(e, t) : e;
                    if (r !== e) return r;
                    c(!1)
                };

            function J(e) {
                c("Expected one or two arguments to observable." + e + ". Did you accidentally try to use observable." + e + " as decorator?")
            }
            Object.keys(z).forEach(function(e) {
                return q[e] = z[e]
            });
            var Q = B(!1, function(e, t, i, r, n) {
                    var s = i.get,
                        o = i.set,
                        u = n[0] || {};
                    Ot(e).addComputedProp(e, t, a({
                        get: s,
                        set: o,
                        context: e
                    }, u))
                }),
                Z = Q({
                    equals: I.structural
                }),
                K = function(e, t, i) {
                    if ("string" == typeof t) return Q.apply(null, arguments);
                    if (null !== e && "object" == typeof e && 1 === arguments.length) return Q.apply(null, arguments);
                    var r = "object" == typeof t ? t : {};
                    return r.get = e, r.set = "function" == typeof t ? t : r.set, r.name = r.name || e.name || "", new ue(r)
                };

            function ee(e, t, i) {
                var r = function() {
                    return te(e, t, i || this, arguments)
                };
                return r.isMobxAction = !0, r
            }

            function te(e, t, i, r) {
                var n = function(e, t, i, r) {
                        var n = 0;
                        var a = _e();
                        Pe();
                        var s = re(!0);
                        return {
                            prevDerivation: a,
                            prevAllowStateChanges: s,
                            notifySpy: !1,
                            startTime: n
                        }
                    }(),
                    a = !0;
                try {
                    var s = t.apply(i, r);
                    return a = !1, s
                } finally {
                    a ? (xe.suppressReactionErrors = a, ie(n), xe.suppressReactionErrors = !1) : ie(n)
                }
            }

            function ie(e) {
                ne(e.prevAllowStateChanges), Ie(), be(e.prevDerivation), e.notifySpy
            }

            function re(e) {
                var t = xe.allowStateChanges;
                return xe.allowStateChanges = e, t
            }

            function ne(e) {
                xe.allowStateChanges = e
            }
            K.struct = Z;
            var ae, se, oe = function(e) {
                    function t(t, i, r, n, a) {
                        void 0 === r && (r = "ObservableValue@" + f()), void 0 === n && (n = !0), void 0 === a && (a = I.default);
                        var s = e.call(this, r) || this;
                        return s.enhancer = i, s.name = r, s.equals = a, s.hasUnreportedChange = !1, s.value = i(t, void 0, r), s
                    }
                    return function(e, t) {
                        function i() {
                            this.constructor = e
                        }
                        n(e, t), e.prototype = null === t ? Object.create(t) : (i.prototype = t.prototype, new i)
                    }(t, e), t.prototype.dehanceValue = function(e) {
                        return void 0 !== this.dehancer ? this.dehancer(e) : e
                    }, t.prototype.set = function(e) {
                        this.value;
                        if ((e = this.prepareNewValue(e)) !== xe.UNCHANGED) {
                            0,
                            this.setNewValue(e)
                        }
                    }, t.prototype.prepareNewValue = function(e) {
                        if (de(this), ft(this)) {
                            var t = dt(this, {
                                object: this,
                                type: "update",
                                newValue: e
                            });
                            if (!t) return xe.UNCHANGED;
                            e = t.newValue
                        }
                        return e = this.enhancer(e, this.value, this.name), this.equals(this.value, e) ? xe.UNCHANGED : e
                    }, t.prototype.setNewValue = function(e) {
                        var t = this.value;
                        this.value = e, this.reportChanged(), pt(this) && mt(this, {
                            type: "update",
                            object: this,
                            newValue: e,
                            oldValue: t
                        })
                    }, t.prototype.get = function() {
                        return this.reportObserved(), this.dehanceValue(this.value)
                    }, t.prototype.intercept = function(e) {
                        return ct(this, e)
                    }, t.prototype.observe = function(e, t) {
                        return t && e({
                            object: this,
                            type: "update",
                            newValue: this.value,
                            oldValue: void 0
                        }), vt(this, e)
                    }, t.prototype.toJSON = function() {
                        return this.get()
                    }, t.prototype.toString = function() {
                        return this.name + "[" + this.value + "]"
                    }, t.prototype.valueOf = function() {
                        return k(this.get())
                    }, t.prototype[Symbol.toPrimitive] = function() {
                        return this.valueOf()
                    }, t
                }(E),
                ue = (g("ObservableValue", oe), function() {
                    function e(e) {
                        this.dependenciesState = ae.NOT_TRACKING, this.observing = [], this.newObserving = null, this.isBeingObserved = !1, this.isPendingUnobservation = !1, this.observers = new Set, this.diffValue = 0, this.runId = 0, this.lastAccessedBy = 0, this.lowestObserverState = ae.UP_TO_DATE, this.unboundDepsCount = 0, this.__mapid = "#" + f(), this.value = new le(null), this.isComputing = !1, this.isRunningSetter = !1, this.isTracing = se.NONE, this.derivation = e.get, this.name = e.name || "ComputedValue@" + f(), e.set && (this.setter = ee(this.name + "-setter", e.set)), this.equals = e.equals || (e.compareStructural || e.struct ? I.structural : I.default), this.scope = e.context, this.requiresReaction = !!e.requiresReaction, this.keepAlive = !!e.keepAlive
                    }
                    return e.prototype.onBecomeStale = function() {
                        ! function(e) {
                            if (e.lowestObserverState !== ae.UP_TO_DATE) return;
                            e.lowestObserverState = ae.POSSIBLY_STALE, e.observers.forEach(function(t) {
                                t.dependenciesState === ae.UP_TO_DATE && (t.dependenciesState = ae.POSSIBLY_STALE, t.isTracing !== se.NONE && Ce(t, e), t.onBecomeStale())
                            })
                        }(this)
                    }, e.prototype.onBecomeObserved = function() {
                        this.onBecomeObservedListeners && this.onBecomeObservedListeners.forEach(function(e) {
                            return e()
                        })
                    }, e.prototype.onBecomeUnobserved = function() {
                        this.onBecomeUnobservedListeners && this.onBecomeUnobservedListeners.forEach(function(e) {
                            return e()
                        })
                    }, e.prototype.get = function() {
                        this.isComputing && c("Cycle detected in computation " + this.name + ": " + this.derivation), 0 !== xe.inBatch || 0 !== this.observers.size || this.keepAlive ? (Me(this), ce(this) && this.trackAndCompute() && function(e) {
                            if (e.lowestObserverState === ae.STALE) return;
                            e.lowestObserverState = ae.STALE, e.observers.forEach(function(t) {
                                t.dependenciesState === ae.POSSIBLY_STALE ? t.dependenciesState = ae.STALE : t.dependenciesState === ae.UP_TO_DATE && (e.lowestObserverState = ae.UP_TO_DATE)
                            })
                        }(this)) : ce(this) && (this.warnAboutUntrackedRead(), Pe(), this.value = this.computeValue(!1), Ie());
                        var e = this.value;
                        if (fe(e)) throw e.cause;
                        return e
                    }, e.prototype.peek = function() {
                        var e = this.computeValue(!1);
                        if (fe(e)) throw e.cause;
                        return e
                    }, e.prototype.set = function(e) {
                        if (this.setter) {
                            d(!this.isRunningSetter, "The setter of computed value '" + this.name + "' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?"), this.isRunningSetter = !0;
                            try {
                                this.setter.call(this.scope, e)
                            } finally {
                                this.isRunningSetter = !1
                            }
                        } else d(!1, !1)
                    }, e.prototype.trackAndCompute = function() {
                        var e = this.value,
                            t = this.dependenciesState === ae.NOT_TRACKING,
                            i = this.computeValue(!0),
                            r = t || fe(e) || fe(i) || !this.equals(e, i);
                        return r && (this.value = i), r
                    }, e.prototype.computeValue = function(e) {
                        var t;
                        if (this.isComputing = !0, xe.computationDepth++, e) t = pe(this, this.derivation, this.scope);
                        else if (!0 === xe.disableErrorBoundaries) t = this.derivation.call(this.scope);
                        else try {
                            t = this.derivation.call(this.scope)
                        } catch (e) {
                            t = new le(e)
                        }
                        return xe.computationDepth--, this.isComputing = !1, t
                    }, e.prototype.suspend = function() {
                        this.keepAlive || (ve(this), this.value = void 0)
                    }, e.prototype.observe = function(e, t) {
                        var i = this,
                            r = !0,
                            n = void 0;
                        return He(function() {
                            var a = i.get();
                            if (!r || t) {
                                var s = _e();
                                e({
                                    type: "update",
                                    object: i,
                                    newValue: a,
                                    oldValue: n
                                }), be(s)
                            }
                            r = !1, n = a
                        })
                    }, e.prototype.warnAboutUntrackedRead = function() {}, e.prototype.toJSON = function() {
                        return this.get()
                    }, e.prototype.toString = function() {
                        return this.name + "[" + this.derivation.toString() + "]"
                    }, e.prototype.valueOf = function() {
                        return k(this.get())
                    }, e.prototype[Symbol.toPrimitive] = function() {
                        return this.valueOf()
                    }, e
                }()),
                he = g("ComputedValue", ue);
            ! function(e) {
                e[e.NOT_TRACKING = -1] = "NOT_TRACKING", e[e.UP_TO_DATE = 0] = "UP_TO_DATE", e[e.POSSIBLY_STALE = 1] = "POSSIBLY_STALE", e[e.STALE = 2] = "STALE"
            }(ae || (ae = {})),
            function(e) {
                e[e.NONE = 0] = "NONE", e[e.LOG = 1] = "LOG", e[e.BREAK = 2] = "BREAK"
            }(se || (se = {}));
            var le = function(e) {
                this.cause = e
            };

            function fe(e) {
                return e instanceof le
            }

            function ce(e) {
                switch (e.dependenciesState) {
                    case ae.UP_TO_DATE:
                        return !1;
                    case ae.NOT_TRACKING:
                    case ae.STALE:
                        return !0;
                    case ae.POSSIBLY_STALE:
                        for (var t = _e(), i = e.observing, r = i.length, n = 0; n < r; n++) {
                            var a = i[n];
                            if (he(a)) {
                                if (xe.disableErrorBoundaries) a.get();
                                else try {
                                    a.get()
                                } catch (e) {
                                    return be(t), !0
                                }
                                if (e.dependenciesState === ae.STALE) return be(t), !0
                            }
                        }
                        return ge(e), be(t), !1
                }
            }

            function de(e) {
                var t = e.observers.size > 0;
                xe.computationDepth > 0 && t && c(!1), xe.allowStateChanges || !t && "strict" !== xe.enforceActions || c(!1)
            }

            function pe(e, t, i) {
                ge(e), e.newObserving = new Array(e.observing.length + 100), e.unboundDepsCount = 0, e.runId = ++xe.runId;
                var r, n = xe.trackingDerivation;
                if (xe.trackingDerivation = e, !0 === xe.disableErrorBoundaries) r = t.call(i);
                else try {
                    r = t.call(i)
                } catch (e) {
                    r = new le(e)
                }
                return xe.trackingDerivation = n,
                    function(e) {
                        for (var t = e.observing, i = e.observing = e.newObserving, r = ae.UP_TO_DATE, n = 0, a = e.unboundDepsCount, s = 0; s < a; s++) {
                            0 === (o = i[s]).diffValue && (o.diffValue = 1, n !== s && (i[n] = o), n++), o.dependenciesState > r && (r = o.dependenciesState)
                        }
                        i.length = n, e.newObserving = null, a = t.length;
                        for (; a--;) {
                            0 === (o = t[a]).diffValue && Ee(o, e), o.diffValue = 0
                        }
                        for (; n--;) {
                            var o;
                            1 === (o = i[n]).diffValue && (o.diffValue = 0, Te(o, e))
                        }
                        r !== ae.UP_TO_DATE && (e.dependenciesState = r, e.onBecomeStale())
                    }(e), r
            }

            function ve(e) {
                var t = e.observing;
                e.observing = [];
                for (var i = t.length; i--;) Ee(t[i], e);
                e.dependenciesState = ae.NOT_TRACKING
            }

            function me(e) {
                var t = _e();
                try {
                    return e()
                } finally {
                    be(t)
                }
            }

            function _e() {
                var e = xe.trackingDerivation;
                return xe.trackingDerivation = null, e
            }

            function be(e) {
                xe.trackingDerivation = e
            }

            function ge(e) {
                if (e.dependenciesState !== ae.UP_TO_DATE) {
                    e.dependenciesState = ae.UP_TO_DATE;
                    for (var t = e.observing, i = t.length; i--;) t[i].lowestObserverState = ae.UP_TO_DATE
                }
            }
            var ye = function() {
                    this.version = 5, this.UNCHANGED = {}, this.trackingDerivation = null, this.computationDepth = 0, this.runId = 0, this.mobxGuid = 0, this.inBatch = 0, this.pendingUnobservations = [], this.pendingReactions = [], this.isRunningReactions = !1, this.allowStateChanges = !0, this.enforceActions = !1, this.spyListeners = [], this.globalReactionErrorHandlers = [], this.computedRequiresReaction = !1, this.computedConfigurable = !1, this.disableErrorBoundaries = !1, this.suppressReactionErrors = !1
                },
                Ae = !0,
                we = !1,
                xe = function() {
                    var e = ke();
                    return e.__mobxInstanceCount > 0 && !e.__mobxGlobals && (Ae = !1), e.__mobxGlobals && e.__mobxGlobals.version !== (new ye).version && (Ae = !1), Ae ? e.__mobxGlobals ? (e.__mobxInstanceCount += 1, e.__mobxGlobals.UNCHANGED || (e.__mobxGlobals.UNCHANGED = {}), e.__mobxGlobals) : (e.__mobxInstanceCount = 1, e.__mobxGlobals = new ye) : (setTimeout(function() {
                        we || c("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`")
                    }, 1), new ye)
                }();

            function ke() {
                return "undefined" != typeof window ? window : r
            }

            function Te(e, t) {
                e.observers.add(t), e.lowestObserverState > t.dependenciesState && (e.lowestObserverState = t.dependenciesState)
            }

            function Ee(e, t) {
                e.observers.delete(t), 0 === e.observers.size && Se(e)
            }

            function Se(e) {
                !1 === e.isPendingUnobservation && (e.isPendingUnobservation = !0, xe.pendingUnobservations.push(e))
            }

            function Pe() {
                xe.inBatch++
            }

            function Ie() {
                if (0 == --xe.inBatch) {
                    Fe();
                    for (var e = xe.pendingUnobservations, t = 0; t < e.length; t++) {
                        var i = e[t];
                        i.isPendingUnobservation = !1, 0 === i.observers.size && (i.isBeingObserved && (i.isBeingObserved = !1, i.onBecomeUnobserved()), i instanceof ue && i.suspend())
                    }
                    xe.pendingUnobservations = []
                }
            }

            function Me(e) {
                var t = xe.trackingDerivation;
                return null !== t ? (t.runId !== e.lastAccessedBy && (e.lastAccessedBy = t.runId, t.newObserving[t.unboundDepsCount++] = e, e.isBeingObserved || (e.isBeingObserved = !0, e.onBecomeObserved())), !0) : (0 === e.observers.size && xe.inBatch > 0 && Se(e), !1)
            }

            function Ce(e, t) {
                if (e.isTracing === se.BREAK) {
                    var i = [];
                    ! function e(t, i, r) {
                        if (i.length >= 1e3) return void i.push("(and many more)");
                        i.push("" + new Array(r).join("\t") + t.name);
                        t.dependencies && t.dependencies.forEach(function(t) {
                            return e(t, i, r + 1)
                        })
                    }((r = e, tt(Lt(r, n))), i, 1), new Function("debugger;\n/*\nTracing '" + e.name + "'\n\nYou are entering this break point because derivation '" + e.name + "' is being traced and '" + t.name + "' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n" + (e instanceof ue ? e.derivation.toString().replace(/[*]\//g, "/") : "") + "\n\nThe dependencies for this derivation are:\n\n" + i.join("\n") + "\n*/\n    ")()
                }
                var r, n
            }
            var Oe = function() {
                function e(e, t, i) {
                    void 0 === e && (e = "Reaction@" + f()), this.name = e, this.onInvalidate = t, this.errorHandler = i, this.observing = [], this.newObserving = [], this.dependenciesState = ae.NOT_TRACKING, this.diffValue = 0, this.runId = 0, this.unboundDepsCount = 0, this.__mapid = "#" + f(), this.isDisposed = !1, this._isScheduled = !1, this._isTrackPending = !1, this._isRunning = !1, this.isTracing = se.NONE
                }
                return e.prototype.onBecomeStale = function() {
                    this.schedule()
                }, e.prototype.schedule = function() {
                    this._isScheduled || (this._isScheduled = !0, xe.pendingReactions.push(this), Fe())
                }, e.prototype.isScheduled = function() {
                    return this._isScheduled
                }, e.prototype.runReaction = function() {
                    if (!this.isDisposed) {
                        if (Pe(), this._isScheduled = !1, ce(this)) {
                            this._isTrackPending = !0;
                            try {
                                this.onInvalidate(), this._isTrackPending
                            } catch (e) {
                                this.reportExceptionInDerivation(e)
                            }
                        }
                        Ie()
                    }
                }, e.prototype.track = function(e) {
                    if (!this.isDisposed) {
                        Pe();
                        0, this._isRunning = !0;
                        var t = pe(this, e, void 0);
                        this._isRunning = !1, this._isTrackPending = !1, this.isDisposed && ve(this), fe(t) && this.reportExceptionInDerivation(t.cause), Ie()
                    }
                }, e.prototype.reportExceptionInDerivation = function(e) {
                    var t = this;
                    if (this.errorHandler) this.errorHandler(e, this);
                    else {
                        if (xe.disableErrorBoundaries) throw e;
                        xe.suppressReactionErrors, xe.globalReactionErrorHandlers.forEach(function(i) {
                            return i(e, t)
                        })
                    }
                }, e.prototype.dispose = function() {
                    this.isDisposed || (this.isDisposed = !0, this._isRunning || (Pe(), ve(this), Ie()))
                }, e.prototype.getDisposer = function() {
                    var e = this.dispose.bind(this);
                    return e[T] = this, e
                }, e.prototype.toString = function() {
                    return "Reaction[" + this.name + "]"
                }, e.prototype.trace = function(e) {
                    void 0 === e && (e = !1),
                        function() {
                            for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
                            var i = !1;
                            "boolean" == typeof e[e.length - 1] && (i = e.pop());
                            var r = function(e) {
                                switch (e.length) {
                                    case 0:
                                        return xe.trackingDerivation;
                                    case 1:
                                        return Lt(e[0]);
                                    case 2:
                                        return Lt(e[0], e[1])
                                }
                            }(e);
                            if (!r) return c(!1);
                            r.isTracing, se.NONE;
                            r.isTracing = i ? se.BREAK : se.LOG
                        }(this, e)
                }, e
            }();
            var Re = 100,
                De = function(e) {
                    return e()
                };

            function Fe() {
                xe.inBatch > 0 || xe.isRunningReactions || De(Be)
            }

            function Be() {
                xe.isRunningReactions = !0;
                for (var e = xe.pendingReactions, t = 0; e.length > 0;) {
                    ++t === Re && e.splice(0);
                    for (var i = e.splice(0), r = 0, n = i.length; r < n; r++) i[r].runReaction()
                }
                xe.isRunningReactions = !1
            }
            var Ne = g("Reaction", Oe);

            function Le(e) {
                var t = De;
                De = function(i) {
                    return e(function() {
                        return t(i)
                    })
                }
            }

            function Ue(e) {
                return function() {}
            }

            function Ve() {
                c(!1)
            }

            function Xe(e) {
                return function(t, i, r) {
                    if (r) {
                        if (r.value) return {
                            value: ee(e, r.value),
                            enumerable: !1,
                            configurable: !0,
                            writable: !0
                        };
                        var n = r.initializer;
                        return {
                            enumerable: !1,
                            configurable: !0,
                            writable: !0,
                            initializer: function() {
                                return ee(e, n.call(this))
                            }
                        }
                    }
                    return je(e).apply(this, arguments)
                }
            }

            function je(e) {
                return function(t, i, r) {
                    Object.defineProperty(t, i, {
                        configurable: !0,
                        enumerable: !1,
                        get: function() {},
                        set: function(t) {
                            b(this, i, Ge(e, t))
                        }
                    })
                }
            }
            var Ge = function(e, t, i, r) {
                return 1 === arguments.length && "function" == typeof e ? ee(e.name || "<unnamed action>", e) : 2 === arguments.length && "function" == typeof t ? ee(e, t) : 1 === arguments.length && "string" == typeof e ? Xe(e) : !0 !== r ? Xe(t).apply(null, arguments) : void b(e, t, ee(e.name || t, i.value, this))
            };

            function $e(e, t, i) {
                b(e, t, ee(t, i.bind(e)))
            }

            function He(e, t) {
                void 0 === t && (t = l);
                var i, r = t && t.name || e.name || "Autorun@" + f();
                if (!t.scheduler && !t.delay) i = new Oe(r, function() {
                    this.track(s)
                }, t.onError);
                else {
                    var n = Ye(t),
                        a = !1;
                    i = new Oe(r, function() {
                        a || (a = !0, n(function() {
                            a = !1, i.isDisposed || i.track(s)
                        }))
                    }, t.onError)
                }

                function s() {
                    e(i)
                }
                return i.schedule(), i.getDisposer()
            }
            Ge.bound = function(e, t, i, r) {
                return !0 === r ? ($e(e, t, i.value), null) : i ? {
                    configurable: !0,
                    enumerable: !1,
                    get: function() {
                        return $e(this, t, i.value || i.initializer.call(this)), this[t]
                    },
                    set: Ve
                } : {
                    enumerable: !1,
                    configurable: !0,
                    set: function(e) {
                        $e(this, t, e)
                    },
                    get: function() {}
                }
            };
            var We = function(e) {
                return e()
            };

            function Ye(e) {
                return e.scheduler ? e.scheduler : e.delay ? function(t) {
                    return setTimeout(t, e.delay)
                } : We
            }

            function ze(e, t, i) {
                void 0 === i && (i = l);
                var r, n, a, s = i.name || "Reaction@" + f(),
                    o = Ge(s, i.onError ? (r = i.onError, n = t, function() {
                        try {
                            return n.apply(this, arguments)
                        } catch (e) {
                            r.call(this, e)
                        }
                    }) : t),
                    u = !i.scheduler && !i.delay,
                    h = Ye(i),
                    c = !0,
                    d = !1,
                    p = i.compareStructural ? I.structural : i.equals || I.default,
                    v = new Oe(s, function() {
                        c || u ? m() : d || (d = !0, h(m))
                    }, i.onError);

                function m() {
                    if (d = !1, !v.isDisposed) {
                        var t = !1;
                        v.track(function() {
                            var i = e(v);
                            t = c || !p(a, i), a = i
                        }), c && i.fireImmediately && o(a, v), c || !0 !== t || o(a, v), c && (c = !1)
                    }
                }
                return v.schedule(), v.getDisposer()
            }

            function qe(e, t, i) {
                return Je("onBecomeUnobserved", e, t, i)
            }

            function Je(e, t, i, r) {
                var n = "string" == typeof i ? Lt(t, i) : Lt(t),
                    a = "string" == typeof i ? r : i,
                    s = e + "Listeners";
                return n[s] ? n[s].add(a) : n[s] = new Set([a]), "function" != typeof n[e] ? c(!1) : function() {
                    var e = n[s];
                    e && (e.delete(a), 0 === e.size && delete n[s])
                }
            }

            function Qe(e) {
                var t = e.enforceActions,
                    i = e.computedRequiresReaction,
                    r = e.computedConfigurable,
                    n = e.disableErrorBoundaries,
                    a = e.reactionScheduler;
                if (!0 === e.isolateGlobalState && ((xe.pendingReactions.length || xe.inBatch || xe.isRunningReactions) && c("isolateGlobalState should be called before MobX is running any reactions"), we = !0, Ae && (0 == --ke().__mobxInstanceCount && (ke().__mobxGlobals = void 0), xe = new ye)), void 0 !== t) {
                    var s = void 0;
                    switch (t) {
                        case !0:
                        case "observed":
                            s = !0;
                            break;
                        case !1:
                        case "never":
                            s = !1;
                            break;
                        case "strict":
                        case "always":
                            s = "strict";
                            break;
                        default:
                            c("Invalid value for 'enforceActions': '" + t + "', expected 'never', 'always' or 'observed'")
                    }
                    xe.enforceActions = s, xe.allowStateChanges = !0 !== s && "strict" !== s
                }
                void 0 !== i && (xe.computedRequiresReaction = !!i), void 0 !== r && (xe.computedConfigurable = !!r), void 0 !== n && (xe.disableErrorBoundaries = !!n), a && Le(a)
            }

            function Ze(e, t, i, r) {
                var n = Ke(r = j(r));
                return F(e), Ot(e, r.name, n.enhancer), t && et(e, t, i, n), e
            }

            function Ke(e) {
                return e.defaultDecorator || (!1 === e.deep ? H : G)
            }

            function et(e, t, i, r) {
                var n, a;
                Pe();
                try {
                    var o = w(t);
                    try {
                        for (var u = s(o), h = u.next(); !h.done; h = u.next()) {
                            var l = h.value,
                                f = Object.getOwnPropertyDescriptor(t, l);
                            0;
                            var c = (i && l in i ? i[l] : f.get ? Q : r)(e, l, f, !0);
                            c && Object.defineProperty(e, l, c)
                        }
                    } catch (e) {
                        n = {
                            error: e
                        }
                    } finally {
                        try {
                            h && !h.done && (a = u.return) && a.call(u)
                        } finally {
                            if (n) throw n.error
                        }
                    }
                } finally {
                    Ie()
                }
            }

            function tt(e) {
                var t, i, r = {
                    name: e.name
                };
                return e.observing && e.observing.length > 0 && (r.dependencies = (t = e.observing, i = [], t.forEach(function(e) {
                    -1 === i.indexOf(e) && i.push(e)
                }), i).map(tt)), r
            }

            function it(e, t) {
                return null != e && (void 0 !== t ? !!Nt(e) && e[T].values.has(t) : Nt(e) || !!e[T] || S(e) || Ne(e) || he(e))
            }

            function rt(e) {
                return 1 !== arguments.length && c(!1), it(e)
            }

            function nt(e, t) {
                void 0 === t && (t = void 0), Pe();
                try {
                    return e.apply(t)
                } finally {
                    Ie()
                }
            }

            function at(e, t, i) {
                return 1 === arguments.length || t && "object" == typeof t ? function(e, t) {
                    0;
                    var i, r = new Promise(function(r, n) {
                        var s = st(e, r, a({}, t, {
                            onError: n
                        }));
                        i = function() {
                            s(), n("WHEN_CANCELLED")
                        }
                    });
                    return r.cancel = i, r
                }(e, t) : st(e, t, i || {})
            }

            function st(e, t, i) {
                var r;
                "number" == typeof i.timeout && (r = setTimeout(function() {
                    if (!a[T].isDisposed) {
                        a();
                        var e = new Error("WHEN_TIMEOUT");
                        if (!i.onError) throw e;
                        i.onError(e)
                    }
                }, i.timeout)), i.name = i.name || "When@" + f();
                var n = ee(i.name + "-effect", t),
                    a = He(function(t) {
                        e() && (t.dispose(), r && clearTimeout(r), n())
                    }, i);
                return a
            }

            function ot(e) {
                return e[T]
            }

            function ut(e) {
                return "string" == typeof e || "number" == typeof e || "symbol" == typeof e
            }
            var ht = {
                has: function(e, t) {
                    if (t === T || "constructor" === t || t === M) return !0;
                    var i = ot(e);
                    return ut(t) ? i.has(t) : t in e
                },
                get: function(e, t) {
                    if (t === T || "constructor" === t || t === M) return e[t];
                    var i = ot(e),
                        r = i.values.get(t);
                    if (r instanceof E) {
                        var n = r.get();
                        return void 0 === n && i.has(t), n
                    }
                    return ut(t) && i.has(t), e[t]
                },
                set: function(e, t, i) {
                    return !!ut(t) && (function e(t, i, r) {
                        if (2 !== arguments.length || Mt(t))
                            if (Nt(t)) {
                                var n = t[T];
                                n.values.get(i) ? n.write(i, r) : n.addObservableProp(i, r, n.defaultEnhancer)
                            } else if (St(t)) t.set(i, r);
                        else if (Mt(t)) t.add(i);
                        else {
                            if (!xt(t)) return c(!1);
                            "number" != typeof i && (i = parseInt(i, 10)), d(i >= 0, "Not a valid index: '" + i + "'"), Pe(), i >= t.length && (t.length = i + 1), t[i] = r, Ie()
                        } else {
                            Pe();
                            var a = i;
                            try {
                                for (var s in a) e(t, s, a[s])
                            } finally {
                                Ie()
                            }
                        }
                    }(e, t, i), !0)
                },
                deleteProperty: function(e, t) {
                    return !!ut(t) && (ot(e).remove(t), !0)
                },
                ownKeys: function(e) {
                    return ot(e).keysAtom.reportObserved(), Reflect.ownKeys(e)
                },
                preventExtensions: function(e) {
                    return c("Dynamic observable objects cannot be frozen"), !1
                }
            };

            function lt(e) {
                var t = new Proxy(e, ht);
                return e[T].proxy = t, t
            }

            function ft(e) {
                return void 0 !== e.interceptors && e.interceptors.length > 0
            }

            function ct(e, t) {
                var i = e.interceptors || (e.interceptors = []);
                return i.push(t), p(function() {
                    var e = i.indexOf(t); - 1 !== e && i.splice(e, 1)
                })
            }

            function dt(e, t) {
                var i = _e();
                try {
                    var r = e.interceptors;
                    if (r)
                        for (var n = 0, a = r.length; n < a && (d(!(t = r[n](t)) || t.type, "Intercept handlers should return nothing or a change object"), t); n++);
                    return t
                } finally {
                    be(i)
                }
            }

            function pt(e) {
                return void 0 !== e.changeListeners && e.changeListeners.length > 0
            }

            function vt(e, t) {
                var i = e.changeListeners || (e.changeListeners = []);
                return i.push(t), p(function() {
                    var e = i.indexOf(t); - 1 !== e && i.splice(e, 1)
                })
            }

            function mt(e, t) {
                var i = _e(),
                    r = e.changeListeners;
                if (r) {
                    for (var n = 0, a = (r = r.slice()).length; n < a; n++) r[n](t);
                    be(i)
                }
            }
            var _t = {
                get: function(e, t) {
                    return t === T ? e[T] : "length" === t ? e[T].getArrayLength() : "number" == typeof t ? yt.get.call(e, t) : "string" != typeof t || isNaN(t) ? yt.hasOwnProperty(t) ? yt[t] : e[t] : yt.get.call(e, parseInt(t))
                },
                set: function(e, t, i) {
                    return "length" === t && e[T].setArrayLength(i), "number" == typeof t && yt.set.call(e, t, i), "symbol" == typeof t || isNaN(t) ? e[t] = i : yt.set.call(e, parseInt(t), i), !0
                },
                preventExtensions: function(e) {
                    return c("Observable arrays cannot be frozen"), !1
                }
            };

            function bt(e, t, i, r) {
                void 0 === i && (i = "ObservableArray@" + f()), void 0 === r && (r = !1);
                var n, a, s, o = new gt(i, t, r);
                n = o.values, a = T, s = o, Object.defineProperty(n, a, {
                    enumerable: !1,
                    writable: !1,
                    configurable: !0,
                    value: s
                });
                var u = new Proxy(o.values, _t);
                if (o.proxy = u, e && e.length) {
                    var h = re(!0);
                    o.spliceWithArray(0, 0, e), ne(h)
                }
                return u
            }
            var gt = function() {
                    function e(e, t, i) {
                        this.owned = i, this.values = [], this.proxy = void 0, this.lastKnownLength = 0, this.atom = new E(e || "ObservableArray@" + f()), this.enhancer = function(i, r) {
                            return t(i, r, e + "[..]")
                        }
                    }
                    return e.prototype.dehanceValue = function(e) {
                        return void 0 !== this.dehancer ? this.dehancer(e) : e
                    }, e.prototype.dehanceValues = function(e) {
                        return void 0 !== this.dehancer && e.length > 0 ? e.map(this.dehancer) : e
                    }, e.prototype.intercept = function(e) {
                        return ct(this, e)
                    }, e.prototype.observe = function(e, t) {
                        return void 0 === t && (t = !1), t && e({
                            object: this.proxy,
                            type: "splice",
                            index: 0,
                            added: this.values.slice(),
                            addedCount: this.values.length,
                            removed: [],
                            removedCount: 0
                        }), vt(this, e)
                    }, e.prototype.getArrayLength = function() {
                        return this.atom.reportObserved(), this.values.length
                    }, e.prototype.setArrayLength = function(e) {
                        if ("number" != typeof e || e < 0) throw new Error("[mobx.array] Out of range: " + e);
                        var t = this.values.length;
                        if (e !== t)
                            if (e > t) {
                                for (var i = new Array(e - t), r = 0; r < e - t; r++) i[r] = void 0;
                                this.spliceWithArray(t, 0, i)
                            } else this.spliceWithArray(e, t - e)
                    }, e.prototype.updateArrayLength = function(e, t) {
                        if (e !== this.lastKnownLength) throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed.");
                        this.lastKnownLength += t
                    }, e.prototype.spliceWithArray = function(e, t, i) {
                        var r = this;
                        de(this.atom);
                        var n = this.values.length;
                        if (void 0 === e ? e = 0 : e > n ? e = n : e < 0 && (e = Math.max(0, n + e)), t = 1 === arguments.length ? n - e : null == t ? 0 : Math.max(0, Math.min(t, n - e)), void 0 === i && (i = h), ft(this)) {
                            var a = dt(this, {
                                object: this.proxy,
                                type: "splice",
                                index: e,
                                removedCount: t,
                                added: i
                            });
                            if (!a) return h;
                            t = a.removedCount, i = a.added
                        }
                        i = 0 === i.length ? i : i.map(function(e) {
                            return r.enhancer(e, void 0)
                        });
                        var s = this.spliceItemsIntoValues(e, t, i);
                        return 0 === t && 0 === i.length || this.notifyArraySplice(e, i, s), this.dehanceValues(s)
                    }, e.prototype.spliceItemsIntoValues = function(e, t, i) {
                        var r;
                        if (i.length < 1e4) return (r = this.values).splice.apply(r, function() {
                            for (var e = [], t = 0; t < arguments.length; t++) e = e.concat(o(arguments[t]));
                            return e
                        }([e, t], i));
                        var n = this.values.slice(e, e + t);
                        return this.values = this.values.slice(0, e).concat(i, this.values.slice(e + t)), n
                    }, e.prototype.notifyArrayChildUpdate = function(e, t, i) {
                        var r = !this.owned && !1,
                            n = pt(this),
                            a = n || r ? {
                                object: this.proxy,
                                type: "update",
                                index: e,
                                newValue: t,
                                oldValue: i
                            } : null;
                        this.atom.reportChanged(), n && mt(this, a)
                    }, e.prototype.notifyArraySplice = function(e, t, i) {
                        var r = !this.owned && !1,
                            n = pt(this),
                            a = n || r ? {
                                object: this.proxy,
                                type: "splice",
                                index: e,
                                removed: i,
                                added: t,
                                removedCount: i.length,
                                addedCount: t.length
                            } : null;
                        this.atom.reportChanged(), n && mt(this, a)
                    }, e
                }(),
                yt = {
                    intercept: function(e) {
                        return this[T].intercept(e)
                    },
                    observe: function(e, t) {
                        return void 0 === t && (t = !1), this[T].observe(e, t)
                    },
                    clear: function() {
                        return this.splice(0)
                    },
                    replace: function(e) {
                        var t = this[T];
                        return t.spliceWithArray(0, t.values.length, e)
                    },
                    toJS: function() {
                        return this.slice()
                    },
                    toJSON: function() {
                        return this.toJS()
                    },
                    splice: function(e, t) {
                        for (var i = [], r = 2; r < arguments.length; r++) i[r - 2] = arguments[r];
                        var n = this[T];
                        switch (arguments.length) {
                            case 0:
                                return [];
                            case 1:
                                return n.spliceWithArray(e);
                            case 2:
                                return n.spliceWithArray(e, t)
                        }
                        return n.spliceWithArray(e, t, i)
                    },
                    spliceWithArray: function(e, t, i) {
                        return this[T].spliceWithArray(e, t, i)
                    },
                    push: function() {
                        for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
                        var i = this[T];
                        return i.spliceWithArray(i.values.length, 0, e), i.values.length
                    },
                    pop: function() {
                        return this.splice(Math.max(this[T].values.length - 1, 0), 1)[0]
                    },
                    shift: function() {
                        return this.splice(0, 1)[0]
                    },
                    unshift: function() {
                        for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
                        var i = this[T];
                        return i.spliceWithArray(0, 0, e), i.values.length
                    },
                    reverse: function() {
                        var e = this.slice();
                        return e.reverse.apply(e, arguments)
                    },
                    sort: function(e) {
                        var t = this.slice();
                        return t.sort.apply(t, arguments)
                    },
                    remove: function(e) {
                        var t = this[T],
                            i = t.dehanceValues(t.values).indexOf(e);
                        return i > -1 && (this.splice(i, 1), !0)
                    },
                    get: function(e) {
                        var t = this[T];
                        if (t && e < t.values.length) return t.atom.reportObserved(), t.dehanceValue(t.values[e])
                    },
                    set: function(e, t) {
                        var i = this[T],
                            r = i.values;
                        if (e < r.length) {
                            de(i.atom);
                            var n = r[e];
                            if (ft(i)) {
                                var a = dt(i, {
                                    type: "update",
                                    object: i.proxy,
                                    index: e,
                                    newValue: t
                                });
                                if (!a) return;
                                t = a.newValue
                            }(t = i.enhancer(t, n)) !== n && (r[e] = t, i.notifyArrayChildUpdate(e, t, n))
                        } else {
                            if (e !== r.length) throw new Error("[mobx.array] Index out of bounds, " + e + " is larger than " + r.length);
                            i.spliceWithArray(e, 0, [t])
                        }
                    }
                };
            ["concat", "every", "filter", "forEach", "indexOf", "join", "lastIndexOf", "map", "reduce", "reduceRight", "slice", "some", "toString", "toLocaleString"].forEach(function(e) {
                yt[e] = function() {
                    var t = this[T];
                    t.atom.reportObserved();
                    var i = t.dehanceValues(t.values);
                    return i[e].apply(i, arguments)
                }
            });
            var At, wt = g("ObservableArrayAdministration", gt);

            function xt(e) {
                return m(e) && wt(e[T])
            }
            var kt, Tt = {},
                Et = function() {
                    function e(e, t, i) {
                        if (void 0 === t && (t = L), void 0 === i && (i = "ObservableMap@" + f()), this.enhancer = t, this.name = i, this[At] = Tt, this._keysAtom = P(this.name + ".keys()"), this[Symbol.toStringTag] = "Map", "function" != typeof Map) throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");
                        this._data = new Map, this._hasMap = new Map, this.merge(e)
                    }
                    return e.prototype._has = function(e) {
                        return this._data.has(e)
                    }, e.prototype.has = function(e) {
                        var t = this;
                        if (!xe.trackingDerivation) return this._has(e);
                        var i = this._hasMap.get(e);
                        if (!i) {
                            var r = i = new oe(this._has(e), U, this.name + "." + x(e) + "?", !1);
                            this._hasMap.set(e, r), qe(r, function() {
                                return t._hasMap.delete(e)
                            })
                        }
                        return i.get()
                    }, e.prototype.set = function(e, t) {
                        var i = this._has(e);
                        if (ft(this)) {
                            var r = dt(this, {
                                type: i ? "update" : "add",
                                object: this,
                                newValue: t,
                                name: e
                            });
                            if (!r) return this;
                            t = r.newValue
                        }
                        return i ? this._updateValue(e, t) : this._addValue(e, t), this
                    }, e.prototype.delete = function(e) {
                        var t = this;
                        if (ft(this) && !(r = dt(this, {
                                type: "delete",
                                object: this,
                                name: e
                            }))) return !1;
                        if (this._has(e)) {
                            var i = pt(this),
                                r = i ? {
                                    type: "delete",
                                    object: this,
                                    oldValue: this._data.get(e).value,
                                    name: e
                                } : null;
                            return nt(function() {
                                t._keysAtom.reportChanged(), t._updateHasMapEntry(e, !1), t._data.get(e).setNewValue(void 0), t._data.delete(e)
                            }), i && mt(this, r), !0
                        }
                        return !1
                    }, e.prototype._updateHasMapEntry = function(e, t) {
                        var i = this._hasMap.get(e);
                        i && i.setNewValue(t)
                    }, e.prototype._updateValue = function(e, t) {
                        var i = this._data.get(e);
                        if ((t = i.prepareNewValue(t)) !== xe.UNCHANGED) {
                            var r = pt(this),
                                n = r ? {
                                    type: "update",
                                    object: this,
                                    oldValue: i.value,
                                    name: e,
                                    newValue: t
                                } : null;
                            0, i.setNewValue(t), r && mt(this, n)
                        }
                    }, e.prototype._addValue = function(e, t) {
                        var i = this;
                        de(this._keysAtom), nt(function() {
                            var r = new oe(t, i.enhancer, i.name + "." + x(e), !1);
                            i._data.set(e, r), t = r.value, i._updateHasMapEntry(e, !0), i._keysAtom.reportChanged()
                        });
                        var r = pt(this),
                            n = r ? {
                                type: "add",
                                object: this,
                                name: e,
                                newValue: t
                            } : null;
                        r && mt(this, n)
                    }, e.prototype.get = function(e) {
                        return this.has(e) ? this.dehanceValue(this._data.get(e).get()) : this.dehanceValue(void 0)
                    }, e.prototype.dehanceValue = function(e) {
                        return void 0 !== this.dehancer ? this.dehancer(e) : e
                    }, e.prototype.keys = function() {
                        return this._keysAtom.reportObserved(), this._data.keys()
                    }, e.prototype.values = function() {
                        var e = this,
                            t = 0,
                            i = Array.from(this.keys());
                        return Ht({
                            next: function() {
                                return t < i.length ? {
                                    value: e.get(i[t++]),
                                    done: !1
                                } : {
                                    done: !0
                                }
                            }
                        })
                    }, e.prototype.entries = function() {
                        var e = this,
                            t = 0,
                            i = Array.from(this.keys());
                        return Ht({
                            next: function() {
                                if (t < i.length) {
                                    var r = i[t++];
                                    return {
                                        value: [r, e.get(r)],
                                        done: !1
                                    }
                                }
                                return {
                                    done: !0
                                }
                            }
                        })
                    }, e.prototype[(At = T, Symbol.iterator)] = function() {
                        return this.entries()
                    }, e.prototype.forEach = function(e, t) {
                        var i, r;
                        try {
                            for (var n = s(this), a = n.next(); !a.done; a = n.next()) {
                                var u = o(a.value, 2),
                                    h = u[0],
                                    l = u[1];
                                e.call(t, l, h, this)
                            }
                        } catch (e) {
                            i = {
                                error: e
                            }
                        } finally {
                            try {
                                a && !a.done && (r = n.return) && r.call(n)
                            } finally {
                                if (i) throw i.error
                            }
                        }
                    }, e.prototype.merge = function(e) {
                        var t = this;
                        return St(e) && (e = e.toJS()), nt(function() {
                            _(e) ? w(e).forEach(function(i) {
                                return t.set(i, e[i])
                            }) : Array.isArray(e) ? e.forEach(function(e) {
                                var i = o(e, 2),
                                    r = i[0],
                                    n = i[1];
                                return t.set(r, n)
                            }) : y(e) ? (e.constructor !== Map && c("Cannot initialize from classes that inherit from Map: " + e.constructor.name), e.forEach(function(e, i) {
                                return t.set(i, e)
                            })) : null != e && c("Cannot initialize map from " + e)
                        }), this
                    }, e.prototype.clear = function() {
                        var e = this;
                        nt(function() {
                            me(function() {
                                var t, i;
                                try {
                                    for (var r = s(e.keys()), n = r.next(); !n.done; n = r.next()) {
                                        var a = n.value;
                                        e.delete(a)
                                    }
                                } catch (e) {
                                    t = {
                                        error: e
                                    }
                                } finally {
                                    try {
                                        n && !n.done && (i = r.return) && i.call(r)
                                    } finally {
                                        if (t) throw t.error
                                    }
                                }
                            })
                        })
                    }, e.prototype.replace = function(e) {
                        var t = this;
                        return nt(function() {
                            var i, r = _(i = e) ? Object.keys(i) : Array.isArray(i) ? i.map(function(e) {
                                return o(e, 1)[0]
                            }) : y(i) || St(i) ? Array.from(i.keys()) : c("Cannot get keys from '" + i + "'");
                            Array.from(t.keys()).filter(function(e) {
                                return -1 === r.indexOf(e)
                            }).forEach(function(e) {
                                return t.delete(e)
                            }), t.merge(e)
                        }), this
                    }, Object.defineProperty(e.prototype, "size", {
                        get: function() {
                            return this._keysAtom.reportObserved(), this._data.size
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.toPOJO = function() {
                        var e, t, i = {};
                        try {
                            for (var r = s(this), n = r.next(); !n.done; n = r.next()) {
                                var a = o(n.value, 2),
                                    u = a[0],
                                    h = a[1];
                                i["symbol" == typeof u ? u : x(u)] = h
                            }
                        } catch (t) {
                            e = {
                                error: t
                            }
                        } finally {
                            try {
                                n && !n.done && (t = r.return) && t.call(r)
                            } finally {
                                if (e) throw e.error
                            }
                        }
                        return i
                    }, e.prototype.toJS = function() {
                        return new Map(this)
                    }, e.prototype.toJSON = function() {
                        return this.toPOJO()
                    }, e.prototype.toString = function() {
                        var e = this;
                        return this.name + "[{ " + Array.from(this.keys()).map(function(t) {
                            return x(t) + ": " + e.get(t)
                        }).join(", ") + " }]"
                    }, e.prototype.observe = function(e, t) {
                        return vt(this, e)
                    }, e.prototype.intercept = function(e) {
                        return ct(this, e)
                    }, e
                }(),
                St = g("ObservableMap", Et),
                Pt = {},
                It = function() {
                    function e(e, t, i) {
                        if (void 0 === t && (t = L), void 0 === i && (i = "ObservableSet@" + f()), this.name = i, this[kt] = Pt, this._data = new Set, this._atom = P(this.name), this[Symbol.toStringTag] = "Set", "function" != typeof Set) throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");
                        this.enhancer = function(e, r) {
                            return t(e, r, i)
                        }, e && this.replace(e)
                    }
                    return e.prototype.dehanceValue = function(e) {
                        return void 0 !== this.dehancer ? this.dehancer(e) : e
                    }, e.prototype.clear = function() {
                        var e = this;
                        nt(function() {
                            me(function() {
                                var t, i;
                                try {
                                    for (var r = s(e._data.values()), n = r.next(); !n.done; n = r.next()) {
                                        var a = n.value;
                                        e.delete(a)
                                    }
                                } catch (e) {
                                    t = {
                                        error: e
                                    }
                                } finally {
                                    try {
                                        n && !n.done && (i = r.return) && i.call(r)
                                    } finally {
                                        if (t) throw t.error
                                    }
                                }
                            })
                        })
                    }, e.prototype.forEach = function(e, t) {
                        var i, r;
                        try {
                            for (var n = s(this), a = n.next(); !a.done; a = n.next()) {
                                var o = a.value;
                                e.call(t, o, o, this)
                            }
                        } catch (e) {
                            i = {
                                error: e
                            }
                        } finally {
                            try {
                                a && !a.done && (r = n.return) && r.call(n)
                            } finally {
                                if (i) throw i.error
                            }
                        }
                    }, Object.defineProperty(e.prototype, "size", {
                        get: function() {
                            return this._atom.reportObserved(), this._data.size
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.add = function(e) {
                        var t = this;
                        if ((de(this._atom), ft(this)) && !(r = dt(this, {
                                type: "add",
                                object: this,
                                newValue: e
                            }))) return this;
                        if (!this.has(e)) {
                            nt(function() {
                                t._data.add(t.enhancer(e, void 0)), t._atom.reportChanged()
                            });
                            var i = pt(this),
                                r = i ? {
                                    type: "add",
                                    object: this,
                                    newValue: e
                                } : null;
                            0, i && mt(this, r)
                        }
                        return this
                    }, e.prototype.delete = function(e) {
                        var t = this;
                        if (ft(this) && !(r = dt(this, {
                                type: "delete",
                                object: this,
                                oldValue: e
                            }))) return !1;
                        if (this.has(e)) {
                            var i = pt(this),
                                r = i ? {
                                    type: "delete",
                                    object: this,
                                    oldValue: e
                                } : null;
                            return nt(function() {
                                t._atom.reportChanged(), t._data.delete(e)
                            }), i && mt(this, r), !0
                        }
                        return !1
                    }, e.prototype.has = function(e) {
                        return this._atom.reportObserved(), this._data.has(this.dehanceValue(e))
                    }, e.prototype.entries = function() {
                        var e = 0,
                            t = Array.from(this.keys()),
                            i = Array.from(this.values());
                        return Ht({
                            next: function() {
                                var r = e;
                                return e += 1, r < i.length ? {
                                    value: [t[r], i[r]],
                                    done: !1
                                } : {
                                    done: !0
                                }
                            }
                        })
                    }, e.prototype.keys = function() {
                        return this.values()
                    }, e.prototype.values = function() {
                        this._atom.reportObserved();
                        var e = this,
                            t = 0,
                            i = Array.from(this._data.values());
                        return Ht({
                            next: function() {
                                return t < i.length ? {
                                    value: e.dehanceValue(i[t++]),
                                    done: !1
                                } : {
                                    done: !0
                                }
                            }
                        })
                    }, e.prototype.replace = function(e) {
                        var t = this;
                        return Mt(e) && (e = e.toJS()), nt(function() {
                            Array.isArray(e) ? (t.clear(), e.forEach(function(e) {
                                return t.add(e)
                            })) : A(e) ? (t.clear(), e.forEach(function(e) {
                                return t.add(e)
                            })) : null != e && c("Cannot initialize set from " + e)
                        }), this
                    }, e.prototype.observe = function(e, t) {
                        return vt(this, e)
                    }, e.prototype.intercept = function(e) {
                        return ct(this, e)
                    }, e.prototype.toJS = function() {
                        return new Set(this)
                    }, e.prototype.toString = function() {
                        return this.name + "[ " + Array.from(this).join(", ") + " ]"
                    }, e.prototype[(kt = T, Symbol.iterator)] = function() {
                        return this.values()
                    }, e
                }(),
                Mt = g("ObservableSet", It),
                Ct = function() {
                    function e(e, t, i, r) {
                        void 0 === t && (t = new Map), this.target = e, this.values = t, this.name = i, this.defaultEnhancer = r, this.keysAtom = new E(i + ".keys")
                    }
                    return e.prototype.read = function(e) {
                        return this.values.get(e).get()
                    }, e.prototype.write = function(e, t) {
                        var i = this.target,
                            r = this.values.get(e);
                        if (r instanceof ue) r.set(t);
                        else {
                            if (ft(this)) {
                                if (!(a = dt(this, {
                                        type: "update",
                                        object: this.proxy || i,
                                        name: e,
                                        newValue: t
                                    }))) return;
                                t = a.newValue
                            }
                            if ((t = r.prepareNewValue(t)) !== xe.UNCHANGED) {
                                var n = pt(this),
                                    a = n ? {
                                        type: "update",
                                        object: this.proxy || i,
                                        oldValue: r.value,
                                        name: e,
                                        newValue: t
                                    } : null;
                                0, r.setNewValue(t), n && mt(this, a)
                            }
                        }
                    }, e.prototype.has = function(e) {
                        var t = this.pendingKeys || (this.pendingKeys = new Map),
                            i = t.get(e);
                        if (i) return i.get();
                        var r = !!this.values.get(e);
                        return i = new oe(r, U, this.name + "." + x(e) + "?", !1), t.set(e, i), i.get()
                    }, e.prototype.addObservableProp = function(e, t, i) {
                        void 0 === i && (i = this.defaultEnhancer);
                        var r = this.target;
                        if (ft(this)) {
                            var n = dt(this, {
                                object: this.proxy || r,
                                name: e,
                                type: "add",
                                newValue: t
                            });
                            if (!n) return;
                            t = n.newValue
                        }
                        var a = new oe(t, i, this.name + "." + x(e), !1);
                        this.values.set(e, a), t = a.value, Object.defineProperty(r, e, function(e) {
                            return Rt[e] || (Rt[e] = {
                                configurable: !0,
                                enumerable: !0,
                                get: function() {
                                    return this[T].read(e)
                                },
                                set: function(t) {
                                    this[T].write(e, t)
                                }
                            })
                        }(e)), this.notifyPropertyAddition(e, t)
                    }, e.prototype.addComputedProp = function(e, t, i) {
                        var r, n, a, s = this.target;
                        i.name = i.name || this.name + "." + x(t), this.values.set(t, new ue(i)), (e === s || (r = e, n = t, !(a = Object.getOwnPropertyDescriptor(r, n)) || !1 !== a.configurable && !1 !== a.writable)) && Object.defineProperty(e, t, function(e) {
                            return Dt[e] || (Dt[e] = {
                                configurable: xe.computedConfigurable,
                                enumerable: !1,
                                get: function() {
                                    return Ft(this).read(e)
                                },
                                set: function(t) {
                                    Ft(this).write(e, t)
                                }
                            })
                        }(t))
                    }, e.prototype.remove = function(e) {
                        if (this.values.has(e)) {
                            var t = this.target;
                            if (ft(this))
                                if (!(s = dt(this, {
                                        object: this.proxy || t,
                                        name: e,
                                        type: "remove"
                                    }))) return;
                            try {
                                Pe();
                                var i = pt(this),
                                    r = this.values.get(e),
                                    n = r && r.get();
                                if (r && r.set(void 0), this.keysAtom.reportChanged(), this.values.delete(e), this.pendingKeys) {
                                    var a = this.pendingKeys.get(e);
                                    a && a.set(!1)
                                }
                                delete this.target[e];
                                var s = i ? {
                                    type: "remove",
                                    object: this.proxy || t,
                                    oldValue: n,
                                    name: e
                                } : null;
                                0, i && mt(this, s)
                            } finally {
                                Ie()
                            }
                        }
                    }, e.prototype.illegalAccess = function(e, t) {}, e.prototype.observe = function(e, t) {
                        return vt(this, e)
                    }, e.prototype.intercept = function(e) {
                        return ct(this, e)
                    }, e.prototype.notifyPropertyAddition = function(e, t) {
                        var i = pt(this),
                            r = i ? {
                                type: "add",
                                object: this.proxy || this.target,
                                name: e,
                                newValue: t
                            } : null;
                        if (i && mt(this, r), this.pendingKeys) {
                            var n = this.pendingKeys.get(e);
                            n && n.set(!0)
                        }
                        this.keysAtom.reportChanged()
                    }, e.prototype.getKeys = function() {
                        var e, t;
                        this.keysAtom.reportObserved();
                        var i = [];
                        try {
                            for (var r = s(this.values), n = r.next(); !n.done; n = r.next()) {
                                var a = o(n.value, 2),
                                    u = a[0];
                                a[1] instanceof oe && i.push(u)
                            }
                        } catch (t) {
                            e = {
                                error: t
                            }
                        } finally {
                            try {
                                n && !n.done && (t = r.return) && t.call(r)
                            } finally {
                                if (e) throw e.error
                            }
                        }
                        return i
                    }, e
                }();

            function Ot(e, t, i) {
                if (void 0 === t && (t = ""), void 0 === i && (i = L), Object.prototype.hasOwnProperty.call(e, T)) return e[T];
                _(e) || (t = (e.constructor.name || "ObservableObject") + "@" + f()), t || (t = "ObservableObject@" + f());
                var r = new Ct(e, new Map, x(t), i);
                return b(e, T, r), r
            }
            var Rt = Object.create(null),
                Dt = Object.create(null);

            function Ft(e) {
                var t = e[T];
                return t || (F(e), e[T])
            }
            var Bt = g("ObservableObjectAdministration", Ct);

            function Nt(e) {
                return !!m(e) && (F(e), Bt(e[T]))
            }

            function Lt(e, t) {
                if ("object" == typeof e && null !== e) {
                    if (xt(e)) return void 0 !== t && c(!1), e[T].atom;
                    if (Mt(e)) return e[T];
                    if (St(e)) {
                        var i = e;
                        return void 0 === t ? i._keysAtom : ((r = i._data.get(t) || i._hasMap.get(t)) || c(!1), r)
                    }
                    var r;
                    if (F(e), t && !e[T] && e[t], Nt(e)) return t ? ((r = e[T].values.get(t)) || c(!1), r) : c(!1);
                    if (S(e) || he(e) || Ne(e)) return e
                } else if ("function" == typeof e && Ne(e[T])) return e[T];
                return c(!1)
            }

            function Ut(e, t) {
                return e || c("Expecting some object"), void 0 !== t ? Ut(Lt(e, t)) : S(e) || he(e) || Ne(e) ? e : St(e) || Mt(e) ? e : (F(e), e[T] ? e[T] : void c(!1))
            }
            var Vt = Object.prototype.toString;

            function Xt(e, t) {
                return jt(e, t)
            }

            function jt(e, t, i, r) {
                if (e === t) return 0 !== e || 1 / e == 1 / t;
                if (null == e || null == t) return !1;
                if (e != e) return t != t;
                var n = typeof e;
                return ("function" === n || "object" === n || "object" == typeof t) && function(e, t, i, r) {
                    e = Gt(e), t = Gt(t);
                    var n = Vt.call(e);
                    if (n !== Vt.call(t)) return !1;
                    switch (n) {
                        case "[object RegExp]":
                        case "[object String]":
                            return "" + e == "" + t;
                        case "[object Number]":
                            return +e != +e ? +t != +t : 0 == +e ? 1 / +e == 1 / t : +e == +t;
                        case "[object Date]":
                        case "[object Boolean]":
                            return +e == +t;
                        case "[object Symbol]":
                            return "undefined" != typeof Symbol && Symbol.valueOf.call(e) === Symbol.valueOf.call(t)
                    }
                    var a = "[object Array]" === n;
                    if (!a) {
                        if ("object" != typeof e || "object" != typeof t) return !1;
                        var s = e.constructor,
                            o = t.constructor;
                        if (s !== o && !("function" == typeof s && s instanceof s && "function" == typeof o && o instanceof o) && "constructor" in e && "constructor" in t) return !1
                    }
                    r = r || [];
                    var u = (i = i || []).length;
                    for (; u--;)
                        if (i[u] === e) return r[u] === t;
                    if (i.push(e), r.push(t), a) {
                        if ((u = e.length) !== t.length) return !1;
                        for (; u--;)
                            if (!jt(e[u], t[u], i, r)) return !1
                    } else {
                        var h = Object.keys(e),
                            l = void 0;
                        if (u = h.length, Object.keys(t).length !== u) return !1;
                        for (; u--;)
                            if (l = h[u], !$t(t, l) || !jt(e[l], t[l], i, r)) return !1
                    }
                    return i.pop(), r.pop(), !0
                }(e, t, i, r)
            }

            function Gt(e) {
                return xt(e) ? e.slice() : y(e) || St(e) ? Array.from(e.entries()) : A(e) || Mt(e) ? Array.from(e.entries()) : e
            }

            function $t(e, t) {
                return Object.prototype.hasOwnProperty.call(e, t)
            }

            function Ht(e) {
                return e[Symbol.iterator] = Wt, e
            }

            function Wt() {
                return this
            }
            if ("undefined" == typeof Proxy || "undefined" == typeof Symbol) throw new Error("[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.");
            "object" == typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ && __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
                spy: Ue,
                extras: {
                    getDebugName: function(e, t) {
                        return (void 0 !== t ? Lt(e, t) : Nt(e) || St(e) || Mt(e) ? Ut(e) : Lt(e)).name
                    }
                },
                $mobx: T
            })
        }).call(this, i(119), i(54))
    }, , , function(e, t, i) {
        "use strict";
        i.r(t);
        var r = {};
        i.r(r), i.d(r, "isMobile", function() {
            return w
        }), i.d(r, "EventEmitter", function() {
            return U.a
        }), i.d(r, "earcut", function() {
            return X.a
        }), i.d(r, "url", function() {
            return G.a
        }), i.d(r, "BaseTextureCache", function() {
            return ye
        }), i.d(r, "CanvasRenderTarget", function() {
            return xe
        }), i.d(r, "DATA_URI", function() {
            return Ee
        }), i.d(r, "ProgramCache", function() {
            return be
        }), i.d(r, "TextureCache", function() {
            return ge
        }), i.d(r, "clearTextureCache", function() {
            return we
        }), i.d(r, "correctBlendMode", function() {
            return te
        }), i.d(r, "createIndicesForQuads", function() {
            return ae
        }), i.d(r, "decomposeDataUri", function() {
            return Se
        }), i.d(r, "deprecation", function() {
            return _e
        }), i.d(r, "destroyTextureCache", function() {
            return Ae
        }), i.d(r, "determineCrossOrigin", function() {
            return Pe
        }), i.d(r, "getBufferType", function() {
            return se
        }), i.d(r, "getResolutionOfUrl", function() {
            return Ie
        }), i.d(r, "hex2rgb", function() {
            return J
        }), i.d(r, "hex2string", function() {
            return Q
        }), i.d(r, "interleaveTypedArrays", function() {
            return ue
        }), i.d(r, "isPow2", function() {
            return le
        }), i.d(r, "isWebGLSupported", function() {
            return q
        }), i.d(r, "log2", function() {
            return fe
        }), i.d(r, "nextPow2", function() {
            return he
        }), i.d(r, "premultiplyBlendMode", function() {
            return ee
        }), i.d(r, "premultiplyRgba", function() {
            return ie
        }), i.d(r, "premultiplyTint", function() {
            return re
        }), i.d(r, "premultiplyTintToRgba", function() {
            return ne
        }), i.d(r, "removeItems", function() {
            return ce
        }), i.d(r, "rgb2hex", function() {
            return K
        }), i.d(r, "sayHello", function() {
            return z
        }), i.d(r, "sign", function() {
            return de
        }), i.d(r, "skipHello", function() {
            return Y
        }), i.d(r, "string2hex", function() {
            return Z
        }), i.d(r, "trimCanvas", function() {
            return ke
        }), i.d(r, "uid", function() {
            return ve
        });
        var n = {};
        i.r(n), i.d(n, "AccessibilityManager", function() {
            return rt
        }), i.d(n, "accessibleTarget", function() {
            return tt
        });
        var a = {};
        i.r(a), i.d(a, "InteractionData", function() {
            return ot
        }), i.d(a, "InteractionEvent", function() {
            return ht
        }), i.d(a, "InteractionManager", function() {
            return mt
        }), i.d(a, "InteractionTrackingData", function() {
            return lt
        }), i.d(a, "interactiveTarget", function() {
            return dt
        });
        i(203);
        var s = /iPhone/i,
            o = /iPod/i,
            u = /iPad/i,
            h = /\biOS-universal(?:.+)Mac\b/i,
            l = /\bAndroid(?:.+)Mobile\b/i,
            f = /Android/i,
            c = /(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,
            d = /Silk/i,
            p = /Windows Phone/i,
            v = /\bWindows(?:.+)ARM\b/i,
            m = /BlackBerry/i,
            _ = /BB10/i,
            b = /Opera Mini/i,
            g = /\b(CriOS|Chrome)(?:.+)Mobile/i,
            y = /Mobile(?:.+)Firefox\b/i,
            A = function(e) {
                return void 0 !== e && "MacIntel" === e.platform && "number" == typeof e.maxTouchPoints && e.maxTouchPoints > 1 && "undefined" == typeof MSStream
            };
        /*!
         * @pixi/settings - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/settings is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var w = function(e) {
            var t = {
                userAgent: "",
                platform: "",
                maxTouchPoints: 0
            };
            e || "undefined" == typeof navigator ? "string" == typeof e ? t.userAgent = e : e && e.userAgent && (t = {
                userAgent: e.userAgent,
                platform: e.platform,
                maxTouchPoints: e.maxTouchPoints || 0
            }) : t = {
                userAgent: navigator.userAgent,
                platform: navigator.platform,
                maxTouchPoints: navigator.maxTouchPoints || 0
            };
            var i = t.userAgent,
                r = i.split("[FBAN");
            void 0 !== r[1] && (i = r[0]), void 0 !== (r = i.split("Twitter"))[1] && (i = r[0]);
            var n = function(e) {
                    return function(t) {
                        return t.test(e)
                    }
                }(i),
                a = {
                    apple: {
                        phone: n(s) && !n(p),
                        ipod: n(o),
                        tablet: !n(s) && (n(u) || A(t)) && !n(p),
                        universal: n(h),
                        device: (n(s) || n(o) || n(u) || n(h) || A(t)) && !n(p)
                    },
                    amazon: {
                        phone: n(c),
                        tablet: !n(c) && n(d),
                        device: n(c) || n(d)
                    },
                    android: {
                        phone: !n(p) && n(c) || !n(p) && n(l),
                        tablet: !n(p) && !n(c) && !n(l) && (n(d) || n(f)),
                        device: !n(p) && (n(c) || n(d) || n(l) || n(f)) || n(/\bokhttp\b/i)
                    },
                    windows: {
                        phone: n(p),
                        tablet: n(v),
                        device: n(p) || n(v)
                    },
                    other: {
                        blackberry: n(m),
                        blackberry10: n(_),
                        opera: n(b),
                        firefox: n(y),
                        chrome: n(g),
                        device: n(m) || n(_) || n(b) || n(y) || n(g)
                    },
                    any: !1,
                    phone: !1,
                    tablet: !1
                };
            return a.any = a.apple.device || a.android.device || a.windows.device || a.other.device, a.phone = a.apple.phone || a.android.phone || a.windows.phone, a.tablet = a.apple.tablet || a.android.tablet || a.windows.tablet, a
        }(window.navigator);
        var x, k, T, E, S, P, I, M, C, O, R, D, F, B, N = {
                MIPMAP_TEXTURES: 1,
                ANISOTROPIC_LEVEL: 0,
                RESOLUTION: 1,
                FILTER_RESOLUTION: 1,
                SPRITE_MAX_TEXTURES: function(e) {
                    var t = !0;
                    if (w.tablet || w.phone) {
                        if (t = !1, w.apple.device) {
                            var i = navigator.userAgent.match(/OS (\d+)_(\d+)?/);
                            if (i) parseInt(i[1], 10) >= 11 && (t = !0)
                        }
                        if (w.android.device) {
                            var r = navigator.userAgent.match(/Android\s([0-9.]*)/);
                            if (r) parseInt(r[1], 10) >= 7 && (t = !0)
                        }
                    }
                    return t ? e : 4
                }(32),
                SPRITE_BATCH_SIZE: 4096,
                RENDER_OPTIONS: {
                    view: null,
                    antialias: !1,
                    forceFXAA: !1,
                    autoDensity: !1,
                    transparent: !1,
                    backgroundColor: 0,
                    clearBeforeRender: !0,
                    preserveDrawingBuffer: !1,
                    width: 800,
                    height: 600,
                    legacy: !1
                },
                GC_MODE: 0,
                GC_MAX_IDLE: 3600,
                GC_MAX_CHECK_COUNT: 600,
                WRAP_MODE: 33071,
                SCALE_MODE: 1,
                PRECISION_VERTEX: "highp",
                PRECISION_FRAGMENT: w.apple.device ? "highp" : "mediump",
                CAN_UPLOAD_SAME_BUFFER: !w.apple.device,
                CREATE_IMAGE_BITMAP: !1,
                ROUND_PIXELS: !1
            },
            L = i(129),
            U = i.n(L),
            V = i(130),
            X = i.n(V),
            j = i(85),
            G = i.n(j);
        ! function(e) {
            e[e.WEBGL_LEGACY = 0] = "WEBGL_LEGACY", e[e.WEBGL = 1] = "WEBGL", e[e.WEBGL2 = 2] = "WEBGL2"
        }(x || (x = {})),
        function(e) {
            e[e.UNKNOWN = 0] = "UNKNOWN", e[e.WEBGL = 1] = "WEBGL", e[e.CANVAS = 2] = "CANVAS"
        }(k || (k = {})),
        function(e) {
            e[e.NORMAL = 0] = "NORMAL", e[e.ADD = 1] = "ADD", e[e.MULTIPLY = 2] = "MULTIPLY", e[e.SCREEN = 3] = "SCREEN", e[e.OVERLAY = 4] = "OVERLAY", e[e.DARKEN = 5] = "DARKEN", e[e.LIGHTEN = 6] = "LIGHTEN", e[e.COLOR_DODGE = 7] = "COLOR_DODGE", e[e.COLOR_BURN = 8] = "COLOR_BURN", e[e.HARD_LIGHT = 9] = "HARD_LIGHT", e[e.SOFT_LIGHT = 10] = "SOFT_LIGHT", e[e.DIFFERENCE = 11] = "DIFFERENCE", e[e.EXCLUSION = 12] = "EXCLUSION", e[e.HUE = 13] = "HUE", e[e.SATURATION = 14] = "SATURATION", e[e.COLOR = 15] = "COLOR", e[e.LUMINOSITY = 16] = "LUMINOSITY", e[e.NORMAL_NPM = 17] = "NORMAL_NPM", e[e.ADD_NPM = 18] = "ADD_NPM", e[e.SCREEN_NPM = 19] = "SCREEN_NPM", e[e.NONE = 20] = "NONE", e[e.SRC_OVER = 0] = "SRC_OVER", e[e.SRC_IN = 21] = "SRC_IN", e[e.SRC_OUT = 22] = "SRC_OUT", e[e.SRC_ATOP = 23] = "SRC_ATOP", e[e.DST_OVER = 24] = "DST_OVER", e[e.DST_IN = 25] = "DST_IN", e[e.DST_OUT = 26] = "DST_OUT", e[e.DST_ATOP = 27] = "DST_ATOP", e[e.ERASE = 26] = "ERASE", e[e.SUBTRACT = 28] = "SUBTRACT", e[e.XOR = 29] = "XOR"
        }(T || (T = {})),
        function(e) {
            e[e.POINTS = 0] = "POINTS", e[e.LINES = 1] = "LINES", e[e.LINE_LOOP = 2] = "LINE_LOOP", e[e.LINE_STRIP = 3] = "LINE_STRIP", e[e.TRIANGLES = 4] = "TRIANGLES", e[e.TRIANGLE_STRIP = 5] = "TRIANGLE_STRIP", e[e.TRIANGLE_FAN = 6] = "TRIANGLE_FAN"
        }(E || (E = {})),
        function(e) {
            e[e.RGBA = 6408] = "RGBA", e[e.RGB = 6407] = "RGB", e[e.ALPHA = 6406] = "ALPHA", e[e.LUMINANCE = 6409] = "LUMINANCE", e[e.LUMINANCE_ALPHA = 6410] = "LUMINANCE_ALPHA", e[e.DEPTH_COMPONENT = 6402] = "DEPTH_COMPONENT", e[e.DEPTH_STENCIL = 34041] = "DEPTH_STENCIL"
        }(S || (S = {})),
        function(e) {
            e[e.TEXTURE_2D = 3553] = "TEXTURE_2D", e[e.TEXTURE_CUBE_MAP = 34067] = "TEXTURE_CUBE_MAP", e[e.TEXTURE_2D_ARRAY = 35866] = "TEXTURE_2D_ARRAY", e[e.TEXTURE_CUBE_MAP_POSITIVE_X = 34069] = "TEXTURE_CUBE_MAP_POSITIVE_X", e[e.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070] = "TEXTURE_CUBE_MAP_NEGATIVE_X", e[e.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071] = "TEXTURE_CUBE_MAP_POSITIVE_Y", e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072] = "TEXTURE_CUBE_MAP_NEGATIVE_Y", e[e.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073] = "TEXTURE_CUBE_MAP_POSITIVE_Z", e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074] = "TEXTURE_CUBE_MAP_NEGATIVE_Z"
        }(P || (P = {})),
        function(e) {
            e[e.UNSIGNED_BYTE = 5121] = "UNSIGNED_BYTE", e[e.UNSIGNED_SHORT = 5123] = "UNSIGNED_SHORT", e[e.UNSIGNED_SHORT_5_6_5 = 33635] = "UNSIGNED_SHORT_5_6_5", e[e.UNSIGNED_SHORT_4_4_4_4 = 32819] = "UNSIGNED_SHORT_4_4_4_4", e[e.UNSIGNED_SHORT_5_5_5_1 = 32820] = "UNSIGNED_SHORT_5_5_5_1", e[e.FLOAT = 5126] = "FLOAT", e[e.HALF_FLOAT = 36193] = "HALF_FLOAT"
        }(I || (I = {})),
        function(e) {
            e[e.NEAREST = 0] = "NEAREST", e[e.LINEAR = 1] = "LINEAR"
        }(M || (M = {})),
        function(e) {
            e[e.CLAMP = 33071] = "CLAMP", e[e.REPEAT = 10497] = "REPEAT", e[e.MIRRORED_REPEAT = 33648] = "MIRRORED_REPEAT"
        }(C || (C = {})),
        function(e) {
            e[e.OFF = 0] = "OFF", e[e.POW2 = 1] = "POW2", e[e.ON = 2] = "ON"
        }(O || (O = {})),
        function(e) {
            e[e.NPM = 0] = "NPM", e[e.UNPACK = 1] = "UNPACK", e[e.PMA = 2] = "PMA", e[e.NO_PREMULTIPLIED_ALPHA = 0] = "NO_PREMULTIPLIED_ALPHA", e[e.PREMULTIPLY_ON_UPLOAD = 1] = "PREMULTIPLY_ON_UPLOAD", e[e.PREMULTIPLY_ALPHA = 2] = "PREMULTIPLY_ALPHA"
        }(R || (R = {})),
        function(e) {
            e[e.AUTO = 0] = "AUTO", e[e.MANUAL = 1] = "MANUAL"
        }(D || (D = {})),
        function(e) {
            e.LOW = "lowp", e.MEDIUM = "mediump", e.HIGH = "highp"
        }(F || (F = {})),
        function(e) {
            e[e.NONE = 0] = "NONE", e[e.SCISSOR = 1] = "SCISSOR", e[e.STENCIL = 2] = "STENCIL", e[e.SPRITE = 3] = "SPRITE"
        }(B || (B = {})),
        /*!
         * @pixi/utils - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/utils is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        N.RETINA_PREFIX = /@([0-9\.]+)x/, N.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = !0;
        var $, H = !1,
            W = "5.2.4";

        function Y() {
            H = !0
        }

        function z(e) {
            var t;
            if (!H) {
                if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
                    var i = ["\n %c %c %c PixiJS " + W + " - ✰ " + e + " ✰  %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;"];
                    (t = window.console).log.apply(t, i)
                } else window.console && window.console.log("PixiJS " + W + " - " + e + " - http://www.pixijs.com/");
                H = !0
            }
        }

        function q() {
            return void 0 === $ && ($ = function() {
                var e = {
                    stencil: !0,
                    failIfMajorPerformanceCaveat: N.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT
                };
                try {
                    if (!window.WebGLRenderingContext) return !1;
                    var t = document.createElement("canvas"),
                        i = t.getContext("webgl", e) || t.getContext("experimental-webgl", e),
                        r = !(!i || !i.getContextAttributes().stencil);
                    if (i) {
                        var n = i.getExtension("WEBGL_lose_context");
                        n && n.loseContext()
                    }
                    return i = null, r
                } catch (e) {
                    return !1
                }
            }()), $
        }

        function J(e, t) {
            return (t = t || [])[0] = (e >> 16 & 255) / 255, t[1] = (e >> 8 & 255) / 255, t[2] = (255 & e) / 255, t
        }

        function Q(e) {
            var t = e.toString(16);
            return "#" + (t = "000000".substr(0, 6 - t.length) + t)
        }

        function Z(e) {
            return "string" == typeof e && "#" === e[0] && (e = e.substr(1)), parseInt(e, 16)
        }

        function K(e) {
            return (255 * e[0] << 16) + (255 * e[1] << 8) + (255 * e[2] | 0)
        }
        var ee = function() {
            for (var e = [], t = [], i = 0; i < 32; i++) e[i] = i, t[i] = i;
            e[T.NORMAL_NPM] = T.NORMAL, e[T.ADD_NPM] = T.ADD, e[T.SCREEN_NPM] = T.SCREEN, t[T.NORMAL] = T.NORMAL_NPM, t[T.ADD] = T.ADD_NPM, t[T.SCREEN] = T.SCREEN_NPM;
            var r = [];
            return r.push(t), r.push(e), r
        }();

        function te(e, t) {
            return ee[t ? 1 : 0][e]
        }

        function ie(e, t, i, r) {
            return i = i || new Float32Array(4), r || void 0 === r ? (i[0] = e[0] * t, i[1] = e[1] * t, i[2] = e[2] * t) : (i[0] = e[0], i[1] = e[1], i[2] = e[2]), i[3] = t, i
        }

        function re(e, t) {
            if (1 === t) return (255 * t << 24) + e;
            if (0 === t) return 0;
            var i = e >> 16 & 255,
                r = e >> 8 & 255,
                n = 255 & e;
            return (255 * t << 24) + ((i = i * t + .5 | 0) << 16) + ((r = r * t + .5 | 0) << 8) + (n = n * t + .5 | 0)
        }

        function ne(e, t, i, r) {
            return (i = i || new Float32Array(4))[0] = (e >> 16 & 255) / 255, i[1] = (e >> 8 & 255) / 255, i[2] = (255 & e) / 255, (r || void 0 === r) && (i[0] *= t, i[1] *= t, i[2] *= t), i[3] = t, i
        }

        function ae(e, t) {
            void 0 === t && (t = null);
            var i = 6 * e;
            if ((t = t || new Uint16Array(i)).length !== i) throw new Error("Out buffer length is incorrect, got " + t.length + " and expected " + i);
            for (var r = 0, n = 0; r < i; r += 6, n += 4) t[r + 0] = n + 0, t[r + 1] = n + 1, t[r + 2] = n + 2, t[r + 3] = n + 0, t[r + 4] = n + 2, t[r + 5] = n + 3;
            return t
        }

        function se(e) {
            if (4 === e.BYTES_PER_ELEMENT) return e instanceof Float32Array ? "Float32Array" : e instanceof Uint32Array ? "Uint32Array" : "Int32Array";
            if (2 === e.BYTES_PER_ELEMENT) {
                if (e instanceof Uint16Array) return "Uint16Array"
            } else if (1 === e.BYTES_PER_ELEMENT && e instanceof Uint8Array) return "Uint8Array";
            return null
        }
        var oe = {
            Float32Array: Float32Array,
            Uint32Array: Uint32Array,
            Int32Array: Int32Array,
            Uint8Array: Uint8Array
        };

        function ue(e, t) {
            for (var i = 0, r = 0, n = {}, a = 0; a < e.length; a++) r += t[a], i += e[a].length;
            var s = new ArrayBuffer(4 * i),
                o = null,
                u = 0;
            for (a = 0; a < e.length; a++) {
                var h = t[a],
                    l = e[a],
                    f = se(l);
                n[f] || (n[f] = new oe[f](s)), o = n[f];
                for (var c = 0; c < l.length; c++) {
                    o[(c / h | 0) * r + u + c % h] = l[c]
                }
                u += h
            }
            return new Float32Array(s)
        }

        function he(e) {
            return e += 0 === e ? 1 : 0, --e, e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, (e |= e >>> 16) + 1
        }

        function le(e) {
            return !(e & e - 1 || !e)
        }

        function fe(e) {
            var t = (e > 65535 ? 1 : 0) << 4,
                i = ((e >>>= t) > 255 ? 1 : 0) << 3;
            return t |= i, t |= i = ((e >>>= i) > 15 ? 1 : 0) << 2, (t |= i = ((e >>>= i) > 3 ? 1 : 0) << 1) | (e >>>= i) >> 1
        }

        function ce(e, t, i) {
            var r, n = e.length;
            if (!(t >= n || 0 === i)) {
                var a = n - (i = t + i > n ? n - t : i);
                for (r = t; r < a; ++r) e[r] = e[r + i];
                e.length = a
            }
        }

        function de(e) {
            return 0 === e ? 0 : e < 0 ? -1 : 1
        }
        var pe = 0;

        function ve() {
            return ++pe
        }
        var me = {};

        function _e(e, t, i) {
            if (void 0 === i && (i = 3), !me[t]) {
                var r = (new Error).stack;
                void 0 === r || (r = r.split("\n").splice(i).join("\n"), console.groupCollapsed), me[t] = !0
            }
        }
        var be = {},
            ge = Object.create(null),
            ye = Object.create(null);

        function Ae() {
            var e;
            for (e in ge) ge[e].destroy();
            for (e in ye) ye[e].destroy()
        }

        function we() {
            var e;
            for (e in ge) delete ge[e];
            for (e in ye) delete ye[e]
        }
        var xe = function() {
            function e(e, t, i) {
                this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = i || N.RESOLUTION, this.resize(e, t)
            }
            return e.prototype.clear = function() {
                this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height)
            }, e.prototype.resize = function(e, t) {
                this.canvas.width = e * this.resolution, this.canvas.height = t * this.resolution
            }, e.prototype.destroy = function() {
                this.context = null, this.canvas = null
            }, Object.defineProperty(e.prototype, "width", {
                get: function() {
                    return this.canvas.width
                },
                set: function(e) {
                    this.canvas.width = e
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "height", {
                get: function() {
                    return this.canvas.height
                },
                set: function(e) {
                    this.canvas.height = e
                },
                enumerable: !0,
                configurable: !0
            }), e
        }();

        function ke(e) {
            var t, i, r, n = e.width,
                a = e.height,
                s = e.getContext("2d"),
                o = s.getImageData(0, 0, n, a).data,
                u = o.length,
                h = {
                    top: null,
                    left: null,
                    right: null,
                    bottom: null
                },
                l = null;
            for (t = 0; t < u; t += 4) 0 !== o[t + 3] && (i = t / 4 % n, r = ~~(t / 4 / n), null === h.top && (h.top = r), null === h.left ? h.left = i : i < h.left && (h.left = i), null === h.right ? h.right = i + 1 : h.right < i && (h.right = i + 1), null === h.bottom ? h.bottom = r : h.bottom < r && (h.bottom = r));
            return null !== h.top && (n = h.right - h.left, a = h.bottom - h.top + 1, l = s.getImageData(h.left, h.top, n, a)), {
                height: a,
                width: n,
                data: l
            }
        }
        var Te, Ee = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i;

        function Se(e) {
            var t = Ee.exec(e);
            if (t) return {
                mediaType: t[1] ? t[1].toLowerCase() : void 0,
                subType: t[2] ? t[2].toLowerCase() : void 0,
                charset: t[3] ? t[3].toLowerCase() : void 0,
                encoding: t[4] ? t[4].toLowerCase() : void 0,
                data: t[5]
            }
        }

        function Pe(e, t) {
            if (void 0 === t && (t = window.location), 0 === e.indexOf("data:")) return "";
            t = t || window.location, Te || (Te = document.createElement("a")), Te.href = e;
            var i = Object(j.parse)(Te.href),
                r = !i.port && "" === t.port || i.port === t.port;
            return i.hostname === t.hostname && r && i.protocol === t.protocol ? "" : "anonymous"
        }

        function Ie(e, t) {
            var i = N.RETINA_PREFIX.exec(e);
            return i ? parseFloat(i[1]) : void 0 !== t ? t : 1
        }
        /*!
         * @pixi/math - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/math is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Me, Ce = function() {
                function e(e, t) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), this.x = e, this.y = t
                }
                return e.prototype.clone = function() {
                    return new e(this.x, this.y)
                }, e.prototype.copyFrom = function(e) {
                    return this.set(e.x, e.y), this
                }, e.prototype.copyTo = function(e) {
                    return e.set(this.x, this.y), e
                }, e.prototype.equals = function(e) {
                    return e.x === this.x && e.y === this.y
                }, e.prototype.set = function(e, t) {
                    return void 0 === e && (e = 0), void 0 === t && (t = e), this.x = e, this.y = t, this
                }, e
            }(),
            Oe = function() {
                function e(e, t, i, r) {
                    void 0 === i && (i = 0), void 0 === r && (r = 0), this._x = i, this._y = r, this.cb = e, this.scope = t
                }
                return e.prototype.clone = function(t, i) {
                    return void 0 === t && (t = this.cb), void 0 === i && (i = this.scope), new e(t, i, this._x, this._y)
                }, e.prototype.set = function(e, t) {
                    return void 0 === e && (e = 0), void 0 === t && (t = e), this._x === e && this._y === t || (this._x = e, this._y = t, this.cb.call(this.scope)), this
                }, e.prototype.copyFrom = function(e) {
                    return this._x === e.x && this._y === e.y || (this._x = e.x, this._y = e.y, this.cb.call(this.scope)), this
                }, e.prototype.copyTo = function(e) {
                    return e.set(this._x, this._y), e
                }, e.prototype.equals = function(e) {
                    return e.x === this._x && e.y === this._y
                }, Object.defineProperty(e.prototype, "x", {
                    get: function() {
                        return this._x
                    },
                    set: function(e) {
                        this._x !== e && (this._x = e, this.cb.call(this.scope))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y", {
                    get: function() {
                        return this._y
                    },
                    set: function(e) {
                        this._y !== e && (this._y = e, this.cb.call(this.scope))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(),
            Re = 2 * Math.PI,
            De = 180 / Math.PI,
            Fe = Math.PI / 180;
        ! function(e) {
            e[e.POLY = 0] = "POLY", e[e.RECT = 1] = "RECT", e[e.CIRC = 2] = "CIRC", e[e.ELIP = 3] = "ELIP", e[e.RREC = 4] = "RREC"
        }(Me || (Me = {}));
        var Be = function() {
                function e(e, t, i, r, n, a) {
                    void 0 === e && (e = 1), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 1), void 0 === n && (n = 0), void 0 === a && (a = 0), this.array = null, this.a = e, this.b = t, this.c = i, this.d = r, this.tx = n, this.ty = a
                }
                return e.prototype.fromArray = function(e) {
                    this.a = e[0], this.b = e[1], this.c = e[3], this.d = e[4], this.tx = e[2], this.ty = e[5]
                }, e.prototype.set = function(e, t, i, r, n, a) {
                    return this.a = e, this.b = t, this.c = i, this.d = r, this.tx = n, this.ty = a, this
                }, e.prototype.toArray = function(e, t) {
                    this.array || (this.array = new Float32Array(9));
                    var i = t || this.array;
                    return e ? (i[0] = this.a, i[1] = this.b, i[2] = 0, i[3] = this.c, i[4] = this.d, i[5] = 0, i[6] = this.tx, i[7] = this.ty, i[8] = 1) : (i[0] = this.a, i[1] = this.c, i[2] = this.tx, i[3] = this.b, i[4] = this.d, i[5] = this.ty, i[6] = 0, i[7] = 0, i[8] = 1), i
                }, e.prototype.apply = function(e, t) {
                    t = t || new Ce;
                    var i = e.x,
                        r = e.y;
                    return t.x = this.a * i + this.c * r + this.tx, t.y = this.b * i + this.d * r + this.ty, t
                }, e.prototype.applyInverse = function(e, t) {
                    t = t || new Ce;
                    var i = 1 / (this.a * this.d + this.c * -this.b),
                        r = e.x,
                        n = e.y;
                    return t.x = this.d * i * r + -this.c * i * n + (this.ty * this.c - this.tx * this.d) * i, t.y = this.a * i * n + -this.b * i * r + (-this.ty * this.a + this.tx * this.b) * i, t
                }, e.prototype.translate = function(e, t) {
                    return this.tx += e, this.ty += t, this
                }, e.prototype.scale = function(e, t) {
                    return this.a *= e, this.d *= t, this.c *= e, this.b *= t, this.tx *= e, this.ty *= t, this
                }, e.prototype.rotate = function(e) {
                    var t = Math.cos(e),
                        i = Math.sin(e),
                        r = this.a,
                        n = this.c,
                        a = this.tx;
                    return this.a = r * t - this.b * i, this.b = r * i + this.b * t, this.c = n * t - this.d * i, this.d = n * i + this.d * t, this.tx = a * t - this.ty * i, this.ty = a * i + this.ty * t, this
                }, e.prototype.append = function(e) {
                    var t = this.a,
                        i = this.b,
                        r = this.c,
                        n = this.d;
                    return this.a = e.a * t + e.b * r, this.b = e.a * i + e.b * n, this.c = e.c * t + e.d * r, this.d = e.c * i + e.d * n, this.tx = e.tx * t + e.ty * r + this.tx, this.ty = e.tx * i + e.ty * n + this.ty, this
                }, e.prototype.setTransform = function(e, t, i, r, n, a, s, o, u) {
                    return this.a = Math.cos(s + u) * n, this.b = Math.sin(s + u) * n, this.c = -Math.sin(s - o) * a, this.d = Math.cos(s - o) * a, this.tx = e - (i * this.a + r * this.c), this.ty = t - (i * this.b + r * this.d), this
                }, e.prototype.prepend = function(e) {
                    var t = this.tx;
                    if (1 !== e.a || 0 !== e.b || 0 !== e.c || 1 !== e.d) {
                        var i = this.a,
                            r = this.c;
                        this.a = i * e.a + this.b * e.c, this.b = i * e.b + this.b * e.d, this.c = r * e.a + this.d * e.c, this.d = r * e.b + this.d * e.d
                    }
                    return this.tx = t * e.a + this.ty * e.c + e.tx, this.ty = t * e.b + this.ty * e.d + e.ty, this
                }, e.prototype.decompose = function(e) {
                    var t = this.a,
                        i = this.b,
                        r = this.c,
                        n = this.d,
                        a = -Math.atan2(-r, n),
                        s = Math.atan2(i, t),
                        o = Math.abs(a + s);
                    return o < 1e-5 || Math.abs(Re - o) < 1e-5 ? (e.rotation = s, e.skew.x = e.skew.y = 0) : (e.rotation = 0, e.skew.x = a, e.skew.y = s), e.scale.x = Math.sqrt(t * t + i * i), e.scale.y = Math.sqrt(r * r + n * n), e.position.x = this.tx, e.position.y = this.ty, e
                }, e.prototype.invert = function() {
                    var e = this.a,
                        t = this.b,
                        i = this.c,
                        r = this.d,
                        n = this.tx,
                        a = e * r - t * i;
                    return this.a = r / a, this.b = -t / a, this.c = -i / a, this.d = e / a, this.tx = (i * this.ty - r * n) / a, this.ty = -(e * this.ty - t * n) / a, this
                }, e.prototype.identity = function() {
                    return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this
                }, e.prototype.clone = function() {
                    var t = new e;
                    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
                }, e.prototype.copyTo = function(e) {
                    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
                }, e.prototype.copyFrom = function(e) {
                    return this.a = e.a, this.b = e.b, this.c = e.c, this.d = e.d, this.tx = e.tx, this.ty = e.ty, this
                }, Object.defineProperty(e, "IDENTITY", {
                    get: function() {
                        return new e
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e, "TEMP_MATRIX", {
                    get: function() {
                        return new e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(),
            Ne = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1],
            Le = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1],
            Ue = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1],
            Ve = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1],
            Xe = [],
            je = [],
            Ge = Math.sign;
        ! function() {
            for (var e = 0; e < 16; e++) {
                var t = [];
                Xe.push(t);
                for (var i = 0; i < 16; i++)
                    for (var r = Ge(Ne[e] * Ne[i] + Ue[e] * Le[i]), n = Ge(Le[e] * Ne[i] + Ve[e] * Le[i]), a = Ge(Ne[e] * Ue[i] + Ue[e] * Ve[i]), s = Ge(Le[e] * Ue[i] + Ve[e] * Ve[i]), o = 0; o < 16; o++)
                        if (Ne[o] === r && Le[o] === n && Ue[o] === a && Ve[o] === s) {
                            t.push(o);
                            break
                        }
            }
            for (e = 0; e < 16; e++) {
                var u = new Be;
                u.set(Ne[e], Le[e], Ue[e], Ve[e], 0, 0), je.push(u)
            }
        }();
        var $e = {
                E: 0,
                SE: 1,
                S: 2,
                SW: 3,
                W: 4,
                NW: 5,
                N: 6,
                NE: 7,
                MIRROR_VERTICAL: 8,
                MAIN_DIAGONAL: 10,
                MIRROR_HORIZONTAL: 12,
                REVERSE_DIAGONAL: 14,
                uX: function(e) {
                    return Ne[e]
                },
                uY: function(e) {
                    return Le[e]
                },
                vX: function(e) {
                    return Ue[e]
                },
                vY: function(e) {
                    return Ve[e]
                },
                inv: function(e) {
                    return 8 & e ? 15 & e : 7 & -e
                },
                add: function(e, t) {
                    return Xe[e][t]
                },
                sub: function(e, t) {
                    return Xe[e][$e.inv(t)]
                },
                rotate180: function(e) {
                    return 4 ^ e
                },
                isVertical: function(e) {
                    return 2 == (3 & e)
                },
                byDirection: function(e, t) {
                    return 2 * Math.abs(e) <= Math.abs(t) ? t >= 0 ? $e.S : $e.N : 2 * Math.abs(t) <= Math.abs(e) ? e > 0 ? $e.E : $e.W : t > 0 ? e > 0 ? $e.SE : $e.SW : e > 0 ? $e.NE : $e.NW
                },
                matrixAppendRotationInv: function(e, t, i, r) {
                    void 0 === i && (i = 0), void 0 === r && (r = 0);
                    var n = je[$e.inv(t)];
                    n.tx = i, n.ty = r, e.append(n)
                }
            },
            He = function() {
                function e() {
                    this.worldTransform = new Be, this.localTransform = new Be, this.position = new Oe(this.onChange, this, 0, 0), this.scale = new Oe(this.onChange, this, 1, 1), this.pivot = new Oe(this.onChange, this, 0, 0), this.skew = new Oe(this.updateSkew, this, 0, 0), this._rotation = 0, this._cx = 1, this._sx = 0, this._cy = 0, this._sy = 1, this._localID = 0, this._currentLocalID = 0, this._worldID = 0, this._parentID = 0
                }
                return 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 e = this.localTransform;
                    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)
                }, e.prototype.updateTransform = function(e) {
                    var t = this.localTransform;
                    if (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), this._parentID !== e._worldID) {
                        var i = e.worldTransform,
                            r = this.worldTransform;
                        r.a = t.a * i.a + t.b * i.c, r.b = t.a * i.b + t.b * i.d, r.c = t.c * i.a + t.d * i.c, r.d = t.c * i.b + t.d * i.d, r.tx = t.tx * i.a + t.ty * i.c + i.tx, r.ty = t.tx * i.b + t.ty * i.d + i.ty, this._parentID = e._worldID, this._worldID++
                    }
                }, e.prototype.setFromMatrix = function(e) {
                    e.decompose(this), this._localID++
                }, Object.defineProperty(e.prototype, "rotation", {
                    get: function() {
                        return this._rotation
                    },
                    set: function(e) {
                        this._rotation !== e && (this._rotation = e, this.updateSkew())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.IDENTITY = new e, e
            }(),
            We = function() {
                function e(e, t, i, r) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), this.x = Number(e), this.y = Number(t), this.width = Number(i), this.height = Number(r), this.type = Me.RECT
                }
                return Object.defineProperty(e.prototype, "left", {
                    get: function() {
                        return this.x
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "right", {
                    get: function() {
                        return this.x + this.width
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "top", {
                    get: function() {
                        return this.y
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bottom", {
                    get: function() {
                        return this.y + this.height
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e, "EMPTY", {
                    get: function() {
                        return new e(0, 0, 0, 0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.clone = function() {
                    return new e(this.x, this.y, this.width, this.height)
                }, e.prototype.copyFrom = function(e) {
                    return this.x = e.x, this.y = e.y, this.width = e.width, this.height = e.height, this
                }, e.prototype.copyTo = function(e) {
                    return e.x = this.x, e.y = this.y, e.width = this.width, e.height = this.height, e
                }, e.prototype.contains = function(e, t) {
                    return !(this.width <= 0 || this.height <= 0) && (e >= this.x && e < this.x + this.width && t >= this.y && t < this.y + this.height)
                }, e.prototype.pad = function(e, t) {
                    return void 0 === e && (e = 0), void 0 === t && (t = e), this.x -= e, this.y -= t, this.width += 2 * e, this.height += 2 * t, this
                }, e.prototype.fit = function(e) {
                    var t = Math.max(this.x, e.x),
                        i = Math.min(this.x + this.width, e.x + e.width),
                        r = Math.max(this.y, e.y),
                        n = Math.min(this.y + this.height, e.y + e.height);
                    return this.x = t, this.width = Math.max(i - t, 0), this.y = r, this.height = Math.max(n - r, 0), this
                }, e.prototype.ceil = function(e, t) {
                    void 0 === e && (e = 1), void 0 === t && (t = .001);
                    var i = Math.ceil((this.x + this.width - t) * e) / e,
                        r = Math.ceil((this.y + this.height - t) * e) / e;
                    return this.x = Math.floor((this.x + t) * e) / e, this.y = Math.floor((this.y + t) * e) / e, this.width = i - this.x, this.height = r - this.y, this
                }, e.prototype.enlarge = function(e) {
                    var t = Math.min(this.x, e.x),
                        i = Math.max(this.x + this.width, e.x + e.width),
                        r = Math.min(this.y, e.y),
                        n = Math.max(this.y + this.height, e.y + e.height);
                    return this.x = t, this.width = i - t, this.y = r, this.height = n - r, this
                }, e
            }(),
            Ye = function() {
                function e(e, t, i) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), this.x = e, this.y = t, this.radius = i, this.type = Me.CIRC
                }
                return e.prototype.clone = function() {
                    return new e(this.x, this.y, this.radius)
                }, e.prototype.contains = function(e, t) {
                    if (this.radius <= 0) return !1;
                    var i = this.radius * this.radius,
                        r = this.x - e,
                        n = this.y - t;
                    return (r *= r) + (n *= n) <= i
                }, e.prototype.getBounds = function() {
                    return new We(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius)
                }, e
            }(),
            ze = function() {
                function e(e, t, i, r) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), this.x = e, this.y = t, this.width = i, this.height = r, this.type = Me.ELIP
                }
                return e.prototype.clone = function() {
                    return new e(this.x, this.y, this.width, this.height)
                }, e.prototype.contains = function(e, t) {
                    if (this.width <= 0 || this.height <= 0) return !1;
                    var i = (e - this.x) / this.width,
                        r = (t - this.y) / this.height;
                    return (i *= i) + (r *= r) <= 1
                }, e.prototype.getBounds = function() {
                    return new We(this.x - this.width, this.y - this.height, this.width, this.height)
                }, e
            }(),
            qe = function() {
                function e() {
                    for (var e = arguments, t = [], i = 0; i < arguments.length; i++) t[i] = e[i];
                    if (Array.isArray(t[0]) && (t = t[0]), t[0] instanceof Ce) {
                        for (var r = [], n = 0, a = (t = t).length; n < a; n++) r.push(t[n].x, t[n].y);
                        t = r
                    }
                    this.points = t, this.type = Me.POLY, this.closeStroke = !0
                }
                return e.prototype.clone = function() {
                    var t = new e(this.points.slice());
                    return t.closeStroke = this.closeStroke, t
                }, e.prototype.contains = function(e, t) {
                    for (var i = !1, r = this.points.length / 2, n = 0, a = r - 1; n < r; a = n++) {
                        var s = this.points[2 * n],
                            o = this.points[2 * n + 1],
                            u = this.points[2 * a],
                            h = this.points[2 * a + 1];
                        o > t != h > t && e < (t - o) / (h - o) * (u - s) + s && (i = !i)
                    }
                    return i
                }, e
            }(),
            Je = function() {
                function e(e, t, i, r, n) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === n && (n = 20), this.x = e, this.y = t, this.width = i, this.height = r, this.radius = n, this.type = Me.RREC
                }
                return e.prototype.clone = function() {
                    return new e(this.x, this.y, this.width, this.height, this.radius)
                }, e.prototype.contains = function(e, t) {
                    if (this.width <= 0 || this.height <= 0) return !1;
                    if (e >= this.x && e <= this.x + this.width && t >= this.y && t <= this.y + this.height) {
                        if (t >= this.y + this.radius && t <= this.y + this.height - this.radius || e >= this.x + this.radius && e <= this.x + this.width - this.radius) return !0;
                        var i = e - (this.x + this.radius),
                            r = t - (this.y + this.radius),
                            n = this.radius * this.radius;
                        if (i * i + r * r <= n) return !0;
                        if ((i = e - (this.x + this.width - this.radius)) * i + r * r <= n) return !0;
                        if (i * i + (r = t - (this.y + this.height - this.radius)) * r <= n) return !0;
                        if ((i = e - (this.x + this.radius)) * i + r * r <= n) return !0
                    }
                    return !1
                }, e
            }();
        /*!
         * @pixi/display - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/display is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        N.SORTABLE_CHILDREN = !1;
        var Qe = function() {
            this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null
        };
        Qe.prototype.isEmpty = function() {
            return this.minX > this.maxX || this.minY > this.maxY
        }, Qe.prototype.clear = function() {
            this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0
        }, Qe.prototype.getRectangle = function(e) {
            return this.minX > this.maxX || this.minY > this.maxY ? We.EMPTY : ((e = e || new We(0, 0, 1, 1)).x = this.minX, e.y = this.minY, e.width = this.maxX - this.minX, e.height = this.maxY - this.minY, e)
        }, Qe.prototype.addPoint = function(e) {
            this.minX = Math.min(this.minX, e.x), this.maxX = Math.max(this.maxX, e.x), this.minY = Math.min(this.minY, e.y), this.maxY = Math.max(this.maxY, e.y)
        }, Qe.prototype.addQuad = function(e) {
            var t = this.minX,
                i = this.minY,
                r = this.maxX,
                n = this.maxY,
                a = e[0],
                s = e[1];
            t = a < t ? a : t, i = s < i ? s : i, r = a > r ? a : r, n = s > n ? s : n, t = (a = e[2]) < t ? a : t, i = (s = e[3]) < i ? s : i, r = a > r ? a : r, n = s > n ? s : n, t = (a = e[4]) < t ? a : t, i = (s = e[5]) < i ? s : i, r = a > r ? a : r, n = s > n ? s : n, t = (a = e[6]) < t ? a : t, i = (s = e[7]) < i ? s : i, r = a > r ? a : r, n = s > n ? s : n, this.minX = t, this.minY = i, this.maxX = r, this.maxY = n
        }, Qe.prototype.addFrame = function(e, t, i, r, n) {
            this.addFrameMatrix(e.worldTransform, t, i, r, n)
        }, Qe.prototype.addFrameMatrix = function(e, t, i, r, n) {
            var a = e.a,
                s = e.b,
                o = e.c,
                u = e.d,
                h = e.tx,
                l = e.ty,
                f = this.minX,
                c = this.minY,
                d = this.maxX,
                p = this.maxY,
                v = a * t + o * i + h,
                m = s * t + u * i + l;
            f = v < f ? v : f, c = m < c ? m : c, d = v > d ? v : d, p = m > p ? m : p, f = (v = a * r + o * i + h) < f ? v : f, c = (m = s * r + u * i + l) < c ? m : c, d = v > d ? v : d, p = m > p ? m : p, f = (v = a * t + o * n + h) < f ? v : f, c = (m = s * t + u * n + l) < c ? m : c, d = v > d ? v : d, p = m > p ? m : p, f = (v = a * r + o * n + h) < f ? v : f, c = (m = s * r + u * n + l) < c ? m : c, d = v > d ? v : d, p = m > p ? m : p, this.minX = f, this.minY = c, this.maxX = d, this.maxY = p
        }, Qe.prototype.addVertexData = function(e, t, i) {
            for (var r = this.minX, n = this.minY, a = this.maxX, s = this.maxY, o = t; o < i; o += 2) {
                var u = e[o],
                    h = e[o + 1];
                r = u < r ? u : r, n = h < n ? h : n, a = u > a ? u : a, s = h > s ? h : s
            }
            this.minX = r, this.minY = n, this.maxX = a, this.maxY = s
        }, Qe.prototype.addVertices = function(e, t, i, r) {
            this.addVerticesMatrix(e.worldTransform, t, i, r)
        }, Qe.prototype.addVerticesMatrix = function(e, t, i, r, n, a) {
            var s = e.a,
                o = e.b,
                u = e.c,
                h = e.d,
                l = e.tx,
                f = e.ty;
            n = n || 0, a = a || 0;
            for (var c = this.minX, d = this.minY, p = this.maxX, v = this.maxY, m = i; m < r; m += 2) {
                var _ = t[m],
                    b = t[m + 1],
                    g = s * _ + u * b + l,
                    y = h * b + o * _ + f;
                c = Math.min(c, g - n), p = Math.max(p, g + n), d = Math.min(d, y - a), v = Math.max(v, y + a)
            }
            this.minX = c, this.minY = d, this.maxX = p, this.maxY = v
        }, Qe.prototype.addBounds = function(e) {
            var t = this.minX,
                i = this.minY,
                r = this.maxX,
                n = this.maxY;
            this.minX = e.minX < t ? e.minX : t, this.minY = e.minY < i ? e.minY : i, this.maxX = e.maxX > r ? e.maxX : r, this.maxY = e.maxY > n ? e.maxY : n
        }, Qe.prototype.addBoundsMask = function(e, t) {
            var i = e.minX > t.minX ? e.minX : t.minX,
                r = e.minY > t.minY ? e.minY : t.minY,
                n = e.maxX < t.maxX ? e.maxX : t.maxX,
                a = e.maxY < t.maxY ? e.maxY : t.maxY;
            if (i <= n && r <= a) {
                var s = this.minX,
                    o = this.minY,
                    u = this.maxX,
                    h = this.maxY;
                this.minX = i < s ? i : s, this.minY = r < o ? r : o, this.maxX = n > u ? n : u, this.maxY = a > h ? a : h
            }
        }, Qe.prototype.addBoundsMatrix = function(e, t) {
            this.addFrameMatrix(t, e.minX, e.minY, e.maxX, e.maxY)
        }, Qe.prototype.addBoundsArea = function(e, t) {
            var i = e.minX > t.x ? e.minX : t.x,
                r = e.minY > t.y ? e.minY : t.y,
                n = e.maxX < t.x + t.width ? e.maxX : t.x + t.width,
                a = e.maxY < t.y + t.height ? e.maxY : t.y + t.height;
            if (i <= n && r <= a) {
                var s = this.minX,
                    o = this.minY,
                    u = this.maxX,
                    h = this.maxY;
                this.minX = i < s ? i : s, this.minY = r < o ? r : o, this.maxX = n > u ? n : u, this.maxY = a > h ? a : h
            }
        }, Qe.prototype.pad = function(e, t) {
            e = e || 0, t = t || (0 !== t ? e : 0), this.isEmpty() || (this.minX -= e, this.maxX += e, this.minY -= t, this.maxY += t)
        }, Qe.prototype.addFramePad = function(e, t, i, r, n, a) {
            e -= n, t -= a, i += n, r += a, this.minX = this.minX < e ? this.minX : e, this.maxX = this.maxX > i ? this.maxX : i, this.minY = this.minY < t ? this.minY : t, this.maxY = this.maxY > r ? this.maxY : r
        };
        var Ze = function(e) {
            function t() {
                e.call(this), this.tempDisplayObjectParent = null, this.transform = new He, this.alpha = 1, this.visible = !0, this.renderable = !0, this.parent = null, this.worldAlpha = 1, this._lastSortedIndex = 0, this._zIndex = 0, this.filterArea = null, this.filters = null, this._enabledFilters = null, this._bounds = new Qe, this._boundsID = 0, this._lastBoundsID = -1, this._boundsRect = null, this._localBoundsRect = null, this._mask = null, this._destroyed = !1, this.isSprite = !1, this.isMask = !1
            }
            e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
            var i = {
                _tempDisplayObjectParent: {
                    configurable: !0
                },
                x: {
                    configurable: !0
                },
                y: {
                    configurable: !0
                },
                worldTransform: {
                    configurable: !0
                },
                localTransform: {
                    configurable: !0
                },
                position: {
                    configurable: !0
                },
                scale: {
                    configurable: !0
                },
                pivot: {
                    configurable: !0
                },
                skew: {
                    configurable: !0
                },
                rotation: {
                    configurable: !0
                },
                angle: {
                    configurable: !0
                },
                zIndex: {
                    configurable: !0
                },
                worldVisible: {
                    configurable: !0
                },
                mask: {
                    configurable: !0
                }
            };
            return t.mixin = function(e) {
                for (var i = Object.keys(e), r = 0; r < i.length; ++r) {
                    var n = i[r];
                    Object.defineProperty(t.prototype, n, Object.getOwnPropertyDescriptor(e, n))
                }
            }, i._tempDisplayObjectParent.get = function() {
                return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new t), this.tempDisplayObjectParent
            }, t.prototype.updateTransform = function() {
                this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha
            }, t.prototype.calculateBounds = function() {}, t.prototype._recursivePostUpdateTransform = function() {
                this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform)
            }, t.prototype.getBounds = function(e, t) {
                return e || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && (this.calculateBounds(), this._lastBoundsID = this._boundsID), t || (this._boundsRect || (this._boundsRect = new We), t = this._boundsRect), this._bounds.getRectangle(t)
            }, t.prototype.getLocalBounds = function(e) {
                var t = this.transform,
                    i = this.parent;
                this.parent = null, this.transform = this._tempDisplayObjectParent.transform, e || (this._localBoundsRect || (this._localBoundsRect = new We), e = this._localBoundsRect);
                var r = this.getBounds(!1, e);
                return this.parent = i, this.transform = t, r
            }, t.prototype.toGlobal = function(e, t, i) {
                return void 0 === i && (i = !1), i || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(e, t)
            }, t.prototype.toLocal = function(e, t, i, r) {
                return t && (e = t.toGlobal(e, i, r)), r || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(e, i)
            }, t.prototype.render = function(e) {}, t.prototype.setParent = function(e) {
                if (!e || !e.addChild) throw new Error("setParent: Argument must be a Container");
                return e.addChild(this), e
            }, t.prototype.setTransform = function(e, t, i, r, n, a, s, o, u) {
                return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 1), void 0 === r && (r = 1), void 0 === n && (n = 0), void 0 === a && (a = 0), void 0 === s && (s = 0), void 0 === o && (o = 0), void 0 === u && (u = 0), this.position.x = e, this.position.y = t, this.scale.x = i || 1, this.scale.y = r || 1, this.rotation = n, this.skew.x = a, this.skew.y = s, this.pivot.x = o, this.pivot.y = u, this
            }, t.prototype.destroy = function() {
                this.parent && this.parent.removeChild(this), this.removeAllListeners(), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filters = null, this.filterArea = null, this.hitArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0
            }, i.x.get = function() {
                return this.position.x
            }, i.x.set = function(e) {
                this.transform.position.x = e
            }, i.y.get = function() {
                return this.position.y
            }, i.y.set = function(e) {
                this.transform.position.y = e
            }, i.worldTransform.get = function() {
                return this.transform.worldTransform
            }, i.localTransform.get = function() {
                return this.transform.localTransform
            }, i.position.get = function() {
                return this.transform.position
            }, i.position.set = function(e) {
                this.transform.position.copyFrom(e)
            }, i.scale.get = function() {
                return this.transform.scale
            }, i.scale.set = function(e) {
                this.transform.scale.copyFrom(e)
            }, i.pivot.get = function() {
                return this.transform.pivot
            }, i.pivot.set = function(e) {
                this.transform.pivot.copyFrom(e)
            }, i.skew.get = function() {
                return this.transform.skew
            }, i.skew.set = function(e) {
                this.transform.skew.copyFrom(e)
            }, i.rotation.get = function() {
                return this.transform.rotation
            }, i.rotation.set = function(e) {
                this.transform.rotation = e
            }, i.angle.get = function() {
                return this.transform.rotation * De
            }, i.angle.set = function(e) {
                this.transform.rotation = e * Fe
            }, i.zIndex.get = function() {
                return this._zIndex
            }, i.zIndex.set = function(e) {
                this._zIndex = e, this.parent && (this.parent.sortDirty = !0)
            }, i.worldVisible.get = function() {
                var e = this;
                do {
                    if (!e.visible) return !1;
                    e = e.parent
                } while (e);
                return !0
            }, i.mask.get = function() {
                return this._mask
            }, i.mask.set = function(e) {
                if (this._mask) {
                    var t = this._mask.maskObject || this._mask;
                    t.renderable = !0, t.isMask = !1
                }
                if (this._mask = e, this._mask) {
                    var i = this._mask.maskObject || this._mask;
                    i.renderable = !1, i.isMask = !0
                }
            }, Object.defineProperties(t.prototype, i), t
        }(U.a);

        function Ke(e, t) {
            return e.zIndex === t.zIndex ? e._lastSortedIndex - t._lastSortedIndex : e.zIndex - t.zIndex
        }
        Ze.prototype.displayObjectUpdateTransform = Ze.prototype.updateTransform;
        var et = function(e) {
            function t() {
                e.call(this), this.children = [], this.sortableChildren = N.SORTABLE_CHILDREN, this.sortDirty = !1
            }
            e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
            var i = {
                width: {
                    configurable: !0
                },
                height: {
                    configurable: !0
                }
            };
            return t.prototype.onChildrenChange = function() {}, t.prototype.addChild = function(e) {
                var t = arguments,
                    i = arguments.length;
                if (i > 1)
                    for (var r = 0; r < i; r++) this.addChild(t[r]);
                else e.parent && e.parent.removeChild(e), e.parent = this, this.sortDirty = !0, e.transform._parentID = -1, this.children.push(e), this._boundsID++, this.onChildrenChange(this.children.length - 1), this.emit("childAdded", e, this, this.children.length - 1), e.emit("added", this);
                return e
            }, t.prototype.addChildAt = function(e, t) {
                if (t < 0 || t > this.children.length) throw new Error(e + "addChildAt: The index " + t + " supplied is out of bounds " + this.children.length);
                return e.parent && e.parent.removeChild(e), e.parent = this, this.sortDirty = !0, e.transform._parentID = -1, this.children.splice(t, 0, e), this._boundsID++, this.onChildrenChange(t), e.emit("added", this), this.emit("childAdded", e, this, t), e
            }, t.prototype.swapChildren = function(e, t) {
                if (e !== t) {
                    var i = this.getChildIndex(e),
                        r = this.getChildIndex(t);
                    this.children[i] = t, this.children[r] = e, this.onChildrenChange(i < r ? i : r)
                }
            }, t.prototype.getChildIndex = function(e) {
                var t = this.children.indexOf(e);
                if (-1 === t) throw new Error("The supplied DisplayObject must be a child of the caller");
                return t
            }, t.prototype.setChildIndex = function(e, t) {
                if (t < 0 || t >= this.children.length) throw new Error("The index " + t + " supplied is out of bounds " + this.children.length);
                var i = this.getChildIndex(e);
                ce(this.children, i, 1), this.children.splice(t, 0, e), this.onChildrenChange(t)
            }, t.prototype.getChildAt = function(e) {
                if (e < 0 || e >= this.children.length) throw new Error("getChildAt: Index (" + e + ") does not exist.");
                return this.children[e]
            }, t.prototype.removeChild = function(e) {
                var t = arguments,
                    i = arguments.length;
                if (i > 1)
                    for (var r = 0; r < i; r++) this.removeChild(t[r]);
                else {
                    var n = this.children.indexOf(e);
                    if (-1 === n) return null;
                    e.parent = null, e.transform._parentID = -1, ce(this.children, n, 1), this._boundsID++, this.onChildrenChange(n), e.emit("removed", this), this.emit("childRemoved", e, this, n)
                }
                return e
            }, t.prototype.removeChildAt = function(e) {
                var t = this.getChildAt(e);
                return t.parent = null, t.transform._parentID = -1, ce(this.children, e, 1), this._boundsID++, this.onChildrenChange(e), t.emit("removed", this), this.emit("childRemoved", t, this, e), t
            }, t.prototype.removeChildren = function(e, t) {
                void 0 === e && (e = 0);
                var i, r = e,
                    n = "number" == typeof t ? t : this.children.length,
                    a = n - r;
                if (a > 0 && a <= n) {
                    i = this.children.splice(r, a);
                    for (var s = 0; s < i.length; ++s) i[s].parent = null, i[s].transform && (i[s].transform._parentID = -1);
                    this._boundsID++, this.onChildrenChange(e);
                    for (var o = 0; o < i.length; ++o) i[o].emit("removed", this), this.emit("childRemoved", i[o], this, o);
                    return i
                }
                if (0 === a && 0 === this.children.length) return [];
                throw new RangeError("removeChildren: numeric values are outside the acceptable range.")
            }, t.prototype.sortChildren = function() {
                for (var e = !1, t = 0, i = this.children.length; t < i; ++t) {
                    var r = this.children[t];
                    r._lastSortedIndex = t, e || 0 === r.zIndex || (e = !0)
                }
                e && this.children.length > 1 && this.children.sort(Ke), this.sortDirty = !1
            }, t.prototype.updateTransform = function() {
                this.sortableChildren && this.sortDirty && this.sortChildren(), this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;
                for (var e = 0, t = this.children.length; e < t; ++e) {
                    var i = this.children[e];
                    i.visible && i.updateTransform()
                }
            }, t.prototype.calculateBounds = function() {
                this._bounds.clear(), this._calculateBounds();
                for (var e = 0; e < this.children.length; e++) {
                    var t = this.children[e];
                    if (t.visible && t.renderable)
                        if (t.calculateBounds(), t._mask) {
                            var i = t._mask.maskObject || t._mask;
                            i.calculateBounds(), this._bounds.addBoundsMask(t._bounds, i._bounds)
                        } else t.filterArea ? this._bounds.addBoundsArea(t._bounds, t.filterArea) : this._bounds.addBounds(t._bounds)
                }
                this._lastBoundsID = this._boundsID
            }, t.prototype._calculateBounds = function() {}, t.prototype.render = function(e) {
                if (this.visible && !(this.worldAlpha <= 0) && this.renderable)
                    if (this._mask || this.filters && this.filters.length) this.renderAdvanced(e);
                    else {
                        this._render(e);
                        for (var t = 0, i = this.children.length; t < i; ++t) this.children[t].render(e)
                    }
            }, t.prototype.renderAdvanced = function(e) {
                e.batch.flush();
                var t = this.filters,
                    i = this._mask;
                if (t) {
                    this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0;
                    for (var r = 0; r < t.length; r++) t[r].enabled && this._enabledFilters.push(t[r]);
                    this._enabledFilters.length && e.filter.push(this, this._enabledFilters)
                }
                i && e.mask.push(this, this._mask), this._render(e);
                for (var n = 0, a = this.children.length; n < a; n++) this.children[n].render(e);
                e.batch.flush(), i && e.mask.pop(this, this._mask), t && this._enabledFilters && this._enabledFilters.length && e.filter.pop()
            }, t.prototype._render = function(e) {}, t.prototype.destroy = function(t) {
                e.prototype.destroy.call(this), this.sortDirty = !1;
                var i = "boolean" == typeof t ? t : t && t.children,
                    r = this.removeChildren(0, this.children.length);
                if (i)
                    for (var n = 0; n < r.length; ++n) r[n].destroy(t)
            }, i.width.get = function() {
                return this.scale.x * this.getLocalBounds().width
            }, i.width.set = function(e) {
                var t = this.getLocalBounds().width;
                this.scale.x = 0 !== t ? e / t : 1, this._width = e
            }, i.height.get = function() {
                return this.scale.y * this.getLocalBounds().height
            }, i.height.set = function(e) {
                var t = this.getLocalBounds().height;
                this.scale.y = 0 !== t ? e / t : 1, this._height = e
            }, Object.defineProperties(t.prototype, i), t
        }(Ze);
        et.prototype.containerUpdateTransform = et.prototype.updateTransform;
        /*!
         * @pixi/accessibility - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/accessibility is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var tt = {
            accessible: !1,
            accessibleTitle: null,
            accessibleHint: null,
            tabIndex: 0,
            _accessibleActive: !1,
            _accessibleDiv: !1,
            accessibleType: "button",
            accessiblePointerEvents: "auto",
            accessibleChildren: !0
        };
        Ze.mixin(tt);
        var it, rt = function(e) {
            this._hookDiv = null, (w.tablet || w.phone) && this.createTouchHook();
            var t = document.createElement("div");
            t.style.width = "100px", t.style.height = "100px", t.style.position = "absolute", t.style.top = "0px", t.style.left = "0px", t.style.zIndex = 2, this.div = t, 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.isMobileAccessibility = !1, this.androidUpdateCount = 0, this.androidUpdateFrequency = 500, window.addEventListener("keydown", this._onKeyDown, !1)
        };
        rt.prototype.createTouchHook = function() {
                var e = this,
                    t = document.createElement("button");
                t.style.width = "1px", t.style.height = "1px", t.style.position = "absolute", t.style.top = "-1000px", t.style.left = "-1000px", t.style.zIndex = 2, t.style.backgroundColor = "#FF0000", t.title = "select to enable accessability for this content", t.addEventListener("focus", function() {
                    e.isMobileAccessibility = !0, e.activate(), e.destroyTouchHook()
                }), document.body.appendChild(t), this._hookDiv = t
            }, rt.prototype.destroyTouchHook = function() {
                this._hookDiv && (document.body.removeChild(this._hookDiv), this._hookDiv = null)
            }, rt.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))
            }, rt.prototype.deactivate = function() {
                this.isActive && !this.isMobileAccessibility && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div))
            }, rt.prototype.updateAccessibleObjects = function(e) {
                if (e.visible && e.accessibleChildren) {
                    e.accessible && e.interactive && (e._accessibleActive || this.addChild(e), e.renderId = this.renderId);
                    for (var t = e.children, i = 0; i < t.length; i++) this.updateAccessibleObjects(t[i])
                }
            }, rt.prototype.update = function() {
                var e = performance.now();
                if (!(w.android.device && e < this.androidUpdateCount) && (this.androidUpdateCount = e + this.androidUpdateFrequency, this.renderer.renderingToScreen)) {
                    this.updateAccessibleObjects(this.renderer._lastObjectRendered);
                    var t = this.renderer.view.getBoundingClientRect(),
                        i = this.renderer.resolution,
                        r = t.width / this.renderer.width * i,
                        n = t.height / this.renderer.height * i,
                        a = this.div;
                    a.style.left = t.left + "px", a.style.top = t.top + "px", a.style.width = this.renderer.width + "px", a.style.height = this.renderer.height + "px";
                    for (var s = 0; s < this.children.length; s++) {
                        var o = this.children[s];
                        if (o.renderId !== this.renderId) o._accessibleActive = !1, ce(this.children, s, 1), this.div.removeChild(o._accessibleDiv), this.pool.push(o._accessibleDiv), o._accessibleDiv = null, s--;
                        else {
                            a = o._accessibleDiv;
                            var u = o.hitArea,
                                h = o.worldTransform;
                            o.hitArea ? (a.style.left = (h.tx + u.x * h.a) * r + "px", a.style.top = (h.ty + u.y * h.d) * n + "px", a.style.width = u.width * h.a * r + "px", a.style.height = u.height * h.d * n + "px") : (u = o.getBounds(), this.capHitArea(u), a.style.left = u.x * r + "px", a.style.top = u.y * n + "px", a.style.width = u.width * r + "px", a.style.height = u.height * n + "px", a.title !== o.accessibleTitle && null !== o.accessibleTitle && (a.title = o.accessibleTitle), a.getAttribute("aria-label") !== o.accessibleHint && null !== o.accessibleHint && a.setAttribute("aria-label", o.accessibleHint)), o.accessibleTitle === a.title && o.tabIndex === a.tabIndex || (a.title = o.accessibleTitle, a.tabIndex = o.tabIndex, this.debug && this.updateDebugHTML(a))
                        }
                    }
                    this.renderId++
                }
            }, rt.prototype.updateDebugHTML = function(e) {
                e.innerHTML = "type: " + e.type + "</br> title : " + e.title + "</br> tabIndex: " + e.tabIndex
            }, rt.prototype.capHitArea = function(e) {
                e.x < 0 && (e.width += e.x, e.x = 0), e.y < 0 && (e.height += e.y, e.y = 0), e.x + e.width > this.renderer.width && (e.width = this.renderer.width - e.x), e.y + e.height > this.renderer.height && (e.height = this.renderer.height - e.y)
            }, rt.prototype.addChild = function(e) {
                var t = this.pool.pop();
                t || ((t = document.createElement("button")).style.width = "100px", t.style.height = "100px", t.style.backgroundColor = this.debug ? "rgba(255,255,255,0.5)" : "transparent", t.style.position = "absolute", t.style.zIndex = 2, t.style.borderStyle = "none", navigator.userAgent.toLowerCase().indexOf("chrome") > -1 ? t.setAttribute("aria-live", "off") : t.setAttribute("aria-live", "polite"), navigator.userAgent.match(/rv:.*Gecko\//) ? t.setAttribute("aria-relevant", "additions") : t.setAttribute("aria-relevant", "text"), t.addEventListener("click", this._onClick.bind(this)), t.addEventListener("focus", this._onFocus.bind(this)), t.addEventListener("focusout", this._onFocusOut.bind(this))), t.style.pointerEvents = e.accessiblePointerEvents, t.type = e.accessibleType, e.accessibleTitle && null !== e.accessibleTitle ? t.title = e.accessibleTitle : e.accessibleHint && null !== e.accessibleHint || (t.title = "displayObject " + e.tabIndex), e.accessibleHint && null !== e.accessibleHint && t.setAttribute("aria-label", e.accessibleHint), this.debug && this.updateDebugHTML(t), e._accessibleActive = !0, e._accessibleDiv = t, t.displayObject = e, this.children.push(e), this.div.appendChild(e._accessibleDiv), e._accessibleDiv.tabIndex = e.tabIndex
            }, rt.prototype._onClick = function(e) {
                var t = this.renderer.plugins.interaction;
                t.dispatchEvent(e.target.displayObject, "click", t.eventData), t.dispatchEvent(e.target.displayObject, "pointertap", t.eventData), t.dispatchEvent(e.target.displayObject, "tap", t.eventData)
            }, rt.prototype._onFocus = function(e) {
                e.target.getAttribute("aria-live", "off") || e.target.setAttribute("aria-live", "assertive");
                var t = this.renderer.plugins.interaction;
                t.dispatchEvent(e.target.displayObject, "mouseover", t.eventData)
            }, rt.prototype._onFocusOut = function(e) {
                e.target.getAttribute("aria-live", "off") || e.target.setAttribute("aria-live", "polite");
                var t = this.renderer.plugins.interaction;
                t.dispatchEvent(e.target.displayObject, "mouseout", t.eventData)
            }, rt.prototype._onKeyDown = function(e) {
                9 === e.keyCode && this.activate()
            }, rt.prototype._onMouseMove = function(e) {
                0 === e.movementX && 0 === e.movementY || this.deactivate()
            }, rt.prototype.destroy = function() {
                this.destroyTouchHook(), this.div = null;
                for (var e = 0; e < this.children.length; e++) this.children[e].div = null;
                window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null
            },
            /*!
             * @pixi/ticker - v5.2.4
             * Compiled Sun, 03 May 2020 22:38:52 UTC
             *
             * @pixi/ticker is licensed under the MIT License.
             * http://www.opensource.org/licenses/mit-license
             */
            N.TARGET_FPMS = .06,
            function(e) {
                e[e.INTERACTION = 50] = "INTERACTION", e[e.HIGH = 25] = "HIGH", e[e.NORMAL = 0] = "NORMAL", e[e.LOW = -25] = "LOW", e[e.UTILITY = -50] = "UTILITY"
            }(it || (it = {}));
        var nt = function() {
                function e(e, t, i, r) {
                    void 0 === t && (t = null), void 0 === i && (i = 0), void 0 === r && (r = !1), this.fn = e, this.context = t, this.priority = i, this.once = r, this.next = null, this.previous = null, this._destroyed = !1
                }
                return e.prototype.match = function(e, t) {
                    return void 0 === t && (t = null), this.fn === e && this.context === t
                }, e.prototype.emit = function(e) {
                    this.fn && (this.context ? this.fn.call(this.context, e) : this.fn(e));
                    var t = this.next;
                    return this.once && this.destroy(!0), this._destroyed && (this.next = null), t
                }, e.prototype.connect = function(e) {
                    this.previous = e, e.next && (e.next.previous = this), this.next = e.next, e.next = this
                }, e.prototype.destroy = function(e) {
                    void 0 === e && (e = !1), this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous);
                    var t = this.next;
                    return this.next = e ? null : t, this.previous = null, t
                }, e
            }(),
            at = function() {
                function e() {
                    var e = this;
                    this._head = new nt(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this._minElapsedMS = 0, this.autoStart = !1, this.deltaTime = 1, this.deltaMS = 1 / N.TARGET_FPMS, this.elapsedMS = 1 / N.TARGET_FPMS, this.lastTime = -1, this.speed = 1, this.started = !1, this._protected = !1, this._lastFrame = -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 e.prototype._requestIfNeeded = function() {
                    null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._lastFrame = this.lastTime, this._requestId = requestAnimationFrame(this._tick))
                }, e.prototype._cancelIfNeeded = function() {
                    null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null)
                }, e.prototype._startIfPossible = function() {
                    this.started ? this._requestIfNeeded() : this.autoStart && this.start()
                }, e.prototype.add = function(e, t, i) {
                    return void 0 === i && (i = it.NORMAL), this._addListener(new nt(e, t, i))
                }, e.prototype.addOnce = function(e, t, i) {
                    return void 0 === i && (i = it.NORMAL), this._addListener(new nt(e, t, i, !0))
                }, e.prototype._addListener = function(e) {
                    var t = this._head.next,
                        i = this._head;
                    if (t) {
                        for (; t;) {
                            if (e.priority > t.priority) {
                                e.connect(i);
                                break
                            }
                            i = t, t = t.next
                        }
                        e.previous || e.connect(i)
                    } else e.connect(i);
                    return this._startIfPossible(), this
                }, e.prototype.remove = function(e, t) {
                    for (var i = this._head.next; i;) i = i.match(e, t) ? i.destroy() : i.next;
                    return this._head.next || this._cancelIfNeeded(), this
                }, Object.defineProperty(e.prototype, "count", {
                    get: function() {
                        if (!this._head) return 0;
                        for (var e = 0, t = this._head; t = t.next;) e++;
                        return e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.start = function() {
                    this.started || (this.started = !0, this._requestIfNeeded())
                }, e.prototype.stop = function() {
                    this.started && (this.started = !1, this._cancelIfNeeded())
                }, e.prototype.destroy = function() {
                    if (!this._protected) {
                        this.stop();
                        for (var e = this._head.next; e;) e = e.destroy(!0);
                        this._head.destroy(), this._head = null
                    }
                }, e.prototype.update = function(e) {
                    var t;
                    if (void 0 === e && (e = performance.now()), e > this.lastTime) {
                        if ((t = this.elapsedMS = e - this.lastTime) > this._maxElapsedMS && (t = this._maxElapsedMS), t *= this.speed, this._minElapsedMS) {
                            var i = e - this._lastFrame | 0;
                            if (i < this._minElapsedMS) return;
                            this._lastFrame = e - i % this._minElapsedMS
                        }
                        this.deltaMS = t, this.deltaTime = this.deltaMS * N.TARGET_FPMS;
                        for (var r = this._head, n = r.next; n;) n = n.emit(this.deltaTime);
                        r.next || this._cancelIfNeeded()
                    } else this.deltaTime = this.deltaMS = this.elapsedMS = 0;
                    this.lastTime = e
                }, Object.defineProperty(e.prototype, "FPS", {
                    get: function() {
                        return 1e3 / this.elapsedMS
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minFPS", {
                    get: function() {
                        return 1e3 / this._maxElapsedMS
                    },
                    set: function(e) {
                        var t = Math.min(this.maxFPS, e),
                            i = Math.min(Math.max(0, t) / 1e3, N.TARGET_FPMS);
                        this._maxElapsedMS = 1 / i
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxFPS", {
                    get: function() {
                        return this._minElapsedMS ? Math.round(1e3 / this._minElapsedMS) : 0
                    },
                    set: function(e) {
                        if (0 === e) this._minElapsedMS = 0;
                        else {
                            var t = Math.max(this.minFPS, e);
                            this._minElapsedMS = 1 / (t / 1e3)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e, "shared", {
                    get: function() {
                        if (!e._shared) {
                            var t = e._shared = new e;
                            t.autoStart = !0, t._protected = !0
                        }
                        return e._shared
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e, "system", {
                    get: function() {
                        if (!e._system) {
                            var t = e._system = new e;
                            t.autoStart = !0, t._protected = !0
                        }
                        return e._system
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(),
            st = function() {
                function e() {}
                return e.init = function(e) {
                    var t = this;
                    e = Object.assign({
                        autoStart: !0,
                        sharedTicker: !1
                    }, e), Object.defineProperty(this, "ticker", {
                        set: function(e) {
                            this._ticker && this._ticker.remove(this.render, this), this._ticker = e, e && e.add(this.render, this, it.LOW)
                        },
                        get: function() {
                            return this._ticker
                        }
                    }), this.stop = function() {
                        t._ticker.stop()
                    }, this.start = function() {
                        t._ticker.start()
                    }, this._ticker = null, this.ticker = e.sharedTicker ? at.shared : new at, e.autoStart && this.start()
                }, e.destroy = function() {
                    if (this._ticker) {
                        var e = this._ticker;
                        this.ticker = null, e.destroy()
                    }
                }, e
            }(),
            ot = function() {
                this.global = new Ce, 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
            },
            ut = {
                pointerId: {
                    configurable: !0
                }
            };
        ut.pointerId.get = function() {
            return this.identifier
        }, ot.prototype.getLocalPosition = function(e, t, i) {
            return e.worldTransform.applyInverse(i || this.global, t)
        }, ot.prototype.copyEvent = function(e) {
            e.isPrimary && (this.isPrimary = !0), this.button = e.button, this.buttons = Number.isInteger(e.buttons) ? e.buttons : e.which, this.width = e.width, this.height = e.height, this.tiltX = e.tiltX, this.tiltY = e.tiltY, this.pointerType = e.pointerType, this.pressure = e.pressure, this.rotationAngle = e.rotationAngle, this.twist = e.twist || 0, this.tangentialPressure = e.tangentialPressure || 0
        }, ot.prototype.reset = function() {
            this.isPrimary = !1
        }, Object.defineProperties(ot.prototype, ut);
        var ht = function() {
            this.stopped = !1, this.stopsPropagatingAt = null, this.stopPropagationHint = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null
        };
        ht.prototype.stopPropagation = function() {
            this.stopped = !0, this.stopPropagationHint = !0, this.stopsPropagatingAt = this.currentTarget
        }, ht.prototype.reset = function() {
            this.stopped = !1, this.stopsPropagatingAt = null, this.stopPropagationHint = !1, this.currentTarget = null, this.target = null
        };
        var lt = function e(t) {
                this._pointerId = t, this._flags = e.FLAGS.NONE
            },
            ft = {
                pointerId: {
                    configurable: !0
                },
                flags: {
                    configurable: !0
                },
                none: {
                    configurable: !0
                },
                over: {
                    configurable: !0
                },
                rightDown: {
                    configurable: !0
                },
                leftDown: {
                    configurable: !0
                }
            };
        lt.prototype._doSet = function(e, t) {
            this._flags = t ? this._flags | e : this._flags & ~e
        }, ft.pointerId.get = function() {
            return this._pointerId
        }, ft.flags.get = function() {
            return this._flags
        }, ft.flags.set = function(e) {
            this._flags = e
        }, ft.none.get = function() {
            return this._flags === this.constructor.FLAGS.NONE
        }, ft.over.get = function() {
            return 0 != (this._flags & this.constructor.FLAGS.OVER)
        }, ft.over.set = function(e) {
            this._doSet(this.constructor.FLAGS.OVER, e)
        }, ft.rightDown.get = function() {
            return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN)
        }, ft.rightDown.set = function(e) {
            this._doSet(this.constructor.FLAGS.RIGHT_DOWN, e)
        }, ft.leftDown.get = function() {
            return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN)
        }, ft.leftDown.set = function(e) {
            this._doSet(this.constructor.FLAGS.LEFT_DOWN, e)
        }, Object.defineProperties(lt.prototype, ft), lt.FLAGS = Object.freeze({
            NONE: 0,
            OVER: 1,
            LEFT_DOWN: 2,
            RIGHT_DOWN: 4
        });
        var ct = function() {
            this._tempPoint = new Ce
        };
        ct.prototype.recursiveFindHit = function(e, t, i, r, n) {
            if (!t || !t.visible) return !1;
            var a = e.data.global,
                s = !1,
                o = n = t.interactive || n,
                u = !0;
            if (t.hitArea ? (r && (t.worldTransform.applyInverse(a, this._tempPoint), t.hitArea.contains(this._tempPoint.x, this._tempPoint.y) ? s = !0 : (r = !1, u = !1)), o = !1) : t._mask && r && (t._mask.containsPoint && t._mask.containsPoint(a) || (r = !1)), u && t.interactiveChildren && t.children)
                for (var h = t.children, l = h.length - 1; l >= 0; l--) {
                    var f = h[l],
                        c = this.recursiveFindHit(e, f, i, r, o);
                    if (c) {
                        if (!f.parent) continue;
                        o = !1, c && (e.target && (r = !1), s = !0)
                    }
                }
            return n && (r && !e.target && !t.hitArea && t.containsPoint && t.containsPoint(a) && (s = !0), t.interactive && (s && !e.target && (e.target = t), i && i(e, t, !!s))), s
        }, ct.prototype.findHit = function(e, t, i, r) {
            this.recursiveFindHit(e, t, i, r, !1)
        };
        var dt = {
            interactive: !1,
            interactiveChildren: !0,
            hitArea: null,
            get buttonMode() {
                return "pointer" === this.cursor
            },
            set buttonMode(e) {
                e ? 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
        };
        Ze.mixin(dt);
        var pt = 1,
            vt = {
                target: null,
                data: {
                    global: null
                }
            },
            mt = function(e) {
                function t(t, i) {
                    e.call(this), i = i || {}, this.renderer = t, this.autoPreventDefault = void 0 === i.autoPreventDefault || i.autoPreventDefault, this.interactionFrequency = i.interactionFrequency || 10, this.mouse = new ot, this.mouse.identifier = pt, this.mouse.global.set(-999999), this.activeInteractionData = {}, this.activeInteractionData[pt] = this.mouse, this.interactionDataPool = [], this.eventData = new ht, this.interactionDOMElement = null, this.moveWhenInside = !1, this.eventsAdded = !1, this.tickerAdded = !1, this.mouseOverRenderer = !1, this.supportsTouchEvents = "ontouchstart" in window, this.supportsPointerEvents = !!window.PointerEvent, this.onPointerUp = this.onPointerUp.bind(this), this.processPointerUp = this.processPointerUp.bind(this), this.onPointerCancel = this.onPointerCancel.bind(this), this.processPointerCancel = this.processPointerCancel.bind(this), this.onPointerDown = this.onPointerDown.bind(this), this.processPointerDown = this.processPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.processPointerMove = this.processPointerMove.bind(this), this.onPointerOut = this.onPointerOut.bind(this), this.processPointerOverOut = this.processPointerOverOut.bind(this), this.onPointerOver = this.onPointerOver.bind(this), this.cursorStyles = {
                        default: "inherit",
                        pointer: "pointer"
                    }, this.currentCursorMode = null, this.cursor = null, this.resolution = 1, this.delayedEvents = [], this.search = new ct, this._useSystemTicker = void 0 === i.useSystemTicker || i.useSystemTicker, this.setTargetElement(this.renderer.view, this.renderer.resolution)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    useSystemTicker: {
                        configurable: !0
                    }
                };
                return i.useSystemTicker.get = function() {
                    return this._useSystemTicker
                }, i.useSystemTicker.set = function(e) {
                    this._useSystemTicker = e, e ? this.addTickerListener() : this.removeTickerListener()
                }, t.prototype.hitTest = function(e, t) {
                    return vt.target = null, vt.data.global = e, t || (t = this.renderer._lastObjectRendered), this.processInteractive(vt, t, null, !0), vt.target
                }, t.prototype.setTargetElement = function(e, t) {
                    void 0 === t && (t = 1), this.removeTickerListener(), this.removeEvents(), this.interactionDOMElement = e, this.resolution = t, this.addEvents(), this.addTickerListener()
                }, t.prototype.addTickerListener = function() {
                    !this.tickerAdded && this.interactionDOMElement && this._useSystemTicker && (at.system.add(this.tickerUpdate, this, it.INTERACTION), this.tickerAdded = !0)
                }, t.prototype.removeTickerListener = function() {
                    this.tickerAdded && (at.system.remove(this.tickerUpdate, this), this.tickerAdded = !1)
                }, t.prototype.addEvents = function() {
                    !this.eventsAdded && this.interactionDOMElement && (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)
                }, t.prototype.removeEvents = function() {
                    this.eventsAdded && this.interactionDOMElement && (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)
                }, t.prototype.tickerUpdate = function(e) {
                    this._deltaTime += e, this._deltaTime < this.interactionFrequency || (this._deltaTime = 0, this.update())
                }, t.prototype.update = function() {
                    if (this.interactionDOMElement)
                        if (this.didMove) this.didMove = !1;
                        else {
                            for (var e in this.cursor = null, this.activeInteractionData)
                                if (this.activeInteractionData.hasOwnProperty(e)) {
                                    var t = this.activeInteractionData[e];
                                    if (t.originalEvent && "touch" !== t.pointerType) {
                                        var i = this.configureInteractionEventForDOMEvent(this.eventData, t.originalEvent, t);
                                        this.processInteractive(i, this.renderer._lastObjectRendered, this.processPointerOverOut, !0)
                                    }
                                }
                            this.setCursorMode(this.cursor)
                        }
                }, t.prototype.setCursorMode = function(e) {
                    if (e = e || "default", this.currentCursorMode !== e) {
                        this.currentCursorMode = e;
                        var t = this.cursorStyles[e];
                        if (t) switch (typeof t) {
                            case "string":
                                this.interactionDOMElement.style.cursor = t;
                                break;
                            case "function":
                                t(e);
                                break;
                            case "object":
                                Object.assign(this.interactionDOMElement.style, t)
                        } else "string" != typeof e || Object.prototype.hasOwnProperty.call(this.cursorStyles, e) || (this.interactionDOMElement.style.cursor = e)
                    }
                }, t.prototype.dispatchEvent = function(e, t, i) {
                    i.stopPropagationHint && e !== i.stopsPropagatingAt || (i.currentTarget = e, i.type = t, e.emit(t, i), e[t] && e[t](i))
                }, t.prototype.delayDispatchEvent = function(e, t, i) {
                    this.delayedEvents.push({
                        displayObject: e,
                        eventString: t,
                        eventData: i
                    })
                }, t.prototype.mapPositionToPoint = function(e, t, i) {
                    var r;
                    r = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : {
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    };
                    var n = 1 / this.resolution;
                    e.x = (t - r.left) * (this.interactionDOMElement.width / r.width) * n, e.y = (i - r.top) * (this.interactionDOMElement.height / r.height) * n
                }, t.prototype.processInteractive = function(e, t, i, r) {
                    var n = this.search.findHit(e, t, i, r),
                        a = this.delayedEvents;
                    if (!a.length) return n;
                    e.stopPropagationHint = !1;
                    var s = a.length;
                    this.delayedEvents = [];
                    for (var o = 0; o < s; o++) {
                        var u = a[o],
                            h = u.displayObject,
                            l = u.eventString,
                            f = u.eventData;
                        f.stopsPropagatingAt === h && (f.stopPropagationHint = !0), this.dispatchEvent(h, l, f)
                    }
                    return n
                }, t.prototype.onPointerDown = function(e) {
                    if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                        var t = this.normalizeToPointerData(e);
                        if (this.autoPreventDefault && t[0].isNormalized)(e.cancelable || !("cancelable" in e)) && e.preventDefault();
                        for (var i = t.length, r = 0; r < i; r++) {
                            var n = t[r],
                                a = this.getInteractionDataForPointerId(n),
                                s = this.configureInteractionEventForDOMEvent(this.eventData, n, a);
                            if (s.data.originalEvent = e, this.processInteractive(s, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", s), "touch" === n.pointerType) this.emit("touchstart", s);
                            else if ("mouse" === n.pointerType || "pen" === n.pointerType) {
                                var o = 2 === n.button;
                                this.emit(o ? "rightdown" : "mousedown", this.eventData)
                            }
                        }
                    }
                }, t.prototype.processPointerDown = function(e, t, i) {
                    var r = e.data,
                        n = e.data.identifier;
                    if (i)
                        if (t.trackedPointers[n] || (t.trackedPointers[n] = new lt(n)), this.dispatchEvent(t, "pointerdown", e), "touch" === r.pointerType) this.dispatchEvent(t, "touchstart", e);
                        else if ("mouse" === r.pointerType || "pen" === r.pointerType) {
                        var a = 2 === r.button;
                        a ? t.trackedPointers[n].rightDown = !0 : t.trackedPointers[n].leftDown = !0, this.dispatchEvent(t, a ? "rightdown" : "mousedown", e)
                    }
                }, t.prototype.onPointerComplete = function(e, t, i) {
                    for (var r = this.normalizeToPointerData(e), n = r.length, a = e.target !== this.interactionDOMElement ? "outside" : "", s = 0; s < n; s++) {
                        var o = r[s],
                            u = this.getInteractionDataForPointerId(o),
                            h = this.configureInteractionEventForDOMEvent(this.eventData, o, u);
                        if (h.data.originalEvent = e, this.processInteractive(h, this.renderer._lastObjectRendered, i, t || !a), this.emit(t ? "pointercancel" : "pointerup" + a, h), "mouse" === o.pointerType || "pen" === o.pointerType) {
                            var l = 2 === o.button;
                            this.emit(l ? "rightup" + a : "mouseup" + a, h)
                        } else "touch" === o.pointerType && (this.emit(t ? "touchcancel" : "touchend" + a, h), this.releaseInteractionDataForPointerId(o.pointerId, u))
                    }
                }, t.prototype.onPointerCancel = function(e) {
                    this.supportsTouchEvents && "touch" === e.pointerType || this.onPointerComplete(e, !0, this.processPointerCancel)
                }, t.prototype.processPointerCancel = function(e, t) {
                    var i = e.data,
                        r = e.data.identifier;
                    void 0 !== t.trackedPointers[r] && (delete t.trackedPointers[r], this.dispatchEvent(t, "pointercancel", e), "touch" === i.pointerType && this.dispatchEvent(t, "touchcancel", e))
                }, t.prototype.onPointerUp = function(e) {
                    this.supportsTouchEvents && "touch" === e.pointerType || this.onPointerComplete(e, !1, this.processPointerUp)
                }, t.prototype.processPointerUp = function(e, t, i) {
                    var r = e.data,
                        n = e.data.identifier,
                        a = t.trackedPointers[n],
                        s = "touch" === r.pointerType,
                        o = "mouse" === r.pointerType || "pen" === r.pointerType,
                        u = !1;
                    if (o) {
                        var h = 2 === r.button,
                            l = lt.FLAGS,
                            f = h ? l.RIGHT_DOWN : l.LEFT_DOWN,
                            c = void 0 !== a && a.flags & f;
                        i ? (this.dispatchEvent(t, h ? "rightup" : "mouseup", e), c && (this.dispatchEvent(t, h ? "rightclick" : "click", e), u = !0)) : c && this.dispatchEvent(t, h ? "rightupoutside" : "mouseupoutside", e), a && (h ? a.rightDown = !1 : a.leftDown = !1)
                    }
                    i ? (this.dispatchEvent(t, "pointerup", e), s && this.dispatchEvent(t, "touchend", e), a && (o && !u || this.dispatchEvent(t, "pointertap", e), s && (this.dispatchEvent(t, "tap", e), a.over = !1))) : a && (this.dispatchEvent(t, "pointerupoutside", e), s && this.dispatchEvent(t, "touchendoutside", e)), a && a.none && delete t.trackedPointers[n]
                }, t.prototype.onPointerMove = function(e) {
                    if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                        var t = this.normalizeToPointerData(e);
                        "mouse" !== t[0].pointerType && "pen" !== t[0].pointerType || (this.didMove = !0, this.cursor = null);
                        for (var i = t.length, r = 0; r < i; r++) {
                            var n = t[r],
                                a = this.getInteractionDataForPointerId(n),
                                s = this.configureInteractionEventForDOMEvent(this.eventData, n, a);
                            s.data.originalEvent = e, this.processInteractive(s, this.renderer._lastObjectRendered, this.processPointerMove, !0), this.emit("pointermove", s), "touch" === n.pointerType && this.emit("touchmove", s), "mouse" !== n.pointerType && "pen" !== n.pointerType || this.emit("mousemove", s)
                        }
                        "mouse" === t[0].pointerType && this.setCursorMode(this.cursor)
                    }
                }, t.prototype.processPointerMove = function(e, t, i) {
                    var r = e.data,
                        n = "touch" === r.pointerType,
                        a = "mouse" === r.pointerType || "pen" === r.pointerType;
                    a && this.processPointerOverOut(e, t, i), this.moveWhenInside && !i || (this.dispatchEvent(t, "pointermove", e), n && this.dispatchEvent(t, "touchmove", e), a && this.dispatchEvent(t, "mousemove", e))
                }, t.prototype.onPointerOut = function(e) {
                    if (!this.supportsTouchEvents || "touch" !== e.pointerType) {
                        var t = this.normalizeToPointerData(e)[0];
                        "mouse" === t.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null));
                        var i = this.getInteractionDataForPointerId(t),
                            r = this.configureInteractionEventForDOMEvent(this.eventData, t, i);
                        r.data.originalEvent = t, this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", r), "mouse" === t.pointerType || "pen" === t.pointerType ? this.emit("mouseout", r) : this.releaseInteractionDataForPointerId(i.identifier)
                    }
                }, t.prototype.processPointerOverOut = function(e, t, i) {
                    var r = e.data,
                        n = e.data.identifier,
                        a = "mouse" === r.pointerType || "pen" === r.pointerType,
                        s = t.trackedPointers[n];
                    i && !s && (s = t.trackedPointers[n] = new lt(n)), void 0 !== s && (i && this.mouseOverRenderer ? (s.over || (s.over = !0, this.delayDispatchEvent(t, "pointerover", e), a && this.delayDispatchEvent(t, "mouseover", e)), a && null === this.cursor && (this.cursor = t.cursor)) : s.over && (s.over = !1, this.dispatchEvent(t, "pointerout", this.eventData), a && this.dispatchEvent(t, "mouseout", e), s.none && delete t.trackedPointers[n]))
                }, t.prototype.onPointerOver = function(e) {
                    var t = this.normalizeToPointerData(e)[0],
                        i = this.getInteractionDataForPointerId(t),
                        r = this.configureInteractionEventForDOMEvent(this.eventData, t, i);
                    r.data.originalEvent = t, "mouse" === t.pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", r), "mouse" !== t.pointerType && "pen" !== t.pointerType || this.emit("mouseover", r)
                }, t.prototype.getInteractionDataForPointerId = function(e) {
                    var t, i = e.pointerId;
                    return i === pt || "mouse" === e.pointerType ? t = this.mouse : this.activeInteractionData[i] ? t = this.activeInteractionData[i] : ((t = this.interactionDataPool.pop() || new ot).identifier = i, this.activeInteractionData[i] = t), t.copyEvent(e), t
                }, t.prototype.releaseInteractionDataForPointerId = function(e) {
                    var t = this.activeInteractionData[e];
                    t && (delete this.activeInteractionData[e], t.reset(), this.interactionDataPool.push(t))
                }, t.prototype.configureInteractionEventForDOMEvent = function(e, t, i) {
                    return e.data = i, this.mapPositionToPoint(i.global, t.clientX, t.clientY), "touch" === t.pointerType && (t.globalX = i.global.x, t.globalY = i.global.y), i.originalEvent = t, e.reset(), e
                }, t.prototype.normalizeToPointerData = function(e) {
                    var t = [];
                    if (this.supportsTouchEvents && e instanceof TouchEvent)
                        for (var i = 0, r = e.changedTouches.length; i < r; i++) {
                            var n = e.changedTouches[i];
                            void 0 === n.button && (n.button = e.touches.length ? 1 : 0), void 0 === n.buttons && (n.buttons = e.touches.length ? 1 : 0), void 0 === n.isPrimary && (n.isPrimary = 1 === e.touches.length && "touchstart" === e.type), void 0 === n.width && (n.width = n.radiusX || 1), void 0 === n.height && (n.height = n.radiusY || 1), void 0 === n.tiltX && (n.tiltX = 0), void 0 === n.tiltY && (n.tiltY = 0), void 0 === n.pointerType && (n.pointerType = "touch"), void 0 === n.pointerId && (n.pointerId = n.identifier || 0), void 0 === n.pressure && (n.pressure = n.force || .5), void 0 === n.twist && (n.twist = 0), void 0 === n.tangentialPressure && (n.tangentialPressure = 0), void 0 === n.layerX && (n.layerX = n.offsetX = n.clientX), void 0 === n.layerY && (n.layerY = n.offsetY = n.clientY), n.isNormalized = !0, t.push(n)
                        } else !(e instanceof MouseEvent) || this.supportsPointerEvents && e instanceof window.PointerEvent ? t.push(e) : (void 0 === e.isPrimary && (e.isPrimary = !0), void 0 === e.width && (e.width = 1), void 0 === e.height && (e.height = 1), void 0 === e.tiltX && (e.tiltX = 0), void 0 === e.tiltY && (e.tiltY = 0), void 0 === e.pointerType && (e.pointerType = "mouse"), void 0 === e.pointerId && (e.pointerId = pt), void 0 === e.pressure && (e.pressure = .5), void 0 === e.twist && (e.twist = 0), void 0 === e.tangentialPressure && (e.tangentialPressure = 0), e.isNormalized = !0, t.push(e));
                    return t
                }, t.prototype.destroy = function() {
                    this.removeEvents(), this.removeTickerListener(), 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.search = null
                }, Object.defineProperties(t.prototype, i), t
            }(U.a),
            _t = function() {
                function e(e) {
                    this.items = [], this._name = e, this._aliasCount = 0
                }
                return e.prototype.emit = function(e, t, i, r, n, a, s, o) {
                    if (arguments.length > 8) throw new Error("max arguments reached");
                    var u = this,
                        h = u.name,
                        l = u.items;
                    this._aliasCount++;
                    for (var f = 0, c = l.length; f < c; f++) l[f][h](e, t, i, r, n, a, s, o);
                    return l === this.items && this._aliasCount--, this
                }, e.prototype.ensureNonAliasedItems = function() {
                    this._aliasCount > 0 && this.items.length > 1 && (this._aliasCount = 0, this.items = this.items.slice(0))
                }, e.prototype.add = function(e) {
                    return e[this._name] && (this.ensureNonAliasedItems(), this.remove(e), this.items.push(e)), this
                }, e.prototype.remove = function(e) {
                    var t = this.items.indexOf(e);
                    return -1 !== t && (this.ensureNonAliasedItems(), this.items.splice(t, 1)), this
                }, e.prototype.contains = function(e) {
                    return -1 !== this.items.indexOf(e)
                }, e.prototype.removeAll = function() {
                    return this.ensureNonAliasedItems(), this.items.length = 0, this
                }, e.prototype.destroy = function() {
                    this.removeAll(), this.items = null, this._name = null
                }, Object.defineProperty(e.prototype, "empty", {
                    get: function() {
                        return 0 === this.items.length
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "name", {
                    get: function() {
                        return this._name
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }();
        Object.defineProperties(_t.prototype, {
            dispatch: {
                value: _t.prototype.emit
            },
            run: {
                value: _t.prototype.emit
            }
        });
        /*!
         * @pixi/core - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/core is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var bt = function(e, t) {
                void 0 === e && (e = 0), void 0 === t && (t = 0), this._width = e, this._height = t, this.destroyed = !1, this.internal = !1, this.onResize = new _t("setRealSize", 2), this.onUpdate = new _t("update"), this.onError = new _t("onError", 1)
            },
            gt = {
                valid: {
                    configurable: !0
                },
                width: {
                    configurable: !0
                },
                height: {
                    configurable: !0
                }
            };
        bt.prototype.bind = function(e) {
            this.onResize.add(e), this.onUpdate.add(e), this.onError.add(e), (this._width || this._height) && this.onResize.run(this._width, this._height)
        }, bt.prototype.unbind = function(e) {
            this.onResize.remove(e), this.onUpdate.remove(e), this.onError.remove(e)
        }, bt.prototype.resize = function(e, t) {
            e === this._width && t === this._height || (this._width = e, this._height = t, this.onResize.run(e, t))
        }, gt.valid.get = function() {
            return !!this._width && !!this._height
        }, bt.prototype.update = function() {
            this.destroyed || this.onUpdate.run()
        }, bt.prototype.load = function() {
            return Promise.resolve()
        }, gt.width.get = function() {
            return this._width
        }, gt.height.get = function() {
            return this._height
        }, bt.prototype.upload = function(e, t, i) {
            return !1
        }, bt.prototype.style = function(e, t, i) {
            return !1
        }, bt.prototype.dispose = function() {}, bt.prototype.destroy = function() {
            this.destroyed || (this.destroyed = !0, this.dispose(), this.onError.removeAll(), this.onError = null, this.onResize.removeAll(), this.onResize = null, this.onUpdate.removeAll(), this.onUpdate = null)
        }, Object.defineProperties(bt.prototype, gt);
        var yt = function(e) {
                function t(t) {
                    var i = t.naturalWidth || t.videoWidth || t.width,
                        r = t.naturalHeight || t.videoHeight || t.height;
                    e.call(this, i, r), this.source = t, this.noSubImage = !1
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.crossOrigin = function(e, t, i) {
                    void 0 === i && 0 !== t.indexOf("data:") ? e.crossOrigin = Pe(t) : !1 !== i && (e.crossOrigin = "string" == typeof i ? i : "anonymous")
                }, t.prototype.upload = function(e, t, i, r) {
                    var n = e.gl,
                        a = t.realWidth,
                        s = t.realHeight;
                    return r = r || this.source, n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.alphaMode === R.UNPACK), this.noSubImage || t.target !== n.TEXTURE_2D || i.width !== a || i.height !== s ? (i.width = a, i.height = s, n.texImage2D(t.target, 0, t.format, t.format, t.type, r)) : n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, t.format, t.type, r), !0
                }, t.prototype.update = function() {
                    if (!this.destroyed) {
                        var t = this.source.naturalWidth || this.source.videoWidth || this.source.width,
                            i = this.source.naturalHeight || this.source.videoHeight || this.source.height;
                        this.resize(t, i), e.prototype.update.call(this)
                    }
                }, t.prototype.dispose = function() {
                    this.source = null
                }, t
            }(bt),
            At = function(e) {
                function t(t, i) {
                    if (i = i || {}, !(t instanceof HTMLImageElement)) {
                        var r = new Image;
                        e.crossOrigin(r, t, i.crossorigin), r.src = t, t = r
                    }
                    e.call(this, t), !t.complete && this._width && this._height && (this._width = 0, this._height = 0), this.url = t.src, this._process = null, this.preserveBitmap = !1, this.createBitmap = (void 0 !== i.createBitmap ? i.createBitmap : N.CREATE_IMAGE_BITMAP) && !!window.createImageBitmap, this.alphaMode = "number" == typeof i.alphaMode ? i.alphaMode : null, void 0 !== i.premultiplyAlpha && (this.premultiplyAlpha = i.premultiplyAlpha), this.bitmap = null, this._load = null, !1 !== i.autoLoad && this.load()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.load = function(e) {
                    var t = this;
                    return this._load ? this._load : (void 0 !== e && (this.createBitmap = e), this._load = new Promise(function(e, i) {
                        t.url = t.source.src;
                        var r = t.source,
                            n = function() {
                                t.destroyed || (r.onload = null, r.onerror = null, t.resize(r.width, r.height), t._load = null, t.createBitmap ? e(t.process()) : e(t))
                            };
                        r.complete && r.src ? n() : (r.onload = n, r.onerror = function(e) {
                            i(e), t.onError.emit(e)
                        })
                    }), this._load)
                }, t.prototype.process = function() {
                    var e = this;
                    return null !== this._process ? this._process : null === this.bitmap && window.createImageBitmap ? (this._process = window.createImageBitmap(this.source, 0, 0, this.source.width, this.source.height, {
                        premultiplyAlpha: this.premultiplyAlpha === R.UNPACK ? "premultiply" : "none"
                    }).then(function(t) {
                        return e.destroyed ? Promise.reject() : (e.bitmap = t, e.update(), e._process = null, Promise.resolve(e))
                    }), this._process) : Promise.resolve(this)
                }, t.prototype.upload = function(t, i, r) {
                    if ("number" == typeof this.alphaMode && (i.alphaMode = this.alphaMode), !this.createBitmap) return e.prototype.upload.call(this, t, i, r);
                    if (!this.bitmap && (this.process(), !this.bitmap)) return !1;
                    if (e.prototype.upload.call(this, t, i, r, this.bitmap), !this.preserveBitmap) {
                        var n = !0;
                        for (var a in i._glTextures) {
                            var s = i._glTextures[a];
                            if (s !== r && s.dirtyId !== i.dirtyId) {
                                n = !1;
                                break
                            }
                        }
                        n && (this.bitmap.close && this.bitmap.close(), this.bitmap = null)
                    }
                    return !0
                }, t.prototype.dispose = function() {
                    this.source.onload = null, this.source.onerror = null, e.prototype.dispose.call(this), this.bitmap && (this.bitmap.close(), this.bitmap = null), this._process = null, this._load = null
                }, t
            }(yt),
            wt = [];

        function xt(e, t) {
            if (!e) return null;
            var i = "";
            if ("string" == typeof e) {
                var r = /\.(\w{3,4})(?:$|\?|#)/i.exec(e);
                r && (i = r[1].toLowerCase())
            }
            for (var n = wt.length - 1; n >= 0; --n) {
                var a = wt[n];
                if (a.test && a.test(e, i)) return new a(e, t)
            }
            return new At(e, t)
        }
        var kt = function(e) {
                function t(t, i) {
                    var r = i || {},
                        n = r.width,
                        a = r.height;
                    if (!n || !a) throw new Error("BufferResource width or height invalid");
                    e.call(this, n, a), this.data = t
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.upload = function(e, t, i) {
                    var r = e.gl;
                    return r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.alphaMode === R.UNPACK), i.width === t.width && i.height === t.height ? r.texSubImage2D(t.target, 0, 0, 0, t.width, t.height, t.format, t.type, this.data) : (i.width = t.width, i.height = t.height, r.texImage2D(t.target, 0, i.internalFormat, t.width, t.height, 0, t.format, i.type, this.data)), !0
                }, t.prototype.dispose = function() {
                    this.data = null
                }, t.test = function(e) {
                    return e instanceof Float32Array || e instanceof Uint8Array || e instanceof Uint32Array
                }, t
            }(bt),
            Tt = {
                scaleMode: M.NEAREST,
                format: S.RGBA,
                alphaMode: R.NPM
            },
            Et = function(e) {
                function t(t, i) {
                    void 0 === t && (t = null), void 0 === i && (i = null), e.call(this);
                    var r = (i = i || {}).alphaMode,
                        n = i.mipmap,
                        a = i.anisotropicLevel,
                        s = i.scaleMode,
                        o = i.width,
                        u = i.height,
                        h = i.wrapMode,
                        l = i.format,
                        f = i.type,
                        c = i.target,
                        d = i.resolution,
                        p = i.resourceOptions;
                    !t || t instanceof bt || ((t = xt(t, p)).internal = !0), this.width = o || 0, this.height = u || 0, this.resolution = d || N.RESOLUTION, this.mipmap = void 0 !== n ? n : N.MIPMAP_TEXTURES, this.anisotropicLevel = void 0 !== a ? a : N.ANISOTROPIC_LEVEL, this.wrapMode = h || N.WRAP_MODE, this.scaleMode = void 0 !== s ? s : N.SCALE_MODE, this.format = l || S.RGBA, this.type = f || I.UNSIGNED_BYTE, this.target = c || P.TEXTURE_2D, this.alphaMode = void 0 !== r ? r : R.UNPACK, void 0 !== i.premultiplyAlpha && (this.premultiplyAlpha = i.premultiplyAlpha), this.uid = ve(), this.touched = 0, this.isPowerOfTwo = !1, this._refreshPOT(), this._glTextures = {}, this.dirtyId = 0, this.dirtyStyleId = 0, this.cacheId = null, this.valid = o > 0 && u > 0, this.textureCacheIds = [], this.destroyed = !1, this.resource = null, this._batchEnabled = 0, this._batchLocation = 0, this.setResource(t)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    realWidth: {
                        configurable: !0
                    },
                    realHeight: {
                        configurable: !0
                    }
                };
                return i.realWidth.get = function() {
                    return Math.ceil(this.width * this.resolution - 1e-4)
                }, i.realHeight.get = function() {
                    return Math.ceil(this.height * this.resolution - 1e-4)
                }, t.prototype.setStyle = function(e, t) {
                    var i;
                    return void 0 !== e && e !== this.scaleMode && (this.scaleMode = e, i = !0), void 0 !== t && t !== this.mipmap && (this.mipmap = t, i = !0), i && this.dirtyStyleId++, this
                }, t.prototype.setSize = function(e, t, i) {
                    return this.resolution = i || this.resolution, this.width = e, this.height = t, this._refreshPOT(), this.update(), this
                }, t.prototype.setRealSize = function(e, t, i) {
                    return this.resolution = i || this.resolution, this.width = e / this.resolution, this.height = t / this.resolution, this._refreshPOT(), this.update(), this
                }, t.prototype._refreshPOT = function() {
                    this.isPowerOfTwo = le(this.realWidth) && le(this.realHeight)
                }, t.prototype.setResolution = function(e) {
                    var t = this.resolution;
                    return t === e ? this : (this.resolution = e, this.valid && (this.width = this.width * t / e, this.height = this.height * t / e, this.emit("update", this)), this._refreshPOT(), this)
                }, t.prototype.setResource = function(e) {
                    if (this.resource === e) return this;
                    if (this.resource) throw new Error("Resource can be set only once");
                    return e.bind(this), this.resource = e, this
                }, t.prototype.update = function() {
                    this.valid ? (this.dirtyId++, this.dirtyStyleId++, this.emit("update", this)) : this.width > 0 && this.height > 0 && (this.valid = !0, this.emit("loaded", this), this.emit("update", this))
                }, t.prototype.onError = function(e) {
                    this.emit("error", this, e)
                }, t.prototype.destroy = function() {
                    this.resource && (this.resource.unbind(this), this.resource.internal && this.resource.destroy(), this.resource = null), this.cacheId && (delete ye[this.cacheId], delete ge[this.cacheId], this.cacheId = null), this.dispose(), t.removeFromCache(this), this.textureCacheIds = null, this.destroyed = !0
                }, t.prototype.dispose = function() {
                    this.emit("dispose", this)
                }, t.from = function(e, i, r) {
                    void 0 === r && (r = N.STRICT_TEXTURE_CACHE);
                    var n = "string" == typeof e,
                        a = null;
                    n ? a = e : (e._pixiId || (e._pixiId = "pixiid_" + ve()), a = e._pixiId);
                    var s = ye[a];
                    if (n && r && !s) throw new Error('The cacheId "' + a + '" does not exist in BaseTextureCache.');
                    return s || ((s = new t(e, i)).cacheId = a, t.addToCache(s, a)), s
                }, t.fromBuffer = function(e, i, r, n) {
                    e = e || new Float32Array(i * r * 4);
                    var a = new kt(e, {
                            width: i,
                            height: r
                        }),
                        s = e instanceof Float32Array ? I.FLOAT : I.UNSIGNED_BYTE;
                    return new t(a, Object.assign(Tt, n || {
                        width: i,
                        height: r,
                        type: s
                    }))
                }, t.addToCache = function(e, t) {
                    t && (-1 === e.textureCacheIds.indexOf(t) && e.textureCacheIds.push(t), ye[t], ye[t] = e)
                }, t.removeFromCache = function(e) {
                    if ("string" == typeof e) {
                        var t = ye[e];
                        if (t) {
                            var i = t.textureCacheIds.indexOf(e);
                            return i > -1 && t.textureCacheIds.splice(i, 1), delete ye[e], t
                        }
                    } else if (e && e.textureCacheIds) {
                        for (var r = 0; r < e.textureCacheIds.length; ++r) delete ye[e.textureCacheIds[r]];
                        return e.textureCacheIds.length = 0, e
                    }
                    return null
                }, Object.defineProperties(t.prototype, i), t
            }(U.a);
        Et._globalBatch = 0;
        var St = function(e) {
                function t(t, i) {
                    var r;
                    i = i || {};
                    var n = t;
                    Array.isArray(t) && (r = t, n = t.length), e.call(this, i.width, i.height), this.items = [], this.itemDirtyIds = [];
                    for (var a = 0; a < n; a++) {
                        var s = new Et;
                        this.items.push(s), this.itemDirtyIds.push(-1)
                    }
                    if (this.length = n, this._load = null, r)
                        for (var o = 0; o < n; o++) this.addResourceAt(xt(r[o], i), o)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.dispose = function() {
                    for (var e = 0, t = this.length; e < t; e++) this.items[e].destroy();
                    this.items = null, this.itemDirtyIds = null, this._load = null
                }, t.prototype.addResourceAt = function(e, t) {
                    if (!this.items[t]) throw new Error("Index " + t + " is out of bounds");
                    return e.valid && !this.valid && this.resize(e.width, e.height), this.items[t].setResource(e), this
                }, t.prototype.bind = function(t) {
                    e.prototype.bind.call(this, t), t.target = P.TEXTURE_2D_ARRAY;
                    for (var i = 0; i < this.length; i++) this.items[i].on("update", t.update, t)
                }, t.prototype.unbind = function(t) {
                    e.prototype.unbind.call(this, t);
                    for (var i = 0; i < this.length; i++) this.items[i].off("update", t.update, t)
                }, t.prototype.load = function() {
                    var e = this;
                    if (this._load) return this._load;
                    var t = this.items.map(function(e) {
                            return e.resource
                        }),
                        i = t.map(function(e) {
                            return e.load()
                        });
                    return this._load = Promise.all(i).then(function() {
                        var i = t[0],
                            r = i.width,
                            n = i.height;
                        return e.resize(r, n), Promise.resolve(e)
                    }), this._load
                }, t.prototype.upload = function(e, t, i) {
                    var r = this.length,
                        n = this.itemDirtyIds,
                        a = this.items,
                        s = e.gl;
                    i.dirtyId < 0 && s.texImage3D(s.TEXTURE_2D_ARRAY, 0, t.format, this._width, this._height, r, 0, t.format, t.type, null);
                    for (var o = 0; o < r; o++) {
                        var u = a[o];
                        n[o] < u.dirtyId && (n[o] = u.dirtyId, u.valid && s.texSubImage3D(s.TEXTURE_2D_ARRAY, 0, 0, 0, o, u.resource.width, u.resource.height, 1, t.format, t.type, u.resource.source))
                    }
                    return !0
                }, t
            }(bt),
            Pt = function(e) {
                function t() {
                    e.apply(this, arguments)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.test = function(e) {
                    var t = window.OffscreenCanvas;
                    return !!(t && e instanceof t) || e instanceof HTMLCanvasElement
                }, t
            }(yt),
            It = function(e) {
                function t(i, r) {
                    if (r = r || {}, e.call(this, i, r), this.length !== t.SIDES) throw new Error("Invalid length. Got " + this.length + ", expected 6");
                    for (var n = 0; n < t.SIDES; n++) this.items[n].target = P.TEXTURE_CUBE_MAP_POSITIVE_X + n;
                    !1 !== r.autoLoad && this.load()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.bind = function(t) {
                    e.prototype.bind.call(this, t), t.target = P.TEXTURE_CUBE_MAP
                }, t.prototype.upload = function(e, i, r) {
                    for (var n = this.itemDirtyIds, a = 0; a < t.SIDES; a++) {
                        var s = this.items[a];
                        n[a] < s.dirtyId && (n[a] = s.dirtyId, s.valid && s.resource.upload(e, s, r))
                    }
                    return !0
                }, t
            }(St);
        It.SIDES = 6;
        var Mt = function(e) {
            function t(t, i) {
                i = i || {}, e.call(this, document.createElement("canvas")), this._width = 0, this._height = 0, this.svg = t, this.scale = i.scale || 1, this._overrideWidth = i.width, this._overrideHeight = i.height, this._resolve = null, this._crossorigin = i.crossorigin, this._load = null, !1 !== i.autoLoad && this.load()
            }
            return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.load = function() {
                var e = this;
                return this._load ? this._load : (this._load = new Promise(function(t) {
                    if (e._resolve = function() {
                            e.resize(e.source.width, e.source.height), t(e)
                        }, /^\<svg/.test(e.svg.trim())) {
                        if (!btoa) throw new Error("Your browser doesn't support base64 conversions.");
                        e.svg = "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(e.svg)))
                    }
                    e._loadSvg()
                }), this._load)
            }, t.prototype._loadSvg = function() {
                var t = this,
                    i = new Image;
                e.crossOrigin(i, this.svg, this._crossorigin), i.src = this.svg, i.onerror = function(e) {
                    t._resolve && (i.onerror = null, t.onError.run(e))
                }, i.onload = function() {
                    if (t._resolve) {
                        var e = i.width,
                            r = i.height;
                        if (!e || !r) throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");
                        var n = e * t.scale,
                            a = r * t.scale;
                        (t._overrideWidth || t._overrideHeight) && (n = t._overrideWidth || t._overrideHeight / r * e, a = t._overrideHeight || t._overrideWidth / e * r), n = Math.round(n), a = Math.round(a);
                        var s = t.source;
                        s.width = n, s.height = a, s._pixiId = "canvas_" + ve(), s.getContext("2d").drawImage(i, 0, 0, e, r, 0, 0, n, a), t._resolve(), t._resolve = null
                    }
                }
            }, t.getSize = function(e) {
                var i = t.SVG_SIZE.exec(e),
                    r = {};
                return i && (r[i[1]] = Math.round(parseFloat(i[3])), r[i[5]] = Math.round(parseFloat(i[7]))), r
            }, t.prototype.dispose = function() {
                e.prototype.dispose.call(this), this._resolve = null, this._crossorigin = null
            }, t.test = function(e, t) {
                return "svg" === t || "string" == typeof e && 0 === e.indexOf("data:image/svg+xml;base64") || "string" == typeof e && 0 === e.indexOf("<svg")
            }, t
        }(yt);
        Mt.SVG_SIZE = /<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;
        var Ct = function(e) {
            function t(t, i) {
                if (i = i || {}, !(t instanceof HTMLVideoElement)) {
                    var r = document.createElement("video");
                    r.setAttribute("preload", "auto"), r.setAttribute("webkit-playsinline", ""), r.setAttribute("playsinline", ""), "string" == typeof t && (t = [t]), e.crossOrigin(r, t[0].src || t[0], i.crossorigin);
                    for (var n = 0; n < t.length; ++n) {
                        var a = document.createElement("source"),
                            s = t[n],
                            o = s.src,
                            u = s.mime,
                            h = (o = o || t[n]).split("?").shift().toLowerCase(),
                            l = h.substr(h.lastIndexOf(".") + 1);
                        u = u || "video/" + l, a.src = o, a.type = u, r.appendChild(a)
                    }
                    t = r
                }
                e.call(this, t), this.noSubImage = !0, this._autoUpdate = !0, this._isConnectedToTicker = !1, this._updateFPS = i.updateFPS || 0, this._msToNextUpdate = 0, this.autoPlay = !1 !== i.autoPlay, this._load = null, this._resolve = null, this._onCanPlay = this._onCanPlay.bind(this), this._onError = this._onError.bind(this), !1 !== i.autoLoad && this.load()
            }
            e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
            var i = {
                autoUpdate: {
                    configurable: !0
                },
                updateFPS: {
                    configurable: !0
                }
            };
            return t.prototype.update = function(t) {
                if (void 0 === t && (t = 0), !this.destroyed) {
                    var i = at.shared.elapsedMS * this.source.playbackRate;
                    this._msToNextUpdate = Math.floor(this._msToNextUpdate - i), (!this._updateFPS || this._msToNextUpdate <= 0) && (e.prototype.update.call(this, t), this._msToNextUpdate = this._updateFPS ? Math.floor(1e3 / this._updateFPS) : 0)
                }
            }, t.prototype.load = function() {
                var e = this;
                if (this._load) return this._load;
                var t = this.source;
                return (t.readyState === t.HAVE_ENOUGH_DATA || t.readyState === t.HAVE_FUTURE_DATA) && t.width && t.height && (t.complete = !0), t.addEventListener("play", this._onPlayStart.bind(this)), t.addEventListener("pause", this._onPlayStop.bind(this)), this._isSourceReady() ? this._onCanPlay() : (t.addEventListener("canplay", this._onCanPlay), t.addEventListener("canplaythrough", this._onCanPlay), t.addEventListener("error", this._onError, !0)), this._load = new Promise(function(i) {
                    e.valid ? i(e) : (e._resolve = i, t.load())
                }), this._load
            }, t.prototype._onError = function() {
                this.source.removeEventListener("error", this._onError, !0), this.onError.run(event)
            }, t.prototype._isSourcePlaying = function() {
                var e = this.source;
                return e.currentTime > 0 && !1 === e.paused && !1 === e.ended && e.readyState > 2
            }, t.prototype._isSourceReady = function() {
                return 3 === this.source.readyState || 4 === this.source.readyState
            }, t.prototype._onPlayStart = function() {
                this.valid || this._onCanPlay(), this.autoUpdate && !this._isConnectedToTicker && (at.shared.add(this.update, this), this._isConnectedToTicker = !0)
            }, t.prototype._onPlayStop = function() {
                this._isConnectedToTicker && (at.shared.remove(this.update, this), this._isConnectedToTicker = !1)
            }, t.prototype._onCanPlay = function() {
                var e = this.source;
                e.removeEventListener("canplay", this._onCanPlay), e.removeEventListener("canplaythrough", this._onCanPlay);
                var t = this.valid;
                this.resize(e.videoWidth, e.videoHeight), !t && this._resolve && (this._resolve(this), this._resolve = null), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && e.play()
            }, t.prototype.dispose = function() {
                this._isConnectedToTicker && at.shared.remove(this.update, this), this.source && (this.source.removeEventListener("error", this._onError, !0), this.source.pause(), this.source.src = "", this.source.load()), e.prototype.dispose.call(this)
            }, i.autoUpdate.get = function() {
                return this._autoUpdate
            }, i.autoUpdate.set = function(e) {
                e !== this._autoUpdate && (this._autoUpdate = e, !this._autoUpdate && this._isConnectedToTicker ? (at.shared.remove(this.update, this), this._isConnectedToTicker = !1) : this._autoUpdate && !this._isConnectedToTicker && this._isSourcePlaying() && (at.shared.add(this.update, this), this._isConnectedToTicker = !0))
            }, i.updateFPS.get = function() {
                return this._updateFPS
            }, i.updateFPS.set = function(e) {
                e !== this._updateFPS && (this._updateFPS = e)
            }, t.test = function(e, i) {
                return e instanceof HTMLVideoElement || t.TYPES.indexOf(i) > -1
            }, Object.defineProperties(t.prototype, i), t
        }(yt);
        Ct.TYPES = ["mp4", "m4v", "webm", "ogg", "ogv", "h264", "avi", "mov"];
        var Ot = function(e) {
            function t() {
                e.apply(this, arguments)
            }
            return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.test = function(e) {
                return !!window.createImageBitmap && e instanceof ImageBitmap
            }, t
        }(yt);
        wt.push(At, Ot, Pt, Ct, Mt, kt, It, St);
        var Rt = {
                INSTALLED: wt,
                autoDetectResource: xt,
                ArrayResource: St,
                BufferResource: kt,
                CanvasResource: Pt,
                CubeResource: It,
                ImageResource: At,
                ImageBitmapResource: Ot,
                SVGResource: Mt,
                VideoResource: Ct,
                Resource: bt,
                BaseImageResource: yt
            },
            Dt = function(e) {
                this.renderer = e
            };
        Dt.prototype.destroy = function() {
            this.renderer = null
        };
        var Ft = function(e) {
                function t() {
                    e.apply(this, arguments)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.upload = function(e, t, i) {
                    var r = e.gl;
                    return r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.alphaMode === R.UNPACK), i.width === t.width && i.height === t.height ? r.texSubImage2D(t.target, 0, 0, 0, t.width, t.height, t.format, t.type, this.data) : (i.width = t.width, i.height = t.height, r.texImage2D(t.target, 0, 1 === e.context.webGLVersion ? r.DEPTH_COMPONENT : r.DEPTH_COMPONENT16, t.width, t.height, 0, t.format, t.type, this.data)), !0
                }, t
            }(kt),
            Bt = function(e, t) {
                this.width = Math.ceil(e || 100), this.height = Math.ceil(t || 100), this.stencil = !1, this.depth = !1, this.dirtyId = 0, this.dirtyFormat = 0, this.dirtySize = 0, this.depthTexture = null, this.colorTextures = [], this.glFramebuffers = {}, this.disposeRunner = new _t("disposeFramebuffer", 2)
            },
            Nt = {
                colorTexture: {
                    configurable: !0
                }
            };
        Nt.colorTexture.get = function() {
            return this.colorTextures[0]
        }, Bt.prototype.addColorTexture = function(e, t) {
            return void 0 === e && (e = 0), this.colorTextures[e] = t || new Et(null, {
                scaleMode: M.NEAREST,
                resolution: 1,
                mipmap: !1,
                width: this.width,
                height: this.height
            }), this.dirtyId++, this.dirtyFormat++, this
        }, Bt.prototype.addDepthTexture = function(e) {
            return this.depthTexture = e || new Et(new Ft(null, {
                width: this.width,
                height: this.height
            }), {
                scaleMode: M.NEAREST,
                resolution: 1,
                width: this.width,
                height: this.height,
                mipmap: !1,
                format: S.DEPTH_COMPONENT,
                type: I.UNSIGNED_SHORT
            }), this.dirtyId++, this.dirtyFormat++, this
        }, Bt.prototype.enableDepth = function() {
            return this.depth = !0, this.dirtyId++, this.dirtyFormat++, this
        }, Bt.prototype.enableStencil = function() {
            return this.stencil = !0, this.dirtyId++, this.dirtyFormat++, this
        }, Bt.prototype.resize = function(e, t) {
            if (e = Math.ceil(e), t = Math.ceil(t), e !== this.width || t !== this.height) {
                this.width = e, this.height = t, this.dirtyId++, this.dirtySize++;
                for (var i = 0; i < this.colorTextures.length; i++) {
                    var r = this.colorTextures[i],
                        n = r.resolution;
                    r.setSize(e / n, t / n)
                }
                if (this.depthTexture) {
                    var a = this.depthTexture.resolution;
                    this.depthTexture.setSize(e / a, t / a)
                }
            }
        }, Bt.prototype.dispose = function() {
            this.disposeRunner.run(this, !1)
        }, Object.defineProperties(Bt.prototype, Nt);
        var Lt = function(e) {
                function t(t) {
                    "number" == typeof t && (t = {
                        width: arguments[0],
                        height: arguments[1],
                        scaleMode: arguments[2],
                        resolution: arguments[3]
                    });
                    e.call(this, null, t);
                    var i = t || {},
                        r = i.width,
                        n = i.height;
                    this.mipmap = !1, this.width = Math.ceil(r) || 100, this.height = Math.ceil(n) || 100, this.valid = !0, this._canvasRenderTarget = null, this.clearColor = [0, 0, 0, 0], this.framebuffer = new Bt(this.width * this.resolution, this.height * this.resolution).addColorTexture(0, this), this.maskStack = [], this.filterStack = [{}]
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.resize = function(e, t) {
                    e = Math.ceil(e), t = Math.ceil(t), this.framebuffer.resize(e * this.resolution, t * this.resolution)
                }, t.prototype.dispose = function() {
                    this.framebuffer.dispose(), e.prototype.dispose.call(this)
                }, t.prototype.destroy = function() {
                    e.prototype.destroy.call(this, !0), this.framebuffer = null
                }, t
            }(Et),
            Ut = function() {
                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.uvsFloat32 = new Float32Array(8)
            };
        Ut.prototype.set = function(e, t, i) {
            var r = t.width,
                n = t.height;
            if (i) {
                var a = e.width / 2 / r,
                    s = e.height / 2 / n,
                    o = e.x / r + a,
                    u = e.y / n + s;
                i = $e.add(i, $e.NW), this.x0 = o + a * $e.uX(i), this.y0 = u + s * $e.uY(i), i = $e.add(i, 2), this.x1 = o + a * $e.uX(i), this.y1 = u + s * $e.uY(i), i = $e.add(i, 2), this.x2 = o + a * $e.uX(i), this.y2 = u + s * $e.uY(i), i = $e.add(i, 2), this.x3 = o + a * $e.uX(i), this.y3 = u + s * $e.uY(i)
            } else this.x0 = e.x / r, this.y0 = e.y / n, this.x1 = (e.x + e.width) / r, this.y1 = e.y / n, this.x2 = (e.x + e.width) / r, this.y2 = (e.y + e.height) / n, this.x3 = e.x / r, this.y3 = (e.y + e.height) / n;
            this.uvsFloat32[0] = this.x0, this.uvsFloat32[1] = this.y0, this.uvsFloat32[2] = this.x1, this.uvsFloat32[3] = this.y1, this.uvsFloat32[4] = this.x2, this.uvsFloat32[5] = this.y2, this.uvsFloat32[6] = this.x3, this.uvsFloat32[7] = this.y3
        };
        var Vt = new Ut,
            Xt = function(e) {
                function t(i, r, n, a, s, o) {
                    if (e.call(this), this.noFrame = !1, r || (this.noFrame = !0, r = new We(0, 0, 1, 1)), i instanceof t && (i = i.baseTexture), this.baseTexture = i, this._frame = r, this.trim = a, this.valid = !1, this.requiresUpdate = !1, this._uvs = Vt, this.uvMatrix = null, this.orig = n || r, this._rotate = Number(s || 0), !0 === s) this._rotate = 2;
                    else if (this._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");
                    this.defaultAnchor = o ? new Ce(o.x, o.y) : new Ce(0, 0), this._updateID = 0, this.textureCacheIds = [], i.valid ? this.noFrame ? i.valid && this.onBaseTextureUpdated(i) : this.frame = r : i.once("loaded", this.onBaseTextureUpdated, this), this.noFrame && i.on("update", this.onBaseTextureUpdated, this)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    resolution: {
                        configurable: !0
                    },
                    frame: {
                        configurable: !0
                    },
                    rotate: {
                        configurable: !0
                    },
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    }
                };
                return t.prototype.update = function() {
                    this.baseTexture.resource && this.baseTexture.resource.update()
                }, t.prototype.onBaseTextureUpdated = function(e) {
                    if (this.noFrame) {
                        if (!this.baseTexture.valid) return;
                        this._frame.width = e.width, this._frame.height = e.height, this.valid = !0, this.updateUvs()
                    } else this.frame = this._frame;
                    this.emit("update", this)
                }, t.prototype.destroy = function(e) {
                    if (this.baseTexture) {
                        if (e) {
                            var i = this.baseTexture.resource;
                            i && ge[i.url] && t.removeFromCache(i.url), this.baseTexture.destroy()
                        }
                        this.baseTexture.off("loaded", this.onBaseTextureUpdated, this), this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture = null
                    }
                    this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, t.removeFromCache(this), this.textureCacheIds = null
                }, t.prototype.clone = function() {
                    return new t(this.baseTexture, this.frame.clone(), this.orig.clone(), this.trim && this.trim.clone(), this.rotate, this.defaultAnchor)
                }, t.prototype.updateUvs = function() {
                    this._uvs === Vt && (this._uvs = new Ut), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++
                }, t.from = function(e, i, r) {
                    void 0 === i && (i = {}), void 0 === r && (r = N.STRICT_TEXTURE_CACHE);
                    var n = "string" == typeof e,
                        a = null;
                    n ? a = e : (e._pixiId || (e._pixiId = "pixiid_" + ve()), a = e._pixiId);
                    var s = ge[a];
                    if (n && r && !s) throw new Error('The cacheId "' + a + '" does not exist in TextureCache.');
                    return s || (i.resolution || (i.resolution = Ie(e)), (s = new t(new Et(e, i))).baseTexture.cacheId = a, Et.addToCache(s.baseTexture, a), t.addToCache(s, a)), s
                }, t.fromBuffer = function(e, i, r, n) {
                    return new t(Et.fromBuffer(e, i, r, n))
                }, t.fromLoader = function(e, i, r) {
                    var n = new At(e);
                    n.url = i;
                    var a = new t(new Et(n, {
                        scaleMode: N.SCALE_MODE,
                        resolution: Ie(i)
                    }));
                    return r || (r = i), Et.addToCache(a.baseTexture, r), t.addToCache(a, r), r !== i && (Et.addToCache(a.baseTexture, i), t.addToCache(a, i)), a
                }, t.addToCache = function(e, t) {
                    t && (-1 === e.textureCacheIds.indexOf(t) && e.textureCacheIds.push(t), ge[t], ge[t] = e)
                }, t.removeFromCache = function(e) {
                    if ("string" == typeof e) {
                        var t = ge[e];
                        if (t) {
                            var i = t.textureCacheIds.indexOf(e);
                            return i > -1 && t.textureCacheIds.splice(i, 1), delete ge[e], t
                        }
                    } else if (e && e.textureCacheIds) {
                        for (var r = 0; r < e.textureCacheIds.length; ++r) ge[e.textureCacheIds[r]] === e && delete ge[e.textureCacheIds[r]];
                        return e.textureCacheIds.length = 0, e
                    }
                    return null
                }, i.resolution.get = function() {
                    return this.baseTexture.resolution
                }, i.frame.get = function() {
                    return this._frame
                }, i.frame.set = function(e) {
                    this._frame = e, this.noFrame = !1;
                    var t = e.x,
                        i = e.y,
                        r = e.width,
                        n = e.height,
                        a = t + r > this.baseTexture.width,
                        s = i + n > this.baseTexture.height;
                    if (a || s) {
                        var o = a && s ? "and" : "or",
                            u = "X: " + t + " + " + r + " = " + (t + r) + " > " + this.baseTexture.width,
                            h = "Y: " + i + " + " + n + " = " + (i + n) + " > " + this.baseTexture.height;
                        throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: " + u + " " + o + " " + h)
                    }
                    this.valid = r && n && this.baseTexture.valid, this.trim || this.rotate || (this.orig = e), this.valid && this.updateUvs()
                }, i.rotate.get = function() {
                    return this._rotate
                }, i.rotate.set = function(e) {
                    this._rotate = e, this.valid && this.updateUvs()
                }, i.width.get = function() {
                    return this.orig.width
                }, i.height.get = function() {
                    return this.orig.height
                }, Object.defineProperties(t.prototype, i), t
            }(U.a);

        function jt(e) {
            e.destroy = function() {}, e.on = function() {}, e.once = function() {}, e.emit = function() {}
        }
        Xt.EMPTY = new Xt(new Et), jt(Xt.EMPTY), jt(Xt.EMPTY.baseTexture), Xt.WHITE = function() {
            var e = document.createElement("canvas");
            e.width = 16, e.height = 16;
            var t = e.getContext("2d");
            return t.fillStyle = "white", t.fillRect(0, 0, 16, 16), new Xt(new Et(new Pt(e)))
        }(), jt(Xt.WHITE), jt(Xt.WHITE.baseTexture);
        var Gt = function(e) {
                function t(t, i) {
                    var r = null;
                    if (!(t instanceof Lt)) {
                        var n = arguments[1],
                            a = arguments[2],
                            s = arguments[3],
                            o = arguments[4];
                        r = arguments[0], i = null, t = new Lt({
                            width: n,
                            height: a,
                            scaleMode: s,
                            resolution: o
                        })
                    }
                    e.call(this, t, i), this.legacyRenderer = r, this.valid = !0, this.filterFrame = null, this.filterPoolKey = null, this.updateUvs()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.resize = function(e, t, i) {
                    void 0 === i && (i = !0), e = Math.ceil(e), t = Math.ceil(t), this.valid = e > 0 && t > 0, this._frame.width = this.orig.width = e, this._frame.height = this.orig.height = t, i && this.baseTexture.resize(e, t), this.updateUvs()
                }, t.prototype.setResolution = function(e) {
                    var t = this.baseTexture;
                    t.resolution !== e && (t.setResolution(e), this.resize(t.width, t.height, !1))
                }, t.create = function(e) {
                    return "number" == typeof e && (e = {
                        width: e,
                        height: arguments[1],
                        scaleMode: arguments[2],
                        resolution: arguments[3]
                    }), new t(new Lt(e))
                }, t
            }(Xt),
            $t = function(e) {
                this.texturePool = {}, this.textureOptions = e || {}, this.enableFullScreen = !1, this._pixelsWidth = 0, this._pixelsHeight = 0
            };
        $t.prototype.createTexture = function(e, t) {
            var i = new Lt(Object.assign({
                width: e,
                height: t,
                resolution: 1
            }, this.textureOptions));
            return new Gt(i)
        }, $t.prototype.getOptimalTexture = function(e, t, i) {
            void 0 === i && (i = 1);
            var r = $t.SCREEN_KEY;
            e *= i, t *= i, this.enableFullScreen && e === this._pixelsWidth && t === this._pixelsHeight || (r = (65535 & (e = he(e))) << 16 | 65535 & (t = he(t))), this.texturePool[r] || (this.texturePool[r] = []);
            var n = this.texturePool[r].pop();
            return n || (n = this.createTexture(e, t)), n.filterPoolKey = r, n.setResolution(i), n
        }, $t.prototype.getFilterTexture = function(e, t) {
            var i = this.getOptimalTexture(e.width, e.height, t || e.resolution);
            return i.filterFrame = e.filterFrame, i
        }, $t.prototype.returnTexture = function(e) {
            var t = e.filterPoolKey;
            e.filterFrame = null, this.texturePool[t].push(e)
        }, $t.prototype.returnFilterTexture = function(e) {
            this.returnTexture(e)
        }, $t.prototype.clear = function(e) {
            if (e = !1 !== e)
                for (var t in this.texturePool) {
                    var i = this.texturePool[t];
                    if (i)
                        for (var r = 0; r < i.length; r++) i[r].destroy(!0)
                }
            this.texturePool = {}
        }, $t.prototype.setScreenSize = function(e) {
            if (e.width !== this._pixelsWidth || e.height !== this._pixelsHeight) {
                var t = $t.SCREEN_KEY,
                    i = this.texturePool[t];
                if (this.enableFullScreen = e.width > 0 && e.height > 0, i)
                    for (var r = 0; r < i.length; r++) i[r].destroy(!0);
                this.texturePool[t] = [], this._pixelsWidth = e.width, this._pixelsHeight = e.height
            }
        }, $t.SCREEN_KEY = "screen";
        var Ht = function(e, t, i, r, n, a, s) {
            void 0 === i && (i = !1), void 0 === r && (r = 5126), this.buffer = e, this.size = t, this.normalized = i, this.type = r, this.stride = n, this.start = a, this.instance = s
        };
        Ht.prototype.destroy = function() {
            this.buffer = null
        }, Ht.from = function(e, t, i, r, n) {
            return new Ht(e, t, i, r, n)
        };
        var Wt = 0,
            Yt = function(e, t, i) {
                void 0 === t && (t = !0), void 0 === i && (i = !1), this.data = e || new Float32Array(1), this._glBuffers = {}, this._updateID = 0, this.index = i, this.static = t, this.id = Wt++, this.disposeRunner = new _t("disposeBuffer", 2)
            };

        function zt(e) {
            if (4 === e.BYTES_PER_ELEMENT) return e instanceof Float32Array ? "Float32Array" : e instanceof Uint32Array ? "Uint32Array" : "Int32Array";
            if (2 === e.BYTES_PER_ELEMENT) {
                if (e instanceof Uint16Array) return "Uint16Array"
            } else if (1 === e.BYTES_PER_ELEMENT && e instanceof Uint8Array) return "Uint8Array";
            return null
        }
        Yt.prototype.update = function(e) {
            this.data = e || this.data, this._updateID++
        }, Yt.prototype.dispose = function() {
            this.disposeRunner.run(this, !1)
        }, Yt.prototype.destroy = function() {
            this.dispose(), this.data = null
        }, Yt.from = function(e) {
            return e instanceof Array && (e = new Float32Array(e)), new Yt(e)
        };
        var qt = {
            Float32Array: Float32Array,
            Uint32Array: Uint32Array,
            Int32Array: Int32Array,
            Uint8Array: Uint8Array
        };
        var Jt = {
                5126: 4,
                5123: 2,
                5121: 1
            },
            Qt = 0,
            Zt = {
                Float32Array: Float32Array,
                Uint32Array: Uint32Array,
                Int32Array: Int32Array,
                Uint8Array: Uint8Array,
                Uint16Array: Uint16Array
            },
            Kt = function(e, t) {
                void 0 === e && (e = []), void 0 === t && (t = {}), this.buffers = e, this.indexBuffer = null, this.attributes = t, this.glVertexArrayObjects = {}, this.id = Qt++, this.instanced = !1, this.instanceCount = 1, this.disposeRunner = new _t("disposeGeometry", 2), this.refCount = 0
            };
        Kt.prototype.addAttribute = function(e, t, i, r, n, a, s, o) {
            if (void 0 === r && (r = !1), void 0 === o && (o = !1), !t) throw new Error("You must pass a buffer when creating an attribute");
            t.data || (t instanceof Array && (t = new Float32Array(t)), t = new Yt(t));
            var u = e.split("|");
            if (u.length > 1) {
                for (var h = 0; h < u.length; h++) this.addAttribute(u[h], t, i, r, n);
                return this
            }
            var l = this.buffers.indexOf(t);
            return -1 === l && (this.buffers.push(t), l = this.buffers.length - 1), this.attributes[e] = new Ht(l, i, r, n, a, s, o), this.instanced = this.instanced || o, this
        }, Kt.prototype.getAttribute = function(e) {
            return this.attributes[e]
        }, Kt.prototype.getBuffer = function(e) {
            return this.buffers[this.getAttribute(e).buffer]
        }, Kt.prototype.addIndex = function(e) {
            return e.data || (e instanceof Array && (e = new Uint16Array(e)), e = new Yt(e)), e.index = !0, this.indexBuffer = e, -1 === this.buffers.indexOf(e) && this.buffers.push(e), this
        }, Kt.prototype.getIndex = function() {
            return this.indexBuffer
        }, Kt.prototype.interleave = function() {
            if (1 === this.buffers.length || 2 === this.buffers.length && this.indexBuffer) return this;
            var e, t = [],
                i = [],
                r = new Yt;
            for (e in this.attributes) {
                var n = this.attributes[e],
                    a = this.buffers[n.buffer];
                t.push(a.data), i.push(n.size * Jt[n.type] / 4), n.buffer = 0
            }
            for (r.data = function(e, t) {
                    for (var i = 0, r = 0, n = {}, a = 0; a < e.length; a++) r += t[a], i += e[a].length;
                    for (var s = new ArrayBuffer(4 * i), o = null, u = 0, h = 0; h < e.length; h++) {
                        var l = t[h],
                            f = e[h],
                            c = zt(f);
                        n[c] || (n[c] = new qt[c](s)), o = n[c];
                        for (var d = 0; d < f.length; d++) {
                            o[(d / l | 0) * r + u + d % l] = f[d]
                        }
                        u += l
                    }
                    return new Float32Array(s)
                }(t, i), e = 0; e < this.buffers.length; e++) this.buffers[e] !== this.indexBuffer && this.buffers[e].destroy();
            return this.buffers = [r], this.indexBuffer && this.buffers.push(this.indexBuffer), this
        }, Kt.prototype.getSize = function() {
            for (var e in this.attributes) {
                var t = this.attributes[e];
                return this.buffers[t.buffer].data.length / (t.stride / 4 || t.size)
            }
            return 0
        }, Kt.prototype.dispose = function() {
            this.disposeRunner.run(this, !1)
        }, Kt.prototype.destroy = function() {
            this.dispose(), this.buffers = null, this.indexBuffer = null, this.attributes = null
        }, Kt.prototype.clone = function() {
            for (var e = new Kt, t = 0; t < this.buffers.length; t++) e.buffers[t] = new Yt(this.buffers[t].data.slice());
            for (var i in this.attributes) {
                var r = this.attributes[i];
                e.attributes[i] = new Ht(r.buffer, r.size, r.normalized, r.type, r.stride, r.start, r.instance)
            }
            return this.indexBuffer && (e.indexBuffer = e.buffers[this.buffers.indexOf(this.indexBuffer)], e.indexBuffer.index = !0), e
        }, Kt.merge = function(e) {
            for (var t, i = new Kt, r = [], n = [], a = [], s = 0; s < e.length; s++) {
                t = e[s];
                for (var o = 0; o < t.buffers.length; o++) n[o] = n[o] || 0, n[o] += t.buffers[o].data.length, a[o] = 0
            }
            for (var u = 0; u < t.buffers.length; u++) r[u] = new(Zt[zt(t.buffers[u].data)])(n[u]), i.buffers[u] = new Yt(r[u]);
            for (var h = 0; h < e.length; h++) {
                t = e[h];
                for (var l = 0; l < t.buffers.length; l++) r[l].set(t.buffers[l].data, a[l]), a[l] += t.buffers[l].data.length
            }
            if (i.attributes = t.attributes, t.indexBuffer) {
                i.indexBuffer = i.buffers[t.buffers.indexOf(t.indexBuffer)], i.indexBuffer.index = !0;
                for (var f = 0, c = 0, d = 0, p = 0, v = 0; v < t.buffers.length; v++)
                    if (t.buffers[v] !== t.indexBuffer) {
                        p = v;
                        break
                    }
                for (var m in t.attributes) {
                    var _ = t.attributes[m];
                    (0 | _.buffer) === p && (c += _.size * Jt[_.type] / 4)
                }
                for (var b = 0; b < e.length; b++) {
                    for (var g = e[b].indexBuffer.data, y = 0; y < g.length; y++) i.indexBuffer.data[y + d] += f;
                    f += t.buffers[p].data.length / c, d += g.length
                }
            }
            return i
        };
        var ei = function(e) {
                function t() {
                    e.call(this), this.addAttribute("aVertexPosition", [0, 0, 1, 0, 1, 1, 0, 1]).addIndex([0, 1, 3, 2])
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
            }(Kt),
            ti = function(e) {
                function t() {
                    e.call(this), 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.vertexBuffer = new Yt(this.vertices), this.uvBuffer = new Yt(this.uvs), this.addAttribute("aVertexPosition", this.vertexBuffer).addAttribute("aTextureCoord", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3])
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.map = function(e, t) {
                    var i = 0,
                        r = 0;
                    return this.uvs[0] = i, this.uvs[1] = r, this.uvs[2] = i + t.width / e.width, this.uvs[3] = r, this.uvs[4] = i + t.width / e.width, this.uvs[5] = r + t.height / e.height, this.uvs[6] = i, this.uvs[7] = r + t.height / e.height, i = t.x, r = t.y, this.vertices[0] = i, this.vertices[1] = r, this.vertices[2] = i + t.width, this.vertices[3] = r, this.vertices[4] = i + t.width, this.vertices[5] = r + t.height, this.vertices[6] = i, this.vertices[7] = r + t.height, this.invalidate(), this
                }, t.prototype.invalidate = function() {
                    return this.vertexBuffer._updateID++, this.uvBuffer._updateID++, this
                }, t
            }(Kt),
            ii = 0,
            ri = function(e, t) {
                this.uniforms = e, this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = ii++, this.static = !!t
            };
        ri.prototype.update = function() {
            this.dirtyId++
        }, ri.prototype.add = function(e, t, i) {
            this.uniforms[e] = new ri(t, i)
        }, ri.from = function(e, t) {
            return new ri(e, t)
        };
        var ni = function() {
            this.renderTexture = null, this.target = null, this.legacy = !1, this.resolution = 1, this.sourceFrame = new We, this.destinationFrame = new We, this.filters = []
        };
        ni.prototype.clear = function() {
            this.target = null, this.filters = null, this.renderTexture = null
        };
        var ai = function(e) {
                function t(t) {
                    e.call(this, t), this.defaultFilterStack = [{}], this.texturePool = new $t, this.texturePool.setScreenSize(t.view), this.statePool = [], this.quad = new ei, this.quadUv = new ti, this.tempRect = new We, this.activeState = {}, this.globalUniforms = new ri({
                        outputFrame: this.tempRect,
                        inputSize: new Float32Array(4),
                        inputPixel: new Float32Array(4),
                        inputClamp: new Float32Array(4),
                        resolution: 1,
                        filterArea: new Float32Array(4),
                        filterClamp: new Float32Array(4)
                    }, !0), this.forceClear = !1, this.useMaxPadding = !1
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.push = function(e, t) {
                    for (var i = this.renderer, r = this.defaultFilterStack, n = this.statePool.pop() || new ni, a = t[0].resolution, s = t[0].padding, o = t[0].autoFit, u = t[0].legacy, h = 1; h < t.length; h++) {
                        var l = t[h];
                        a = Math.min(a, l.resolution), s = this.useMaxPadding ? Math.max(s, l.padding) : s + l.padding, o = o || l.autoFit, u = u || l.legacy
                    }
                    1 === r.length && (this.defaultFilterStack[0].renderTexture = i.renderTexture.current), r.push(n), n.resolution = a, n.legacy = u, n.target = e, n.sourceFrame.copyFrom(e.filterArea || e.getBounds(!0)), n.sourceFrame.pad(s), o && n.sourceFrame.fit(this.renderer.renderTexture.sourceFrame), n.sourceFrame.ceil(a), n.renderTexture = this.getOptimalFilterTexture(n.sourceFrame.width, n.sourceFrame.height, a), n.filters = t, n.destinationFrame.width = n.renderTexture.width, n.destinationFrame.height = n.renderTexture.height, n.renderTexture.filterFrame = n.sourceFrame, i.renderTexture.bind(n.renderTexture, n.sourceFrame), i.renderTexture.clear()
                }, t.prototype.pop = function() {
                    var e = this.defaultFilterStack,
                        t = e.pop(),
                        i = t.filters;
                    this.activeState = t;
                    var r = this.globalUniforms.uniforms;
                    r.outputFrame = t.sourceFrame, r.resolution = t.resolution;
                    var n = r.inputSize,
                        a = r.inputPixel,
                        s = r.inputClamp;
                    if (n[0] = t.destinationFrame.width, n[1] = t.destinationFrame.height, n[2] = 1 / n[0], n[3] = 1 / n[1], a[0] = n[0] * t.resolution, a[1] = n[1] * t.resolution, a[2] = 1 / a[0], a[3] = 1 / a[1], s[0] = .5 * a[2], s[1] = .5 * a[3], s[2] = t.sourceFrame.width * n[2] - .5 * a[2], s[3] = t.sourceFrame.height * n[3] - .5 * a[3], t.legacy) {
                        var o = r.filterArea;
                        o[0] = t.destinationFrame.width, o[1] = t.destinationFrame.height, o[2] = t.sourceFrame.x, o[3] = t.sourceFrame.y, r.filterClamp = r.inputClamp
                    }
                    this.globalUniforms.update();
                    var u = e[e.length - 1];
                    if (1 === i.length) i[0].apply(this, t.renderTexture, u.renderTexture, !1, t), this.returnFilterTexture(t.renderTexture);
                    else {
                        var h = t.renderTexture,
                            l = this.getOptimalFilterTexture(h.width, h.height, t.resolution);
                        l.filterFrame = h.filterFrame;
                        var f = 0;
                        for (f = 0; f < i.length - 1; ++f) {
                            i[f].apply(this, h, l, !0, t);
                            var c = h;
                            h = l, l = c
                        }
                        i[f].apply(this, h, u.renderTexture, !1, t), this.returnFilterTexture(h), this.returnFilterTexture(l)
                    }
                    t.clear(), this.statePool.push(t)
                }, t.prototype.applyFilter = function(e, t, i, r) {
                    var n = this.renderer;
                    n.renderTexture.bind(i, i ? i.filterFrame : null), r && n.renderTexture.clear(), e.uniforms.uSampler = t, e.uniforms.filterGlobals = this.globalUniforms, n.state.set(e.state), n.shader.bind(e), e.legacy ? (this.quadUv.map(t._frame, t.filterFrame), n.geometry.bind(this.quadUv), n.geometry.draw(E.TRIANGLES)) : (n.geometry.bind(this.quad), n.geometry.draw(E.TRIANGLE_STRIP))
                }, t.prototype.calculateSpriteMatrix = function(e, t) {
                    var i = this.activeState,
                        r = i.sourceFrame,
                        n = i.destinationFrame,
                        a = t._texture.orig,
                        s = e.set(n.width, 0, 0, n.height, r.x, r.y),
                        o = t.worldTransform.copyTo(Be.TEMP_MATRIX);
                    return o.invert(), s.prepend(o), s.scale(1 / a.width, 1 / a.height), s.translate(t.anchor.x, t.anchor.y), s
                }, t.prototype.destroy = function() {
                    this.texturePool.clear(!1)
                }, t.prototype.getOptimalFilterTexture = function(e, t, i) {
                    return void 0 === i && (i = 1), this.texturePool.getOptimalTexture(e, t, i)
                }, t.prototype.getFilterTexture = function(e, t) {
                    if ("number" == typeof e) {
                        var i = e;
                        e = t, t = i
                    }
                    e = e || this.activeState.renderTexture;
                    var r = this.texturePool.getOptimalTexture(e.width, e.height, t || e.resolution);
                    return r.filterFrame = e.filterFrame, r
                }, t.prototype.returnFilterTexture = function(e) {
                    this.texturePool.returnTexture(e)
                }, t.prototype.emptyPool = function() {
                    this.texturePool.clear(!0)
                }, t.prototype.resize = function() {
                    this.texturePool.setScreenSize(this.renderer.view)
                }, t
            }(Dt),
            si = function(e) {
                this.renderer = e
            };
        si.prototype.flush = function() {}, si.prototype.destroy = function() {
            this.renderer = null
        }, si.prototype.start = function() {}, si.prototype.stop = function() {
            this.flush()
        }, si.prototype.render = function(e) {};
        var oi = function(e) {
            function t(t) {
                e.call(this, t), this.emptyRenderer = new si(t), this.currentRenderer = this.emptyRenderer
            }
            return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.setObjectRenderer = function(e) {
                this.currentRenderer !== e && (this.currentRenderer.stop(), this.currentRenderer = e, this.currentRenderer.start())
            }, t.prototype.flush = function() {
                this.setObjectRenderer(this.emptyRenderer)
            }, t.prototype.reset = function() {
                this.setObjectRenderer(this.emptyRenderer)
            }, t.prototype.copyBoundTextures = function(e, t) {
                for (var i = this.renderer.texture.boundTextures, r = t - 1; r >= 0; --r) e[r] = i[r] || null, e[r] && (e[r]._batchLocation = r)
            }, t.prototype.boundArray = function(e, t, i, r) {
                for (var n = e.elements, a = e.ids, s = e.count, o = 0, u = 0; u < s; u++) {
                    var h = n[u],
                        l = h._batchLocation;
                    if (l >= 0 && l < r && t[l] === h) a[u] = l;
                    else
                        for (; o < r;) {
                            var f = t[o];
                            if (!f || f._batchEnabled !== i || f._batchLocation !== o) {
                                a[u] = o, h._batchLocation = o, t[o] = h;
                                break
                            }
                            o++
                        }
                }
            }, t
        }(Dt);
        N.PREFER_ENV = w.any ? x.WEBGL : x.WEBGL2, N.STRICT_TEXTURE_CACHE = !1;
        var ui = 0,
            hi = function(e) {
                function t(t) {
                    e.call(this, t), this.webGLVersion = 1, this.extensions = {}, this.handleContextLost = this.handleContextLost.bind(this), this.handleContextRestored = this.handleContextRestored.bind(this), t.view.addEventListener("webglcontextlost", this.handleContextLost, !1), t.view.addEventListener("webglcontextrestored", this.handleContextRestored, !1)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    isLost: {
                        configurable: !0
                    }
                };
                return i.isLost.get = function() {
                    return !this.gl || this.gl.isContextLost()
                }, t.prototype.contextChange = function(e) {
                    this.gl = e, this.renderer.gl = e, this.renderer.CONTEXT_UID = ui++, e.isContextLost() && e.getExtension("WEBGL_lose_context") && e.getExtension("WEBGL_lose_context").restoreContext()
                }, t.prototype.initFromContext = function(e) {
                    this.gl = e, this.validateContext(e), this.renderer.gl = e, this.renderer.CONTEXT_UID = ui++, this.renderer.runners.contextChange.run(e)
                }, t.prototype.initFromOptions = function(e) {
                    var t = this.createContext(this.renderer.view, e);
                    this.initFromContext(t)
                }, t.prototype.createContext = function(e, t) {
                    var i;
                    if (N.PREFER_ENV >= x.WEBGL2 && (i = e.getContext("webgl2", t)), i) this.webGLVersion = 2;
                    else if (this.webGLVersion = 1, !(i = e.getContext("webgl", t) || e.getContext("experimental-webgl", t))) throw new Error("This browser does not support WebGL. Try using the canvas renderer");
                    return this.gl = i, this.getExtensions(), i
                }, t.prototype.getExtensions = function() {
                    var e = this.gl;
                    1 === this.webGLVersion ? Object.assign(this.extensions, {
                        drawBuffers: e.getExtension("WEBGL_draw_buffers"),
                        depthTexture: e.getExtension("WEBGL_depth_texture"),
                        loseContext: e.getExtension("WEBGL_lose_context"),
                        vertexArrayObject: e.getExtension("OES_vertex_array_object") || e.getExtension("MOZ_OES_vertex_array_object") || e.getExtension("WEBKIT_OES_vertex_array_object"),
                        anisotropicFiltering: e.getExtension("EXT_texture_filter_anisotropic"),
                        uint32ElementIndex: e.getExtension("OES_element_index_uint"),
                        floatTexture: e.getExtension("OES_texture_float"),
                        floatTextureLinear: e.getExtension("OES_texture_float_linear"),
                        textureHalfFloat: e.getExtension("OES_texture_half_float"),
                        textureHalfFloatLinear: e.getExtension("OES_texture_half_float_linear")
                    }) : 2 === this.webGLVersion && Object.assign(this.extensions, {
                        anisotropicFiltering: e.getExtension("EXT_texture_filter_anisotropic"),
                        colorBufferFloat: e.getExtension("EXT_color_buffer_float"),
                        floatTextureLinear: e.getExtension("OES_texture_float_linear")
                    })
                }, t.prototype.handleContextLost = function(e) {
                    e.preventDefault()
                }, t.prototype.handleContextRestored = function() {
                    this.renderer.runners.contextChange.run(this.gl)
                }, t.prototype.destroy = function() {
                    var e = this.renderer.view;
                    e.removeEventListener("webglcontextlost", this.handleContextLost), e.removeEventListener("webglcontextrestored", this.handleContextRestored), this.gl.useProgram(null), this.extensions.loseContext && this.extensions.loseContext.loseContext()
                }, t.prototype.postrender = function() {
                    this.renderer.renderingToScreen && this.gl.flush()
                }, t.prototype.validateContext = function(e) {
                    e.getContextAttributes().stencil
                }, Object.defineProperties(t.prototype, i), t
            }(Dt),
            li = function(e) {
                function t(t) {
                    e.call(this, t), this.managedFramebuffers = [], this.unknownFramebuffer = new Bt(10, 10)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    size: {
                        configurable: !0
                    }
                };
                return t.prototype.contextChange = function() {
                    var e = this.gl = this.renderer.gl;
                    if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.current = this.unknownFramebuffer, this.viewport = new We, this.hasMRT = !0, this.writeDepthTexture = !0, this.disposeAll(!0), 1 === this.renderer.context.webGLVersion) {
                        var t = this.renderer.context.extensions.drawBuffers,
                            i = this.renderer.context.extensions.depthTexture;
                        N.PREFER_ENV === x.WEBGL_LEGACY && (t = null, i = null), t ? e.drawBuffers = function(e) {
                            return t.drawBuffersWEBGL(e)
                        } : (this.hasMRT = !1, e.drawBuffers = function() {}), i || (this.writeDepthTexture = !1)
                    }
                }, t.prototype.bind = function(e, t) {
                    var i = this.gl;
                    if (e) {
                        var r = e.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(e);
                        this.current !== e && (this.current = e, i.bindFramebuffer(i.FRAMEBUFFER, r.framebuffer)), r.dirtyId !== e.dirtyId && (r.dirtyId = e.dirtyId, r.dirtyFormat !== e.dirtyFormat ? (r.dirtyFormat = e.dirtyFormat, this.updateFramebuffer(e)) : r.dirtySize !== e.dirtySize && (r.dirtySize = e.dirtySize, this.resizeFramebuffer(e)));
                        for (var n = 0; n < e.colorTextures.length; n++) e.colorTextures[n].texturePart ? this.renderer.texture.unbind(e.colorTextures[n].texture) : this.renderer.texture.unbind(e.colorTextures[n]);
                        e.depthTexture && this.renderer.texture.unbind(e.depthTexture), t ? this.setViewport(t.x, t.y, t.width, t.height) : this.setViewport(0, 0, e.width, e.height)
                    } else this.current && (this.current = null, i.bindFramebuffer(i.FRAMEBUFFER, null)), t ? this.setViewport(t.x, t.y, t.width, t.height) : this.setViewport(0, 0, this.renderer.width, this.renderer.height)
                }, t.prototype.setViewport = function(e, t, i, r) {
                    var n = this.viewport;
                    n.width === i && n.height === r && n.x === e && n.y === t || (n.x = e, n.y = t, n.width = i, n.height = r, this.gl.viewport(e, t, i, r))
                }, i.size.get = function() {
                    return this.current ? {
                        x: 0,
                        y: 0,
                        width: this.current.width,
                        height: this.current.height
                    } : {
                        x: 0,
                        y: 0,
                        width: this.renderer.width,
                        height: this.renderer.height
                    }
                }, t.prototype.clear = function(e, t, i, r) {
                    var n = this.gl;
                    n.clearColor(e, t, i, r), n.clear(n.COLOR_BUFFER_BIT | n.DEPTH_BUFFER_BIT)
                }, t.prototype.initFramebuffer = function(e) {
                    var t = {
                        framebuffer: this.gl.createFramebuffer(),
                        stencil: null,
                        dirtyId: 0,
                        dirtyFormat: 0,
                        dirtySize: 0
                    };
                    return e.glFramebuffers[this.CONTEXT_UID] = t, this.managedFramebuffers.push(e), e.disposeRunner.add(this), t
                }, t.prototype.resizeFramebuffer = function(e) {
                    var t = this.gl,
                        i = e.glFramebuffers[this.CONTEXT_UID];
                    i.stencil && (t.bindRenderbuffer(t.RENDERBUFFER, i.stencil), t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_STENCIL, e.width, e.height));
                    for (var r = e.colorTextures, n = 0; n < r.length; n++) this.renderer.texture.bind(r[n], 0);
                    e.depthTexture && this.renderer.texture.bind(e.depthTexture, 0)
                }, t.prototype.updateFramebuffer = function(e) {
                    var t = this.gl,
                        i = e.glFramebuffers[this.CONTEXT_UID],
                        r = e.colorTextures.length;
                    t.drawBuffers || (r = Math.min(r, 1));
                    for (var n = [], a = 0; a < r; a++) {
                        var s = e.colorTextures[a];
                        s.texturePart ? (this.renderer.texture.bind(s.texture, 0), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0 + a, t.TEXTURE_CUBE_MAP_NEGATIVE_X + s.side, s.texture._glTextures[this.CONTEXT_UID].texture, 0)) : (this.renderer.texture.bind(s, 0), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0 + a, t.TEXTURE_2D, s._glTextures[this.CONTEXT_UID].texture, 0)), n.push(t.COLOR_ATTACHMENT0 + a)
                    }
                    if ((n.length > 1 && t.drawBuffers(n), e.depthTexture) && this.writeDepthTexture) {
                        var o = e.depthTexture;
                        this.renderer.texture.bind(o, 0), t.framebufferTexture2D(t.FRAMEBUFFER, t.DEPTH_ATTACHMENT, t.TEXTURE_2D, o._glTextures[this.CONTEXT_UID].texture, 0)
                    }
                    i.stencil || !e.stencil && !e.depth || (i.stencil = t.createRenderbuffer(), t.bindRenderbuffer(t.RENDERBUFFER, i.stencil), t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_STENCIL, e.width, e.height), e.depthTexture || t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.RENDERBUFFER, i.stencil))
                }, t.prototype.disposeFramebuffer = function(e, t) {
                    var i = e.glFramebuffers[this.CONTEXT_UID],
                        r = this.gl;
                    if (i) {
                        delete e.glFramebuffers[this.CONTEXT_UID];
                        var n = this.managedFramebuffers.indexOf(e);
                        n >= 0 && this.managedFramebuffers.splice(n, 1), e.disposeRunner.remove(this), t || (r.deleteFramebuffer(i.framebuffer), i.stencil && r.deleteRenderbuffer(i.stencil))
                    }
                }, t.prototype.disposeAll = function(e) {
                    var t = this.managedFramebuffers;
                    this.managedFramebuffers = [];
                    for (var i = 0; i < t.length; i++) this.disposeFramebuffer(t[i], e)
                }, t.prototype.forceStencil = function() {
                    var e = this.current;
                    if (e) {
                        var t = e.glFramebuffers[this.CONTEXT_UID];
                        if (t && !t.stencil) {
                            e.enableStencil();
                            var i = e.width,
                                r = e.height,
                                n = this.gl,
                                a = n.createRenderbuffer();
                            n.bindRenderbuffer(n.RENDERBUFFER, a), n.renderbufferStorage(n.RENDERBUFFER, n.DEPTH_STENCIL, i, r), t.stencil = a, n.framebufferRenderbuffer(n.FRAMEBUFFER, n.DEPTH_STENCIL_ATTACHMENT, n.RENDERBUFFER, a)
                        }
                    }
                }, t.prototype.reset = function() {
                    this.current = this.unknownFramebuffer, this.viewport = new We
                }, Object.defineProperties(t.prototype, i), t
            }(Dt),
            fi = function(e) {
                this.buffer = e, this.updateID = -1, this.byteLength = -1, this.refCount = 0
            },
            ci = {
                5126: 4,
                5123: 2,
                5121: 1
            },
            di = function(e) {
                function t(t) {
                    e.call(this, t), this._activeGeometry = null, this._activeVao = null, this.hasVao = !0, this.hasInstance = !0, this.canUseUInt32ElementIndex = !1, this.boundBuffers = {}, this.managedGeometries = {}, this.managedBuffers = {}
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.contextChange = function() {
                    this.disposeAll(!0);
                    var e = this.gl = this.renderer.gl,
                        t = this.renderer.context;
                    if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, !e.createVertexArray) {
                        var i = this.renderer.context.extensions.vertexArrayObject;
                        N.PREFER_ENV === x.WEBGL_LEGACY && (i = null), i ? (e.createVertexArray = function() {
                            return i.createVertexArrayOES()
                        }, e.bindVertexArray = function(e) {
                            return i.bindVertexArrayOES(e)
                        }, e.deleteVertexArray = function(e) {
                            return i.deleteVertexArrayOES(e)
                        }) : (this.hasVao = !1, e.createVertexArray = function() {}, e.bindVertexArray = function() {}, e.deleteVertexArray = function() {})
                    }
                    if (!e.vertexAttribDivisor) {
                        var r = e.getExtension("ANGLE_instanced_arrays");
                        r ? (e.vertexAttribDivisor = function(e, t) {
                            return r.vertexAttribDivisorANGLE(e, t)
                        }, e.drawElementsInstanced = function(e, t, i, n, a) {
                            return r.drawElementsInstancedANGLE(e, t, i, n, a)
                        }, e.drawArraysInstanced = function(e, t, i, n) {
                            return r.drawArraysInstancedANGLE(e, t, i, n)
                        }) : this.hasInstance = !1
                    }
                    this.canUseUInt32ElementIndex = 2 === t.webGLVersion || !!t.extensions.uint32ElementIndex
                }, t.prototype.bind = function(e, t) {
                    t = t || this.renderer.shader.shader;
                    var i = this.gl,
                        r = e.glVertexArrayObjects[this.CONTEXT_UID];
                    r || (this.managedGeometries[e.id] = e, e.disposeRunner.add(this), e.glVertexArrayObjects[this.CONTEXT_UID] = r = {});
                    var n = r[t.program.id] || this.initGeometryVao(e, t.program);
                    this._activeGeometry = e, this._activeVao !== n && (this._activeVao = n, this.hasVao ? i.bindVertexArray(n) : this.activateVao(e, t.program)), this.updateBuffers()
                }, t.prototype.reset = function() {
                    this.unbind()
                }, t.prototype.updateBuffers = function() {
                    for (var e = this._activeGeometry, t = this.gl, i = 0; i < e.buffers.length; i++) {
                        var r = e.buffers[i],
                            n = r._glBuffers[this.CONTEXT_UID];
                        if (r._updateID !== n.updateID) {
                            n.updateID = r._updateID;
                            var a = r.index ? t.ELEMENT_ARRAY_BUFFER : t.ARRAY_BUFFER;
                            if (t.bindBuffer(a, n.buffer), this._boundBuffer = n, n.byteLength >= r.data.byteLength) t.bufferSubData(a, 0, r.data);
                            else {
                                var s = r.static ? t.STATIC_DRAW : t.DYNAMIC_DRAW;
                                n.byteLength = r.data.byteLength, t.bufferData(a, r.data, s)
                            }
                        }
                    }
                }, t.prototype.checkCompatibility = function(e, t) {
                    var i = e.attributes,
                        r = t.attributeData;
                    for (var n in r)
                        if (!i[n]) throw new Error('shader and geometry incompatible, geometry missing the "' + n + '" attribute')
                }, t.prototype.getSignature = function(e, t) {
                    var i = e.attributes,
                        r = t.attributeData,
                        n = ["g", e.id];
                    for (var a in i) r[a] && n.push(a);
                    return n.join("-")
                }, t.prototype.initGeometryVao = function(e, t) {
                    this.checkCompatibility(e, t);
                    var i = this.gl,
                        r = this.CONTEXT_UID,
                        n = this.getSignature(e, t),
                        a = e.glVertexArrayObjects[this.CONTEXT_UID],
                        s = a[n];
                    if (s) return a[t.id] = s, s;
                    var o = e.buffers,
                        u = e.attributes,
                        h = {},
                        l = {};
                    for (var f in o) h[f] = 0, l[f] = 0;
                    for (var c in u) !u[c].size && t.attributeData[c] ? u[c].size = t.attributeData[c].size : u[c].size, h[u[c].buffer] += u[c].size * ci[u[c].type];
                    for (var d in u) {
                        var p = u[d],
                            v = p.size;
                        void 0 === p.stride && (h[p.buffer] === v * ci[p.type] ? p.stride = 0 : p.stride = h[p.buffer]), void 0 === p.start && (p.start = l[p.buffer], l[p.buffer] += v * ci[p.type])
                    }
                    s = i.createVertexArray(), i.bindVertexArray(s);
                    for (var m = 0; m < o.length; m++) {
                        var _ = o[m];
                        _._glBuffers[r] || (_._glBuffers[r] = new fi(i.createBuffer()), this.managedBuffers[_.id] = _, _.disposeRunner.add(this)), _._glBuffers[r].refCount++
                    }
                    return this.activateVao(e, t), this._activeVao = s, a[t.id] = s, a[n] = s, s
                }, t.prototype.disposeBuffer = function(e, t) {
                    if (this.managedBuffers[e.id]) {
                        delete this.managedBuffers[e.id];
                        var i = e._glBuffers[this.CONTEXT_UID],
                            r = this.gl;
                        e.disposeRunner.remove(this), i && (t || r.deleteBuffer(i.buffer), delete e._glBuffers[this.CONTEXT_UID])
                    }
                }, t.prototype.disposeGeometry = function(e, t) {
                    if (this.managedGeometries[e.id]) {
                        delete this.managedGeometries[e.id];
                        var i = e.glVertexArrayObjects[this.CONTEXT_UID],
                            r = this.gl,
                            n = e.buffers;
                        if (e.disposeRunner.remove(this), i) {
                            for (var a = 0; a < n.length; a++) {
                                var s = n[a]._glBuffers[this.CONTEXT_UID];
                                s.refCount--, 0 !== s.refCount || t || this.disposeBuffer(n[a], t)
                            }
                            if (!t)
                                for (var o in i)
                                    if ("g" === o[0]) {
                                        var u = i[o];
                                        this._activeVao === u && this.unbind(), r.deleteVertexArray(u)
                                    }
                            delete e.glVertexArrayObjects[this.CONTEXT_UID]
                        }
                    }
                }, t.prototype.disposeAll = function(e) {
                    for (var t = Object.keys(this.managedGeometries), i = 0; i < t.length; i++) this.disposeGeometry(this.managedGeometries[t[i]], e);
                    t = Object.keys(this.managedBuffers);
                    for (var r = 0; r < t.length; r++) this.disposeBuffer(this.managedBuffers[t[r]], e)
                }, t.prototype.activateVao = function(e, t) {
                    var i = this.gl,
                        r = this.CONTEXT_UID,
                        n = e.buffers,
                        a = e.attributes;
                    e.indexBuffer && i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, e.indexBuffer._glBuffers[r].buffer);
                    var s = null;
                    for (var o in a) {
                        var u = a[o],
                            h = n[u.buffer]._glBuffers[r];
                        if (t.attributeData[o]) {
                            s !== h && (i.bindBuffer(i.ARRAY_BUFFER, h.buffer), s = h);
                            var l = t.attributeData[o].location;
                            if (i.enableVertexAttribArray(l), i.vertexAttribPointer(l, u.size, u.type || i.FLOAT, u.normalized, u.stride, u.start), u.instance) {
                                if (!this.hasInstance) throw new Error("geometry error, GPU Instancing is not supported on this device");
                                i.vertexAttribDivisor(l, 1)
                            }
                        }
                    }
                }, t.prototype.draw = function(e, t, i, r) {
                    var n = this.gl,
                        a = this._activeGeometry;
                    if (a.indexBuffer) {
                        var s = a.indexBuffer.data.BYTES_PER_ELEMENT,
                            o = 2 === s ? n.UNSIGNED_SHORT : n.UNSIGNED_INT;
                        (2 === s || 4 === s && this.canUseUInt32ElementIndex) && (a.instanced ? n.drawElementsInstanced(e, t || a.indexBuffer.data.length, o, (i || 0) * s, r || 1) : n.drawElements(e, t || a.indexBuffer.data.length, o, (i || 0) * s))
                    } else a.instanced ? n.drawArraysInstanced(e, i, t || a.getSize(), r || 1) : n.drawArrays(e, i, t || a.getSize());
                    return this
                }, t.prototype.unbind = function() {
                    this.gl.bindVertexArray(null), this._activeVao = null, this._activeGeometry = null
                }, t
            }(Dt),
            pi = function(e) {
                this.type = B.NONE, this.autoDetect = !0, this.maskObject = e || null, this.pooled = !1, this.isMaskData = !0, this._stencilCounter = 0, this._scissorCounter = 0, this._scissorRect = null, this._target = null
            };

        function vi(e, t, i, r) {
            var n = mi(e, e.VERTEX_SHADER, t),
                a = mi(e, e.FRAGMENT_SHADER, i),
                s = e.createProgram();
            if (e.attachShader(s, n), e.attachShader(s, a), r)
                for (var o in r) e.bindAttribLocation(s, r[o], o);
            return e.linkProgram(s), e.getProgramParameter(s, e.LINK_STATUS) || (e.getShaderParameter(n, e.COMPILE_STATUS), e.getShaderParameter(a, e.COMPILE_STATUS), e.getProgramInfoLog(s), e.deleteProgram(s), s = null), e.deleteShader(n), e.deleteShader(a), s
        }

        function mi(e, t, i) {
            var r = e.createShader(t);
            return e.shaderSource(r, i), e.compileShader(r), r
        }

        function _i(e, t) {
            switch (e) {
                case "float":
                    return 0;
                case "vec2":
                    return new Float32Array(2 * t);
                case "vec3":
                    return new Float32Array(3 * t);
                case "vec4":
                    return new Float32Array(4 * t);
                case "int":
                case "sampler2D":
                case "sampler2DArray":
                    return 0;
                case "ivec2":
                    return new Int32Array(2 * t);
                case "ivec3":
                    return new Int32Array(3 * t);
                case "ivec4":
                    return new Int32Array(4 * t);
                case "bool":
                    return !1;
                case "bvec2":
                    return bi(2 * t);
                case "bvec3":
                    return bi(3 * t);
                case "bvec4":
                    return bi(4 * t);
                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])
            }
            return null
        }

        function bi(e) {
            for (var t = new Array(e), i = 0; i < t.length; i++) t[i] = !1;
            return t
        }
        pi.prototype.reset = function() {
            this.pooled && (this.maskObject = null, this.type = B.NONE, this.autoDetect = !0), this._target = null
        }, pi.prototype.copyCountersOrReset = function(e) {
            e ? (this._stencilCounter = e._stencilCounter, this._scissorCounter = e._scissorCounter, this._scissorRect = e._scissorRect) : (this._stencilCounter = 0, this._scissorCounter = 0, this._scissorRect = null)
        };
        var gi, yi = {},
            Ai = yi;

        function wi() {
            if (Ai === yi || Ai && Ai.isContextLost()) {
                var e, t = document.createElement("canvas");
                N.PREFER_ENV >= x.WEBGL2 && (e = t.getContext("webgl2", {})), e || ((e = t.getContext("webgl", {}) || t.getContext("experimental-webgl", {})) ? e.getExtension("WEBGL_draw_buffers") : e = null), Ai = e
            }
            return Ai
        }

        function xi(e, t, i) {
            if ("precision" !== e.substring(0, 9)) {
                var r = t;
                return t === F.HIGH && i !== F.HIGH && (r = F.MEDIUM), "precision " + r + " float;\n" + e
            }
            return i !== F.HIGH && "precision highp" === e.substring(0, 15) ? e.replace("precision highp", "precision mediump") : e
        }
        var ki = {
            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
        };

        function Ti(e) {
            return ki[e]
        }
        var Ei = null,
            Si = {
                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",
                SAMPLER_CUBE: "samplerCube",
                SAMPLER_2D_ARRAY: "sampler2DArray"
            };

        function Pi(e, t) {
            if (!Ei) {
                var i = Object.keys(Si);
                Ei = {};
                for (var r = 0; r < i.length; ++r) {
                    var n = i[r];
                    Ei[e[n]] = Si[n]
                }
            }
            return Ei[t]
        }
        var Ii = {
                float: "\n    if(cv !== v)\n    {\n        cv.v = v;\n        gl.uniform1f(location, v)\n    }",
                vec2: "\n    if(cv[0] !== v[0] || cv[1] !== v[1])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        gl.uniform2f(location, v[0], v[1])\n    }",
                vec3: "\n    if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n    {\n        cv[0] = v[0];\n        cv[1] = v[1];\n        cv[2] = v[2];\n\n        gl.uniform3f(location, v[0], v[1], v[2])\n    }",
                vec4: "gl.uniform4f(location, v[0], v[1], v[2], v[3])",
                int: "gl.uniform1i(location, v)",
                ivec2: "gl.uniform2i(location, v[0], v[1])",
                ivec3: "gl.uniform3i(location, v[0], v[1], v[2])",
                ivec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])",
                bool: "gl.uniform1i(location, v)",
                bvec2: "gl.uniform2i(location, v[0], v[1])",
                bvec3: "gl.uniform3i(location, v[0], v[1], v[2])",
                bvec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])",
                mat2: "gl.uniformMatrix2fv(location, false, v)",
                mat3: "gl.uniformMatrix3fv(location, false, v)",
                mat4: "gl.uniformMatrix4fv(location, false, v)",
                sampler2D: "gl.uniform1i(location, v)",
                samplerCube: "gl.uniform1i(location, v)",
                sampler2DArray: "gl.uniform1i(location, v)"
            },
            Mi = {
                float: "gl.uniform1fv(location, v)",
                vec2: "gl.uniform2fv(location, v)",
                vec3: "gl.uniform3fv(location, v)",
                vec4: "gl.uniform4fv(location, v)",
                mat4: "gl.uniformMatrix4fv(location, false, v)",
                mat3: "gl.uniformMatrix3fv(location, false, v)",
                mat2: "gl.uniformMatrix2fv(location, false, v)",
                int: "gl.uniform1iv(location, v)",
                ivec2: "gl.uniform2iv(location, v)",
                ivec3: "gl.uniform3iv(location, v)",
                ivec4: "gl.uniform4iv(location, v)",
                bool: "gl.uniform1iv(location, v)",
                bvec2: "gl.uniform2iv(location, v)",
                bvec3: "gl.uniform3iv(location, v)",
                bvec4: "gl.uniform4iv(location, v)",
                sampler2D: "gl.uniform1iv(location, v)",
                samplerCube: "gl.uniform1iv(location, v)",
                sampler2DArray: "gl.uniform1iv(location, v)"
            };
        var Ci, Oi = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n");

        function Ri(e, t) {
            if (0 === e) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");
            for (var i = t.createShader(t.FRAGMENT_SHADER);;) {
                var r = Oi.replace(/%forloop%/gi, Di(e));
                if (t.shaderSource(i, r), t.compileShader(i), t.getShaderParameter(i, t.COMPILE_STATUS)) break;
                e = e / 2 | 0
            }
            return e
        }

        function Di(e) {
            for (var t = "", i = 0; i < e; ++i) i > 0 && (t += "\nelse "), i < e - 1 && (t += "if(test == " + i + ".0){}");
            return t
        }
        var Fi = 0,
            Bi = {},
            Ni = function e(t, i, r) {
                void 0 === r && (r = "pixi-shader"), this.id = Fi++, this.vertexSrc = t || e.defaultVertexSrc, this.fragmentSrc = i || e.defaultFragmentSrc, this.vertexSrc = this.vertexSrc.trim(), this.fragmentSrc = this.fragmentSrc.trim(), "#version" !== this.vertexSrc.substring(0, 8) && (r = r.replace(/\s+/g, "-"), Bi[r] ? (Bi[r]++, r += "-" + Bi[r]) : Bi[r] = 1, this.vertexSrc = "#define SHADER_NAME " + r + "\n" + this.vertexSrc, this.fragmentSrc = "#define SHADER_NAME " + r + "\n" + this.fragmentSrc, this.vertexSrc = xi(this.vertexSrc, N.PRECISION_VERTEX, F.HIGH), this.fragmentSrc = xi(this.fragmentSrc, N.PRECISION_FRAGMENT, function() {
                    if (!gi) {
                        gi = F.MEDIUM;
                        var e = wi();
                        if (e && e.getShaderPrecisionFormat) {
                            var t = e.getShaderPrecisionFormat(e.FRAGMENT_SHADER, e.HIGH_FLOAT);
                            gi = t.precision ? F.HIGH : F.MEDIUM
                        }
                    }
                    return gi
                }())), this.extractData(this.vertexSrc, this.fragmentSrc), this.glPrograms = {}, this.syncUniforms = null
            },
            Li = {
                defaultVertexSrc: {
                    configurable: !0
                },
                defaultFragmentSrc: {
                    configurable: !0
                }
            };
        Ni.prototype.extractData = function(e, t) {
            var i = wi();
            if (i) {
                var r = vi(i, e, t);
                this.attributeData = this.getAttributeData(r, i), this.uniformData = this.getUniformData(r, i), i.deleteProgram(r)
            } else this.uniformData = {}, this.attributeData = {}
        }, Ni.prototype.getAttributeData = function(e, t) {
            for (var i = {}, r = [], n = t.getProgramParameter(e, t.ACTIVE_ATTRIBUTES), a = 0; a < n; a++) {
                var s = t.getActiveAttrib(e, a),
                    o = Pi(t, s.type),
                    u = {
                        type: o,
                        name: s.name,
                        size: Ti(o),
                        location: 0
                    };
                i[s.name] = u, r.push(u)
            }
            r.sort(function(e, t) {
                return e.name > t.name ? 1 : -1
            });
            for (var h = 0; h < r.length; h++) r[h].location = h;
            return i
        }, Ni.prototype.getUniformData = function(e, t) {
            for (var i = {}, r = t.getProgramParameter(e, t.ACTIVE_UNIFORMS), n = 0; n < r; n++) {
                var a = t.getActiveUniform(e, n),
                    s = a.name.replace(/\[.*?\]/, ""),
                    o = a.name.match(/\[.*?\]/, ""),
                    u = Pi(t, a.type);
                i[s] = {
                    type: u,
                    size: a.size,
                    isArray: o,
                    value: _i(u, a.size)
                }
            }
            return i
        }, Li.defaultVertexSrc.get = function() {
            return "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void){\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n   vTextureCoord = aTextureCoord;\n}\n"
        }, Li.defaultFragmentSrc.get = function() {
            return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n   gl_FragColor *= texture2D(uSampler, vTextureCoord);\n}"
        }, Ni.from = function(e, t, i) {
            var r = e + t,
                n = be[r];
            return n || (be[r] = n = new Ni(e, t, i)), n
        }, Object.defineProperties(Ni, Li);
        var Ui = function(e, t) {
                for (var i in this.program = e, this.uniformGroup = t ? t instanceof ri ? t : new ri(t) : new ri({}), e.uniformData) this.uniformGroup.uniforms[i] instanceof Array && (this.uniformGroup.uniforms[i] = new Float32Array(this.uniformGroup.uniforms[i]))
            },
            Vi = {
                uniforms: {
                    configurable: !0
                }
            };
        Ui.prototype.checkUniformExists = function(e, t) {
            if (t.uniforms[e]) return !0;
            for (var i in t.uniforms) {
                var r = t.uniforms[i];
                if (r.group && this.checkUniformExists(e, r)) return !0
            }
            return !1
        }, Ui.prototype.destroy = function() {
            this.uniformGroup = null
        }, Vi.uniforms.get = function() {
            return this.uniformGroup.uniforms
        }, Ui.from = function(e, t, i) {
            var r = Ni.from(e, t);
            return new Ui(r, i)
        }, Object.defineProperties(Ui.prototype, Vi);
        var Xi = function() {
                this.data = 0, this.blendMode = T.NORMAL, this.polygonOffset = 0, this.blend = !0
            },
            ji = {
                blend: {
                    configurable: !0
                },
                offsets: {
                    configurable: !0
                },
                culling: {
                    configurable: !0
                },
                depthTest: {
                    configurable: !0
                },
                clockwiseFrontFace: {
                    configurable: !0
                },
                blendMode: {
                    configurable: !0
                },
                polygonOffset: {
                    configurable: !0
                }
            };
        ji.blend.get = function() {
            return !!(1 & this.data)
        }, ji.blend.set = function(e) {
            !!(1 & this.data) !== e && (this.data ^= 1)
        }, ji.offsets.get = function() {
            return !!(2 & this.data)
        }, ji.offsets.set = function(e) {
            !!(2 & this.data) !== e && (this.data ^= 2)
        }, ji.culling.get = function() {
            return !!(4 & this.data)
        }, ji.culling.set = function(e) {
            !!(4 & this.data) !== e && (this.data ^= 4)
        }, ji.depthTest.get = function() {
            return !!(8 & this.data)
        }, ji.depthTest.set = function(e) {
            !!(8 & this.data) !== e && (this.data ^= 8)
        }, ji.clockwiseFrontFace.get = function() {
            return !!(16 & this.data)
        }, ji.clockwiseFrontFace.set = function(e) {
            !!(16 & this.data) !== e && (this.data ^= 16)
        }, ji.blendMode.get = function() {
            return this._blendMode
        }, ji.blendMode.set = function(e) {
            this.blend = e !== T.NONE, this._blendMode = e
        }, ji.polygonOffset.get = function() {
            return this._polygonOffset
        }, ji.polygonOffset.set = function(e) {
            this.offsets = !!e, this._polygonOffset = e
        }, Xi.for2d = function() {
            var e = new Xi;
            return e.depthTest = !1, e.blend = !0, e
        }, Object.defineProperties(Xi.prototype, ji);
        var Gi = function(e) {
            function t(i, r, n) {
                var a = Ni.from(i || t.defaultVertexSrc, r || t.defaultFragmentSrc);
                e.call(this, a, n), this.padding = 0, this.resolution = N.FILTER_RESOLUTION, this.enabled = !0, this.autoFit = !0, this.legacy = !!this.program.attributeData.aTextureCoord, this.state = new Xi
            }
            e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
            var i = {
                    blendMode: {
                        configurable: !0
                    }
                },
                r = {
                    defaultVertexSrc: {
                        configurable: !0
                    },
                    defaultFragmentSrc: {
                        configurable: !0
                    }
                };
            return t.prototype.apply = function(e, t, i, r, n) {
                e.applyFilter(this, t, i, r, n)
            }, i.blendMode.get = function() {
                return this.state.blendMode
            }, i.blendMode.set = function(e) {
                this.state.blendMode = e
            }, r.defaultVertexSrc.get = function() {
                return "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n    gl_Position = filterVertexPosition();\n    vTextureCoord = filterTextureCoord();\n}\n"
            }, r.defaultFragmentSrc.get = function() {
                return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n   gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n"
            }, Object.defineProperties(t.prototype, i), Object.defineProperties(t, r), t
        }(Ui);
        Gi.SOURCE_KEY_MAP = {};
        var $i = "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",
            Hi = "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform float npmAlpha;\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    float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n    original *= (alphaMul * masky.r * alpha * clip);\n\n    gl_FragColor = original;\n}\n",
            Wi = new Be,
            Yi = function(e, t) {
                this._texture = e, this.mapCoord = new Be, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._updateID = -1, this.clampOffset = 0, this.clampMargin = void 0 === t ? .5 : t, this.isSimple = !1
            },
            zi = {
                texture: {
                    configurable: !0
                }
            };
        zi.texture.get = function() {
            return this._texture
        }, zi.texture.set = function(e) {
            this._texture = e, this._updateID = -1
        }, Yi.prototype.multiplyUvs = function(e, t) {
            void 0 === t && (t = e);
            for (var i = this.mapCoord, r = 0; r < e.length; r += 2) {
                var n = e[r],
                    a = e[r + 1];
                t[r] = n * i.a + a * i.c + i.tx, t[r + 1] = n * i.b + a * i.d + i.ty
            }
            return t
        }, Yi.prototype.update = function(e) {
            var t = this._texture;
            if (!t || !t.valid) return !1;
            if (!e && this._updateID === t._updateID) return !1;
            this._updateID = t._updateID;
            var i = t._uvs;
            this.mapCoord.set(i.x1 - i.x0, i.y1 - i.y0, i.x3 - i.x0, i.y3 - i.y0, i.x0, i.y0);
            var r = t.orig,
                n = t.trim;
            n && (Wi.set(r.width / n.width, 0, 0, r.height / n.height, -n.x / n.width, -n.y / n.height), this.mapCoord.append(Wi));
            var a = t.baseTexture,
                s = this.uClampFrame,
                o = this.clampMargin / a.resolution,
                u = this.clampOffset;
            return s[0] = (t._frame.x + o + u) / a.width, s[1] = (t._frame.y + o + u) / a.height, s[2] = (t._frame.x + t._frame.width - o + u) / a.width, s[3] = (t._frame.y + t._frame.height - o + u) / a.height, this.uClampOffset[0] = u / a.realWidth, this.uClampOffset[1] = u / a.realHeight, this.isSimple = t._frame.width === a.width && t._frame.height === a.height && 0 === t.rotate, !0
        }, Object.defineProperties(Yi.prototype, zi);
        var qi = function(e) {
                function t(t) {
                    var i = new Be;
                    e.call(this, $i, Hi), t.renderable = !1, this.maskSprite = t, this.maskMatrix = i
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.apply = function(e, t, i, r) {
                    var n = this.maskSprite,
                        a = this.maskSprite.texture;
                    a.valid && (a.transform || (a.transform = new Yi(a, 0)), a.transform.update(), this.uniforms.npmAlpha = a.baseTexture.alphaMode ? 0 : 1, this.uniforms.mask = a, this.uniforms.otherMatrix = e.calculateSpriteMatrix(this.maskMatrix, n).prepend(a.transform.mapCoord), this.uniforms.alpha = n.worldAlpha, this.uniforms.maskClamp = a.transform.uClampFrame, e.applyFilter(this, t, i, r))
                }, t
            }(Gi),
            Ji = function(e) {
                function t(t) {
                    e.call(this, t), this.scissorRenderTarget = null, this.enableScissor = !1, this.alphaMaskPool = [], this.maskDataPool = [], this.maskStack = [], this.alphaMaskIndex = 0
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.setMaskStack = function(e) {
                    this.maskStack = e, this.renderer.scissor.setMaskStack(e), this.renderer.stencil.setMaskStack(e)
                }, t.prototype.push = function(e, t) {
                    if (!t.isMaskData) {
                        var i = this.maskDataPool.pop() || new pi;
                        i.pooled = !0, i.maskObject = t, t = i
                    }
                    switch (t.autoDetect && this.detect(t), t.copyCountersOrReset(this.maskStack[this.maskStack.length - 1]), t._target = e, t.type) {
                        case B.SCISSOR:
                            this.maskStack.push(t), this.renderer.scissor.push(t);
                            break;
                        case B.STENCIL:
                            this.maskStack.push(t), this.renderer.stencil.push(t);
                            break;
                        case B.SPRITE:
                            t.copyCountersOrReset(null), this.pushSpriteMask(t), this.maskStack.push(t)
                    }
                }, t.prototype.pop = function(e) {
                    var t = this.maskStack.pop();
                    if (t && t._target === e) {
                        switch (t.type) {
                            case B.SCISSOR:
                                this.renderer.scissor.pop();
                                break;
                            case B.STENCIL:
                                this.renderer.stencil.pop(t.maskObject);
                                break;
                            case B.SPRITE:
                                this.popSpriteMask()
                        }
                        t.reset(), t.pooled && this.maskDataPool.push(t)
                    }
                }, t.prototype.detect = function(e) {
                    var t = e.maskObject;
                    if (t.isSprite) e.type = B.SPRITE;
                    else if (e.type = B.STENCIL, this.enableScissor && t.isFastRect && t.isFastRect()) {
                        var i = t.worldTransform,
                            r = Math.atan2(i.b, i.a),
                            n = Math.atan2(i.d, i.c);
                        r = Math.round(r * (180 / Math.PI) * 100), n = ((n = Math.round(n * (180 / Math.PI) * 100) - r) % 18e3 + 18e3) % 18e3, 0 === (r = (r % 9e3 + 9e3) % 9e3) && 9e3 === n && (e.type = B.SCISSOR)
                    }
                }, t.prototype.pushSpriteMask = function(e) {
                    var t = e.maskObject,
                        i = e._target,
                        r = this.alphaMaskPool[this.alphaMaskIndex];
                    r || (r = this.alphaMaskPool[this.alphaMaskIndex] = [new qi(t)]), r[0].resolution = this.renderer.resolution, r[0].maskSprite = t;
                    var n = i.filterArea;
                    i.filterArea = t.getBounds(!0), this.renderer.filter.push(i, r), i.filterArea = n, this.alphaMaskIndex++
                }, t.prototype.popSpriteMask = function() {
                    this.renderer.filter.pop(), this.alphaMaskIndex--
                }, t
            }(Dt),
            Qi = function(e) {
                function t(t) {
                    e.call(this, t), this.maskStack = [], this.glConst = 0
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.getStackLength = function() {
                    return this.maskStack.length
                }, t.prototype.setMaskStack = function(e) {
                    var t = this.renderer.gl,
                        i = this.getStackLength();
                    this.maskStack = e;
                    var r = this.getStackLength();
                    r !== i && (0 === r ? t.disable(this.glConst) : (t.enable(this.glConst), this._useCurrent()))
                }, t.prototype._useCurrent = function() {}, t.prototype.destroy = function() {
                    e.prototype.destroy.call(this, this), this.maskStack = null
                }, t
            }(Dt),
            Zi = function(e) {
                function t(t) {
                    e.call(this, t), this.glConst = WebGLRenderingContext.SCISSOR_TEST
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.getStackLength = function() {
                    var e = this.maskStack[this.maskStack.length - 1];
                    return e ? e._scissorCounter : 0
                }, t.prototype.push = function(e) {
                    var t = e.maskObject;
                    t.renderable = !0;
                    var i = e._scissorRect,
                        r = t.getBounds(!0),
                        n = this.renderer.gl;
                    t.renderable = !1, i ? r.fit(i) : n.enable(n.SCISSOR_TEST), e._scissorCounter++, e._scissorRect = r, this._useCurrent()
                }, t.prototype.pop = function() {
                    var e = this.renderer.gl;
                    this.getStackLength() > 0 ? this._useCurrent() : e.disable(e.SCISSOR_TEST)
                }, t.prototype._useCurrent = function() {
                    var e = this.maskStack[this.maskStack.length - 1]._scissorRect,
                        t = this.renderer.renderTexture.current,
                        i = this.renderer.projection,
                        r = i.transform,
                        n = i.sourceFrame,
                        a = i.destinationFrame,
                        s = t ? t.resolution : this.renderer.resolution,
                        o = (e.x - n.x) * s + a.x,
                        u = (e.y - n.y) * s + a.y,
                        h = e.width * s,
                        l = e.height * s;
                    r && (o += r.tx * s, u += r.ty * s), t || (u = this.renderer.height - l - u), this.renderer.gl.scissor(o, u, h, l)
                }, t
            }(Qi),
            Ki = function(e) {
                function t(t) {
                    e.call(this, t), this.glConst = WebGLRenderingContext.STENCIL_TEST
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.getStackLength = function() {
                    var e = this.maskStack[this.maskStack.length - 1];
                    return e ? e._stencilCounter : 0
                }, t.prototype.push = function(e) {
                    var t = e.maskObject,
                        i = this.renderer.gl,
                        r = e._stencilCounter;
                    0 === r && (this.renderer.framebuffer.forceStencil(), i.enable(i.STENCIL_TEST)), e._stencilCounter++, i.colorMask(!1, !1, !1, !1), i.stencilFunc(i.EQUAL, r, this._getBitwiseMask()), i.stencilOp(i.KEEP, i.KEEP, i.INCR), t.renderable = !0, t.render(this.renderer), this.renderer.batch.flush(), t.renderable = !1, this._useCurrent()
                }, t.prototype.pop = function(e) {
                    var t = this.renderer.gl;
                    0 === this.getStackLength() ? (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), e.renderable = !0, e.render(this.renderer), this.renderer.batch.flush(), e.renderable = !1, this._useCurrent())
                }, t.prototype._useCurrent = function() {
                    var e = this.renderer.gl;
                    e.colorMask(!0, !0, !0, !0), e.stencilFunc(e.EQUAL, this.getStackLength(), this._getBitwiseMask()), e.stencilOp(e.KEEP, e.KEEP, e.KEEP)
                }, t.prototype._getBitwiseMask = function() {
                    return (1 << this.getStackLength()) - 1
                }, t
            }(Qi),
            er = function(e) {
                function t(t) {
                    e.call(this, t), this.destinationFrame = null, this.sourceFrame = null, this.defaultFrame = null, this.projectionMatrix = new Be, this.transform = null
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.update = function(e, t, i, r) {
                    this.destinationFrame = e || this.destinationFrame || this.defaultFrame, this.sourceFrame = t || this.sourceFrame || e, this.calculateProjection(this.destinationFrame, this.sourceFrame, i, r), this.transform && this.projectionMatrix.append(this.transform);
                    var n = this.renderer;
                    n.globalUniforms.uniforms.projectionMatrix = this.projectionMatrix, n.globalUniforms.update(), n.shader.shader && n.shader.syncUniformGroup(n.shader.shader.uniforms.globals)
                }, t.prototype.calculateProjection = function(e, t, i, r) {
                    var n = this.projectionMatrix;
                    r ? (n.a = 1 / e.width * 2 * i, n.d = -1 / e.height * 2 * i, n.tx = -1 - t.x * n.a, n.ty = 1 - t.y * n.d) : (n.a = 1 / e.width * 2 * i, n.d = 1 / e.height * 2 * i, n.tx = -1 - t.x * n.a, n.ty = -1 - t.y * n.d)
                }, t.prototype.setTransform = function() {}, t
            }(Dt),
            tr = new We,
            ir = function(e) {
                function t(t) {
                    e.call(this, t), this.clearColor = t._backgroundColorRgba, this.defaultMaskStack = [], this.current = null, this.sourceFrame = new We, this.destinationFrame = new We
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.bind = function(e, t, i) {
                    void 0 === e && (e = null), this.current = e;
                    var r, n = this.renderer;
                    if (e) {
                        var a = e.baseTexture;
                        r = a.resolution, i || (tr.width = a.realWidth, tr.height = a.realHeight, i = tr), t || (t = i), this.renderer.framebuffer.bind(a.framebuffer, i), this.renderer.projection.update(i, t, r, !1), this.renderer.mask.setMaskStack(a.maskStack)
                    } else r = this.renderer.resolution, i || (tr.width = n.width, tr.height = n.height, i = tr), t || (t = i), n.framebuffer.bind(null, i), this.renderer.projection.update(i, t, r, !0), this.renderer.mask.setMaskStack(this.defaultMaskStack);
                    this.sourceFrame.copyFrom(t), this.destinationFrame.x = i.x / r, this.destinationFrame.y = i.y / r, this.destinationFrame.width = i.width / r, this.destinationFrame.height = i.height / r, t === i && this.sourceFrame.copyFrom(this.destinationFrame)
                }, t.prototype.clear = function(e) {
                    e = this.current ? e || this.current.baseTexture.clearColor : e || this.clearColor, this.renderer.framebuffer.clear(e[0], e[1], e[2], e[3])
                }, t.prototype.resize = function() {
                    this.bind(null)
                }, t.prototype.reset = function() {
                    this.bind(null)
                }, t
            }(Dt),
            rr = function(e, t) {
                this.program = e, this.uniformData = t, this.uniformGroups = {}
            };
        rr.prototype.destroy = function() {
            this.uniformData = null, this.uniformGroups = null, this.program = null
        };
        var nr = 0,
            ar = {
                textureCount: 0
            },
            sr = function(e) {
                function t(t) {
                    e.call(this, t), this.systemCheck(), this.gl = null, this.shader = null, this.program = null, this.cache = {}, this.id = nr++
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.systemCheck = function() {
                    if (! function() {
                            if ("boolean" == typeof Ci) return Ci;
                            try {
                                var e = new Function("param1", "param2", "param3", "return param1[param2] === param3;");
                                Ci = !0 === e({
                                    a: "b"
                                }, "a", "b")
                            } catch (e) {
                                Ci = !1
                            }
                            return Ci
                        }()) throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")
                }, t.prototype.contextChange = function(e) {
                    this.gl = e, this.reset()
                }, t.prototype.bind = function(e, t) {
                    e.uniforms.globals = this.renderer.globalUniforms;
                    var i = e.program,
                        r = i.glPrograms[this.renderer.CONTEXT_UID] || this.generateShader(e);
                    return this.shader = e, this.program !== i && (this.program = i, this.gl.useProgram(r.program)), t || (ar.textureCount = 0, this.syncUniformGroup(e.uniformGroup, ar)), r
                }, t.prototype.setUniforms = function(e) {
                    var t = this.shader.program,
                        i = t.glPrograms[this.renderer.CONTEXT_UID];
                    t.syncUniforms(i.uniformData, e, this.renderer)
                }, t.prototype.syncUniformGroup = function(e, t) {
                    var i = this.getglProgram();
                    e.static && e.dirtyId === i.uniformGroups[e.id] || (i.uniformGroups[e.id] = e.dirtyId, this.syncUniforms(e, i, t))
                }, t.prototype.syncUniforms = function(e, t, i) {
                    (e.syncUniforms[this.shader.program.id] || this.createSyncGroups(e))(t.uniformData, e.uniforms, this.renderer, i)
                }, t.prototype.createSyncGroups = function(e) {
                    var t = this.getSignature(e, this.shader.program.uniformData);
                    return this.cache[t] || (this.cache[t] = function(e, t) {
                        var i = "var v = null;\n    var cv = null\n    var t = 0;\n    var gl = renderer.gl\n    ";
                        for (var r in e.uniforms) {
                            var n = t[r];
                            if (n)
                                if ("float" === n.type && 1 === n.size) i += "\n            if(uv." + r + " !== ud." + r + ".value)\n            {\n                ud." + r + ".value = uv." + r + "\n                gl.uniform1f(ud." + r + ".location, uv." + r + ")\n            }\n";
                                else if ("sampler2D" !== n.type && "samplerCube" !== n.type && "sampler2DArray" !== n.type || 1 !== n.size || n.isArray)
                                if ("mat3" === n.type && 1 === n.size) void 0 !== e.uniforms[r].a ? i += "\n                gl.uniformMatrix3fv(ud." + r + ".location, false, uv." + r + ".toArray(true));\n                \n" : i += "\n                gl.uniformMatrix3fv(ud." + r + ".location, false, uv." + r + ");\n                \n";
                                else if ("vec2" === n.type && 1 === n.size) void 0 !== e.uniforms[r].x ? i += "\n                cv = ud." + r + ".value;\n                v = uv." + r + ";\n\n                if(cv[0] !== v.x || cv[1] !== v.y)\n                {\n                    cv[0] = v.x;\n                    cv[1] = v.y;\n                    gl.uniform2f(ud." + r + ".location, v.x, v.y);\n                }\n" : i += "\n                cv = ud." + r + ".value;\n                v = uv." + r + ";\n\n                if(cv[0] !== v[0] || cv[1] !== v[1])\n                {\n                    cv[0] = v[0];\n                    cv[1] = v[1];\n                    gl.uniform2f(ud." + r + ".location, v[0], v[1]);\n                }\n                \n";
                            else if ("vec4" === n.type && 1 === n.size) void 0 !== e.uniforms[r].width ? i += "\n                cv = ud." + r + ".value;\n                v = uv." + r + ";\n\n                if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n                {\n                    cv[0] = v.x;\n                    cv[1] = v.y;\n                    cv[2] = v.width;\n                    cv[3] = v.height;\n                    gl.uniform4f(ud." + r + ".location, v.x, v.y, v.width, v.height)\n                }\n" : i += "\n                cv = ud." + r + ".value;\n                v = uv." + r + ";\n\n                if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n                {\n                    cv[0] = v[0];\n                    cv[1] = v[1];\n                    cv[2] = v[2];\n                    cv[3] = v[3];\n\n                    gl.uniform4f(ud." + r + ".location, v[0], v[1], v[2], v[3])\n                }\n                \n";
                            else {
                                i += "\n            cv = ud." + r + ".value;\n            v = uv." + r + ";\n            " + (1 === n.size ? Ii : Mi)[n.type].replace("location", "ud." + r + ".location") + ";\n"
                            } else i += "\n\n            t = syncData.textureCount++;\n\n            renderer.texture.bind(uv." + r + ", t);\n            \n            if(ud." + r + ".value !== t)\n            {\n                ud." + r + ".value = t;\n                gl.uniform1i(ud." + r + ".location, t);\n; // eslint-disable-line max-len\n            }\n";
                            else e.uniforms[r].group && (i += "\n                    renderer.shader.syncUniformGroup(uv." + r + ", syncData);\n                ")
                        }
                        return new Function("ud", "uv", "renderer", "syncData", i)
                    }(e, this.shader.program.uniformData)), e.syncUniforms[this.shader.program.id] = this.cache[t], e.syncUniforms[this.shader.program.id]
                }, t.prototype.getSignature = function(e, t) {
                    var i = e.uniforms,
                        r = [];
                    for (var n in i) r.push(n), t[n] && r.push(t[n].type);
                    return r.join("-")
                }, t.prototype.getglProgram = function() {
                    return this.shader ? this.shader.program.glPrograms[this.renderer.CONTEXT_UID] : null
                }, t.prototype.generateShader = function(e) {
                    var t = this.gl,
                        i = e.program,
                        r = {};
                    for (var n in i.attributeData) r[n] = i.attributeData[n].location;
                    var a = vi(t, i.vertexSrc, i.fragmentSrc, r),
                        s = {};
                    for (var o in i.uniformData) {
                        var u = i.uniformData[o];
                        s[o] = {
                            location: t.getUniformLocation(a, o),
                            value: _i(u.type, u.size)
                        }
                    }
                    var h = new rr(a, s);
                    return i.glPrograms[this.renderer.CONTEXT_UID] = h, h
                }, t.prototype.reset = function() {
                    this.program = null, this.shader = null
                }, t.prototype.destroy = function() {
                    this.destroyed = !0
                }, t
            }(Dt);
        var or = 0,
            ur = 1,
            hr = 2,
            lr = 3,
            fr = 4,
            cr = function(e) {
                function t(t) {
                    e.call(this, t), this.gl = null, this.stateId = 0, this.polygonOffset = 0, this.blendMode = T.NONE, this._blendEq = !1, this.map = [], this.map[or] = this.setBlend, this.map[ur] = this.setOffset, this.map[hr] = this.setCullFace, this.map[lr] = this.setDepthTest, this.map[fr] = this.setFrontFace, this.checks = [], this.defaultState = new Xi, this.defaultState.blend = !0, this.defaultState.depth = !0
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.contextChange = function(e) {
                    this.gl = e, this.blendModes = function(e, t) {
                        return void 0 === t && (t = []), t[T.NORMAL] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.ADD] = [e.ONE, e.ONE], t[T.MULTIPLY] = [e.DST_COLOR, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.SCREEN] = [e.ONE, e.ONE_MINUS_SRC_COLOR, e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.OVERLAY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.DARKEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.LIGHTEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.COLOR_DODGE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.COLOR_BURN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.HARD_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.SOFT_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.DIFFERENCE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.EXCLUSION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.HUE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.SATURATION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.COLOR] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.LUMINOSITY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.NONE] = [0, 0], t[T.NORMAL_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.ADD_NPM] = [e.SRC_ALPHA, e.ONE, e.ONE, e.ONE], t[T.SCREEN_NPM] = [e.SRC_ALPHA, e.ONE_MINUS_SRC_COLOR, e.ONE, e.ONE_MINUS_SRC_ALPHA], t[T.SRC_IN] = [e.DST_ALPHA, e.ZERO], t[T.SRC_OUT] = [e.ONE_MINUS_DST_ALPHA, e.ZERO], t[T.SRC_ATOP] = [e.DST_ALPHA, e.ONE_MINUS_SRC_ALPHA], t[T.DST_OVER] = [e.ONE_MINUS_DST_ALPHA, e.ONE], t[T.DST_IN] = [e.ZERO, e.SRC_ALPHA], t[T.DST_OUT] = [e.ZERO, e.ONE_MINUS_SRC_ALPHA], t[T.DST_ATOP] = [e.ONE_MINUS_DST_ALPHA, e.SRC_ALPHA], t[T.XOR] = [e.ONE_MINUS_DST_ALPHA, e.ONE_MINUS_SRC_ALPHA], t[T.SUBTRACT] = [e.ONE, e.ONE, e.ONE, e.ONE, e.FUNC_REVERSE_SUBTRACT, e.FUNC_ADD], t
                    }(e), this.set(this.defaultState), this.reset()
                }, t.prototype.set = function(e) {
                    if (e = e || this.defaultState, this.stateId !== e.data) {
                        for (var t = this.stateId ^ e.data, i = 0; t;) 1 & t && this.map[i].call(this, !!(e.data & 1 << i)), t >>= 1, i++;
                        this.stateId = e.data
                    }
                    for (var r = 0; r < this.checks.length; r++) this.checks[r](this, e)
                }, t.prototype.forceState = function(e) {
                    e = e || this.defaultState;
                    for (var t = 0; t < this.map.length; t++) this.map[t].call(this, !!(e.data & 1 << t));
                    for (var i = 0; i < this.checks.length; i++) this.checks[i](this, e);
                    this.stateId = e.data
                }, t.prototype.setBlend = function(e) {
                    this.updateCheck(t.checkBlendMode, e), this.gl[e ? "enable" : "disable"](this.gl.BLEND)
                }, t.prototype.setOffset = function(e) {
                    this.updateCheck(t.checkPolygonOffset, e), this.gl[e ? "enable" : "disable"](this.gl.POLYGON_OFFSET_FILL)
                }, t.prototype.setDepthTest = function(e) {
                    this.gl[e ? "enable" : "disable"](this.gl.DEPTH_TEST)
                }, t.prototype.setCullFace = function(e) {
                    this.gl[e ? "enable" : "disable"](this.gl.CULL_FACE)
                }, t.prototype.setFrontFace = function(e) {
                    this.gl.frontFace(this.gl[e ? "CW" : "CCW"])
                }, t.prototype.setBlendMode = function(e) {
                    if (e !== this.blendMode) {
                        this.blendMode = e;
                        var t = this.blendModes[e],
                            i = this.gl;
                        2 === t.length ? i.blendFunc(t[0], t[1]) : i.blendFuncSeparate(t[0], t[1], t[2], t[3]), 6 === t.length ? (this._blendEq = !0, i.blendEquationSeparate(t[4], t[5])) : this._blendEq && (this._blendEq = !1, i.blendEquationSeparate(i.FUNC_ADD, i.FUNC_ADD))
                    }
                }, t.prototype.setPolygonOffset = function(e, t) {
                    this.gl.polygonOffset(e, t)
                }, t.prototype.reset = function() {
                    this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.forceState(0), this._blendEq = !0, this.blendMode = -1, this.setBlendMode(0)
                }, t.prototype.updateCheck = function(e, t) {
                    var i = this.checks.indexOf(e);
                    t && -1 === i ? this.checks.push(e) : t || -1 === i || this.checks.splice(i, 1)
                }, t.checkBlendMode = function(e, t) {
                    e.setBlendMode(t.blendMode)
                }, t.checkPolygonOffset = function(e, t) {
                    e.setPolygonOffset(t.polygonOffset, 0)
                }, t
            }(Dt),
            dr = function(e) {
                function t(t) {
                    e.call(this, t), this.count = 0, this.checkCount = 0, this.maxIdle = N.GC_MAX_IDLE, this.checkCountMax = N.GC_MAX_CHECK_COUNT, this.mode = N.GC_MODE
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.postrender = function() {
                    this.renderer.renderingToScreen && (this.count++, this.mode !== D.MANUAL && (this.checkCount++, this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())))
                }, t.prototype.run = function() {
                    for (var e = this.renderer.texture, t = e.managedTextures, i = !1, r = 0; r < t.length; r++) {
                        var n = t[r];
                        !n.framebuffer && this.count - n.touched > this.maxIdle && (e.destroyTexture(n, !0), t[r] = null, i = !0)
                    }
                    if (i) {
                        for (var a = 0, s = 0; s < t.length; s++) null !== t[s] && (t[a++] = t[s]);
                        t.length = a
                    }
                }, t.prototype.unload = function(e) {
                    var t = this.renderer.textureSystem;
                    e._texture && e._texture._glRenderTargets && t.destroyTexture(e._texture);
                    for (var i = e.children.length - 1; i >= 0; i--) this.unload(e.children[i])
                }, t
            }(Dt),
            pr = function(e) {
                this.texture = e, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071, this.type = 6408, this.internalFormat = 5121
            },
            vr = function(e) {
                function t(t) {
                    e.call(this, t), this.boundTextures = [], this.currentLocation = -1, this.managedTextures = [], this._unknownBoundTextures = !1, this.unknownTexture = new Et
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.contextChange = function() {
                    var e = this.gl = this.renderer.gl;
                    this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.webGLVersion = this.renderer.context.webGLVersion;
                    var t = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);
                    this.boundTextures.length = t;
                    for (var i = 0; i < t; i++) this.boundTextures[i] = null;
                    this.emptyTextures = {};
                    var r = new pr(e.createTexture());
                    e.bindTexture(e.TEXTURE_2D, r.texture), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, 1, 1, 0, e.RGBA, e.UNSIGNED_BYTE, new Uint8Array(4)), this.emptyTextures[e.TEXTURE_2D] = r, this.emptyTextures[e.TEXTURE_CUBE_MAP] = new pr(e.createTexture()), e.bindTexture(e.TEXTURE_CUBE_MAP, this.emptyTextures[e.TEXTURE_CUBE_MAP].texture);
                    for (var n = 0; n < 6; n++) e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X + n, 0, e.RGBA, 1, 1, 0, e.RGBA, e.UNSIGNED_BYTE, null);
                    e.texParameteri(e.TEXTURE_CUBE_MAP, e.TEXTURE_MAG_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_CUBE_MAP, e.TEXTURE_MIN_FILTER, e.LINEAR);
                    for (var a = 0; a < this.boundTextures.length; a++) this.bind(null, a)
                }, t.prototype.bind = function(e, t) {
                    void 0 === t && (t = 0);
                    var i = this.gl;
                    if (e) {
                        if ((e = e.baseTexture || e).valid) {
                            e.touched = this.renderer.textureGC.count;
                            var r = e._glTextures[this.CONTEXT_UID] || this.initTexture(e);
                            this.boundTextures[t] !== e && (this.currentLocation !== t && (this.currentLocation = t, i.activeTexture(i.TEXTURE0 + t)), i.bindTexture(e.target, r.texture)), r.dirtyId !== e.dirtyId && (this.currentLocation !== t && (this.currentLocation = t, i.activeTexture(i.TEXTURE0 + t)), this.updateTexture(e)), this.boundTextures[t] = e
                        }
                    } else this.currentLocation !== t && (this.currentLocation = t, i.activeTexture(i.TEXTURE0 + t)), i.bindTexture(i.TEXTURE_2D, this.emptyTextures[i.TEXTURE_2D].texture), this.boundTextures[t] = null
                }, t.prototype.reset = function() {
                    this._unknownBoundTextures = !0, this.currentLocation = -1;
                    for (var e = 0; e < this.boundTextures.length; e++) this.boundTextures[e] = this.unknownTexture
                }, t.prototype.unbind = function(e) {
                    var t = this.gl,
                        i = this.boundTextures;
                    if (this._unknownBoundTextures) {
                        this._unknownBoundTextures = !1;
                        for (var r = 0; r < i.length; r++) i[r] === this.unknownTexture && this.bind(null, r)
                    }
                    for (var n = 0; n < i.length; n++) i[n] === e && (this.currentLocation !== n && (t.activeTexture(t.TEXTURE0 + n), this.currentLocation = n), t.bindTexture(t.TEXTURE_2D, this.emptyTextures[e.target].texture), i[n] = null)
                }, t.prototype.initTexture = function(e) {
                    var t = new pr(this.gl.createTexture());
                    return t.dirtyId = -1, e._glTextures[this.CONTEXT_UID] = t, this.managedTextures.push(e), e.on("dispose", this.destroyTexture, this), t
                }, t.prototype.initTextureType = function(e, t) {
                    if (t.internalFormat = e.format, t.type = e.type, 2 === this.webGLVersion) {
                        var i = this.renderer.gl;
                        e.type === i.FLOAT && e.format === i.RGBA && (t.internalFormat = i.RGBA32F), e.type === I.HALF_FLOAT && (t.type = i.HALF_FLOAT), t.type === i.HALF_FLOAT && e.format === i.RGBA && (t.internalFormat = i.RGBA16F)
                    }
                }, t.prototype.updateTexture = function(e) {
                    var t = e._glTextures[this.CONTEXT_UID];
                    if (t) {
                        var i = this.renderer;
                        if (this.initTextureType(e, t), e.resource && e.resource.upload(i, e, t));
                        else {
                            var r = e.realWidth,
                                n = e.realHeight,
                                a = i.gl;
                            (t.width !== r || t.height !== n || t.dirtyId < 0) && (t.width = r, t.height = n, a.texImage2D(e.target, 0, t.internalFormat, r, n, 0, e.format, t.type, null))
                        }
                        e.dirtyStyleId !== t.dirtyStyleId && this.updateTextureStyle(e), t.dirtyId = e.dirtyId
                    }
                }, t.prototype.destroyTexture = function(e, t) {
                    var i = this.gl;
                    if ((e = e.baseTexture || e)._glTextures[this.CONTEXT_UID] && (this.unbind(e), i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture), e.off("dispose", this.destroyTexture, this), delete e._glTextures[this.CONTEXT_UID], !t)) {
                        var r = this.managedTextures.indexOf(e); - 1 !== r && ce(this.managedTextures, r, 1)
                    }
                }, t.prototype.updateTextureStyle = function(e) {
                    var t = e._glTextures[this.CONTEXT_UID];
                    t && (e.mipmap !== O.POW2 && 2 === this.webGLVersion || e.isPowerOfTwo ? t.mipmap = e.mipmap >= 1 : t.mipmap = 0, 2 === this.webGLVersion || e.isPowerOfTwo ? t.wrapMode = e.wrapMode : t.wrapMode = C.CLAMP, e.resource && e.resource.style(this.renderer, e, t) || this.setStyle(e, t), t.dirtyStyleId = e.dirtyStyleId)
                }, t.prototype.setStyle = function(e, t) {
                    var i = this.gl;
                    if (t.mipmap && i.generateMipmap(e.target), i.texParameteri(e.target, i.TEXTURE_WRAP_S, t.wrapMode), i.texParameteri(e.target, i.TEXTURE_WRAP_T, t.wrapMode), t.mipmap) {
                        i.texParameteri(e.target, i.TEXTURE_MIN_FILTER, e.scaleMode === M.LINEAR ? i.LINEAR_MIPMAP_LINEAR : i.NEAREST_MIPMAP_NEAREST);
                        var r = this.renderer.context.extensions.anisotropicFiltering;
                        if (r && e.anisotropicLevel > 0 && e.scaleMode === M.LINEAR) {
                            var n = Math.min(e.anisotropicLevel, i.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));
                            i.texParameterf(e.target, r.TEXTURE_MAX_ANISOTROPY_EXT, n)
                        }
                    } else i.texParameteri(e.target, i.TEXTURE_MIN_FILTER, e.scaleMode === M.LINEAR ? i.LINEAR : i.NEAREST);
                    i.texParameteri(e.target, i.TEXTURE_MAG_FILTER, e.scaleMode === M.LINEAR ? i.LINEAR : i.NEAREST)
                }, t
            }(Dt),
            mr = {
                FilterSystem: ai,
                BatchSystem: oi,
                ContextSystem: hi,
                FramebufferSystem: li,
                GeometrySystem: di,
                MaskSystem: Ji,
                ScissorSystem: Zi,
                StencilSystem: Ki,
                ProjectionSystem: er,
                RenderTextureSystem: ir,
                ShaderSystem: sr,
                StateSystem: cr,
                TextureGCSystem: dr,
                TextureSystem: vr
            },
            _r = new Be,
            br = function(e) {
                function t(t, i) {
                    e.call(this), (i = Object.assign({}, N.RENDER_OPTIONS, i)).roundPixels && (N.ROUND_PIXELS = i.roundPixels, _e(0, "Renderer roundPixels option is deprecated, please use PIXI.settings.ROUND_PIXELS", 2)), this.options = i, this.type = k.UNKNOWN, this.screen = new We(0, 0, i.width, i.height), this.view = i.view || document.createElement("canvas"), this.resolution = i.resolution || N.RESOLUTION, this.transparent = i.transparent, this.autoDensity = i.autoDensity || i.autoResize || !1, this.preserveDrawingBuffer = i.preserveDrawingBuffer, this.clearBeforeRender = i.clearBeforeRender, this._backgroundColor = 0, this._backgroundColorRgba = [0, 0, 0, 0], this._backgroundColorString = "#000000", this.backgroundColor = i.backgroundColor || this._backgroundColor, this._tempDisplayObjectParent = new et, this._lastObjectRendered = this._tempDisplayObjectParent, this.plugins = {}
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    },
                    backgroundColor: {
                        configurable: !0
                    }
                };
                return t.prototype.initPlugins = function(e) {
                    for (var t in e) this.plugins[t] = new e[t](this)
                }, i.width.get = function() {
                    return this.view.width
                }, i.height.get = function() {
                    return this.view.height
                }, t.prototype.resize = function(e, t) {
                    this.screen.width = e, this.screen.height = t, this.view.width = e * this.resolution, this.view.height = t * this.resolution, this.autoDensity && (this.view.style.width = e + "px", this.view.style.height = t + "px")
                }, t.prototype.generateTexture = function(e, t, i, r) {
                    0 === (r = r || e.getLocalBounds()).width && (r.width = 1), 0 === r.height && (r.height = 1);
                    var n = Gt.create({
                        width: 0 | r.width,
                        height: 0 | r.height,
                        scaleMode: t,
                        resolution: i
                    });
                    return _r.tx = -r.x, _r.ty = -r.y, this.render(e, n, !1, _r, !!e.parent), n
                }, t.prototype.destroy = function(e) {
                    for (var t in this.plugins) this.plugins[t].destroy(), this.plugins[t] = null;
                    e && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.plugins = null, this.type = k.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoDensity = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null
                }, i.backgroundColor.get = function() {
                    return this._backgroundColor
                }, i.backgroundColor.set = function(e) {
                    this._backgroundColor = e, this._backgroundColorString = Q(e), J(e, this._backgroundColorRgba)
                }, Object.defineProperties(t.prototype, i), t
            }(U.a),
            gr = function(e) {
                function t(i) {
                    void 0 === i && (i = {}), e.call(this, "WebGL", i), i = this.options, this.type = k.WEBGL, this.gl = null, this.CONTEXT_UID = 0, this.runners = {
                        destroy: new _t("destroy"),
                        contextChange: new _t("contextChange", 1),
                        reset: new _t("reset"),
                        update: new _t("update"),
                        postrender: new _t("postrender"),
                        prerender: new _t("prerender"),
                        resize: new _t("resize", 2)
                    }, this.globalUniforms = new ri({
                        projectionMatrix: new Be
                    }, !0), this.addSystem(Ji, "mask").addSystem(hi, "context").addSystem(cr, "state").addSystem(sr, "shader").addSystem(vr, "texture").addSystem(di, "geometry").addSystem(li, "framebuffer").addSystem(Zi, "scissor").addSystem(Ki, "stencil").addSystem(er, "projection").addSystem(dr, "textureGC").addSystem(ai, "filter").addSystem(ir, "renderTexture").addSystem(oi, "batch"), this.initPlugins(t.__plugins), i.context ? this.context.initFromContext(i.context) : this.context.initFromOptions({
                        alpha: this.transparent,
                        antialias: i.antialias,
                        premultipliedAlpha: this.transparent && "notMultiplied" !== this.transparent,
                        stencil: !0,
                        preserveDrawingBuffer: i.preserveDrawingBuffer,
                        powerPreference: this.options.powerPreference
                    }), this.renderingToScreen = !0, z(2 === this.context.webGLVersion ? "WebGL 2" : "WebGL 1"), this.resize(this.options.width, this.options.height)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.create = function(e) {
                    if (q()) return new t(e);
                    throw new Error('WebGL unsupported in this browser, use "pixi.js-legacy" for fallback canvas2d support.')
                }, t.prototype.addSystem = function(e, t) {
                    t || (t = e.name);
                    var i = new e(this);
                    if (this[t]) throw new Error('Whoops! The name "' + t + '" is already in use');
                    for (var r in this[t] = i, this.runners) this.runners[r].add(i);
                    return this
                }, t.prototype.render = function(e, t, i, r, n) {
                    if (this.renderingToScreen = !t, this.runners.prerender.run(), this.emit("prerender"), this.projection.transform = r, !this.context.isLost) {
                        if (t || (this._lastObjectRendered = e), !n) {
                            var a = e.parent;
                            e.parent = this._tempDisplayObjectParent, e.updateTransform(), e.parent = a
                        }
                        this.renderTexture.bind(t), this.batch.currentRenderer.start(), (void 0 !== i ? i : this.clearBeforeRender) && this.renderTexture.clear(), e.render(this), this.batch.currentRenderer.flush(), t && t.baseTexture.update(), this.runners.postrender.run(), this.projection.transform = null, this.emit("postrender")
                    }
                }, t.prototype.resize = function(t, i) {
                    e.prototype.resize.call(this, t, i), this.runners.resize.run(t, i)
                }, t.prototype.reset = function() {
                    return this.runners.reset.run(), this
                }, t.prototype.clear = function() {
                    this.framebuffer.bind(), this.framebuffer.clear()
                }, t.prototype.destroy = function(t) {
                    for (var i in this.runners.destroy.run(), this.runners) this.runners[i].destroy();
                    e.prototype.destroy.call(this, t), this.gl = null
                }, t.registerPlugin = function(e, i) {
                    t.__plugins = t.__plugins || {}, t.__plugins[e] = i
                }, t
            }(br);

        function yr(e) {
            return gr.create(e)
        }
        var Ar = "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}",
            wr = "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n    gl_Position = filterVertexPosition();\n    vTextureCoord = filterTextureCoord();\n}\n",
            xr = function(e) {
                function t() {
                    e.apply(this, arguments)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.from = function(e, i) {
                    return new t(new It(e, i))
                }, t
            }(Et),
            kr = function() {
                this.texArray = null, this.blend = 0, this.type = E.TRIANGLES, this.start = 0, this.size = 0, this.data = null
            },
            Tr = function() {
                this.elements = [], this.ids = [], this.count = 0
            };
        Tr.prototype.clear = function() {
            for (var e = 0; e < this.count; e++) this.elements[e] = null;
            this.count = 0
        };
        var Er = function(e) {
                this.rawBinaryData = new ArrayBuffer(e), this.uint32View = new Uint32Array(this.rawBinaryData), this.float32View = new Float32Array(this.rawBinaryData)
            },
            Sr = {
                int8View: {
                    configurable: !0
                },
                uint8View: {
                    configurable: !0
                },
                int16View: {
                    configurable: !0
                },
                uint16View: {
                    configurable: !0
                },
                int32View: {
                    configurable: !0
                }
            };
        Sr.int8View.get = function() {
            return this._int8View || (this._int8View = new Int8Array(this.rawBinaryData)), this._int8View
        }, Sr.uint8View.get = function() {
            return this._uint8View || (this._uint8View = new Uint8Array(this.rawBinaryData)), this._uint8View
        }, Sr.int16View.get = function() {
            return this._int16View || (this._int16View = new Int16Array(this.rawBinaryData)), this._int16View
        }, Sr.uint16View.get = function() {
            return this._uint16View || (this._uint16View = new Uint16Array(this.rawBinaryData)), this._uint16View
        }, Sr.int32View.get = function() {
            return this._int32View || (this._int32View = new Int32Array(this.rawBinaryData)), this._int32View
        }, Er.prototype.view = function(e) {
            return this[e + "View"]
        }, Er.prototype.destroy = function() {
            this.rawBinaryData = null, this._int8View = null, this._uint8View = null, this._int16View = null, this._uint16View = null, this._int32View = null, this.uint32View = null, this.float32View = null
        }, Er.sizeOf = function(e) {
            switch (e) {
                case "int8":
                case "uint8":
                    return 1;
                case "int16":
                case "uint16":
                    return 2;
                case "int32":
                case "uint32":
                case "float32":
                    return 4;
                default:
                    throw new Error(e + " isn't a valid view type")
            }
        }, Object.defineProperties(Er.prototype, Sr);
        var Pr = function(e) {
            function t(t) {
                e.call(this, t), this.shaderGenerator = null, this.geometryClass = null, this.vertexSize = null, this.state = Xi.for2d(), this.size = 4 * N.SPRITE_BATCH_SIZE, this._vertexCount = 0, this._indexCount = 0, this._bufferedElements = [], this._bufferedTextures = [], this._bufferSize = 0, this._shader = null, this._packedGeometries = [], this._packedGeometryPoolSize = 2, this._flushId = 0, this._aBuffers = {}, this._iBuffers = {}, this.MAX_TEXTURES = 1, this.renderer.on("prerender", this.onPrerender, this), t.runners.contextChange.add(this), this._dcIndex = 0, this._aIndex = 0, this._iIndex = 0, this._attributeBuffer = null, this._indexBuffer = null, this._tempBoundTextures = []
            }
            return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.contextChange = function() {
                var e = this.renderer.gl;
                N.PREFER_ENV === x.WEBGL_LEGACY ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS), N.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = Ri(this.MAX_TEXTURES, e)), this._shader = this.shaderGenerator.generateShader(this.MAX_TEXTURES);
                for (var t = 0; t < this._packedGeometryPoolSize; t++) this._packedGeometries[t] = new this.geometryClass;
                this.initFlushBuffers()
            }, t.prototype.initFlushBuffers = function() {
                for (var e = t._drawCallPool, i = t._textureArrayPool, r = this.size / 4, n = Math.floor(r / this.MAX_TEXTURES) + 1; e.length < r;) e.push(new kr);
                for (; i.length < n;) i.push(new Tr);
                for (var a = 0; a < this.MAX_TEXTURES; a++) this._tempBoundTextures[a] = null
            }, t.prototype.onPrerender = function() {
                this._flushId = 0
            }, t.prototype.render = function(e) {
                e._texture.valid && (this._vertexCount + e.vertexData.length / 2 > this.size && this.flush(), this._vertexCount += e.vertexData.length / 2, this._indexCount += e.indices.length, this._bufferedTextures[this._bufferSize] = e._texture.baseTexture, this._bufferedElements[this._bufferSize++] = e)
            }, t.prototype.buildTexturesAndDrawCalls = function() {
                var e = this._bufferedTextures,
                    i = this.MAX_TEXTURES,
                    r = t._textureArrayPool,
                    n = this.renderer.batch,
                    a = this._tempBoundTextures,
                    s = this.renderer.textureGC.count,
                    o = ++Et._globalBatch,
                    u = 0,
                    h = r[0],
                    l = 0;
                n.copyBoundTextures(a, i);
                for (var f = 0; f < this._bufferSize; ++f) {
                    var c = e[f];
                    e[f] = null, c._batchEnabled !== o && (h.count >= i && (n.boundArray(h, a, o, i), this.buildDrawCalls(h, l, f), l = f, h = r[++u], ++o), c._batchEnabled = o, c.touched = s, h.elements[h.count++] = c)
                }
                h.count > 0 && (n.boundArray(h, a, o, i), this.buildDrawCalls(h, l, this._bufferSize), ++u, ++o);
                for (var d = 0; d < a.length; d++) a[d] = null;
                Et._globalBatch = o
            }, t.prototype.buildDrawCalls = function(e, i, r) {
                var n = this._bufferedElements,
                    a = this._attributeBuffer,
                    s = this._indexBuffer,
                    o = this.vertexSize,
                    u = t._drawCallPool,
                    h = this._dcIndex,
                    l = this._aIndex,
                    f = this._iIndex,
                    c = u[h];
                c.start = this._iIndex, c.texArray = e;
                for (var d = i; d < r; ++d) {
                    var p = n[d],
                        v = p._texture.baseTexture,
                        m = ee[v.alphaMode ? 1 : 0][p.blendMode];
                    n[d] = null, i < d && c.blend !== m && (c.size = f - c.start, i = d, (c = u[++h]).texArray = e, c.start = f), this.packInterleavedGeometry(p, a, s, l, f), l += p.vertexData.length / 2 * o, f += p.indices.length, c.blend = m
                }
                i < r && (c.size = f - c.start, ++h), this._dcIndex = h, this._aIndex = l, this._iIndex = f
            }, t.prototype.bindAndClearTexArray = function(e) {
                for (var t = this.renderer.texture, i = 0; i < e.count; i++) t.bind(e.elements[i], e.ids[i]), e.elements[i] = null;
                e.count = 0
            }, t.prototype.updateGeometry = function() {
                var e = this._packedGeometries,
                    t = this._attributeBuffer,
                    i = this._indexBuffer;
                N.CAN_UPLOAD_SAME_BUFFER ? (e[this._flushId]._buffer.update(t.rawBinaryData), e[this._flushId]._indexBuffer.update(i), this.renderer.geometry.updateBuffers()) : (this._packedGeometryPoolSize <= this._flushId && (this._packedGeometryPoolSize++, e[this._flushId] = new this.geometryClass), e[this._flushId]._buffer.update(t.rawBinaryData), e[this._flushId]._indexBuffer.update(i), this.renderer.geometry.bind(e[this._flushId]), this.renderer.geometry.updateBuffers(), this._flushId++)
            }, t.prototype.drawBatches = function() {
                for (var e = this._dcIndex, i = this.renderer, r = i.gl, n = i.state, a = t._drawCallPool, s = null, o = 0; o < e; o++) {
                    var u = a[o],
                        h = u.texArray,
                        l = u.type,
                        f = u.size,
                        c = u.start,
                        d = u.blend;
                    s !== h && (s = h, this.bindAndClearTexArray(h)), this.state.blendMode = d, n.set(this.state), r.drawElements(l, f, r.UNSIGNED_SHORT, 2 * c)
                }
            }, t.prototype.flush = function() {
                0 !== this._vertexCount && (this._attributeBuffer = this.getAttributeBuffer(this._vertexCount), this._indexBuffer = this.getIndexBuffer(this._indexCount), this._aIndex = 0, this._iIndex = 0, this._dcIndex = 0, this.buildTexturesAndDrawCalls(), this.updateGeometry(), this.drawBatches(), this._bufferSize = 0, this._vertexCount = 0, this._indexCount = 0)
            }, t.prototype.start = function() {
                this.renderer.state.set(this.state), this.renderer.shader.bind(this._shader), N.CAN_UPLOAD_SAME_BUFFER && this.renderer.geometry.bind(this._packedGeometries[this._flushId])
            }, t.prototype.stop = function() {
                this.flush()
            }, t.prototype.destroy = function() {
                for (var t = 0; t < this._packedGeometryPoolSize; t++) this._packedGeometries[t] && this._packedGeometries[t].destroy();
                this.renderer.off("prerender", this.onPrerender, this), this._aBuffers = null, this._iBuffers = null, this._packedGeometries = null, this._attributeBuffer = null, this._indexBuffer = null, this._shader && (this._shader.destroy(), this._shader = null), e.prototype.destroy.call(this)
            }, t.prototype.getAttributeBuffer = function(e) {
                var t = he(Math.ceil(e / 8)),
                    i = fe(t),
                    r = 8 * t;
                this._aBuffers.length <= i && (this._iBuffers.length = i + 1);
                var n = this._aBuffers[r];
                return n || (this._aBuffers[r] = n = new Er(r * this.vertexSize * 4)), n
            }, t.prototype.getIndexBuffer = function(e) {
                var t = he(Math.ceil(e / 12)),
                    i = fe(t),
                    r = 12 * t;
                this._iBuffers.length <= i && (this._iBuffers.length = i + 1);
                var n = this._iBuffers[i];
                return n || (this._iBuffers[i] = n = new Uint16Array(r)), n
            }, t.prototype.packInterleavedGeometry = function(e, t, i, r, n) {
                for (var a = t.uint32View, s = t.float32View, o = r / this.vertexSize, u = e.uvs, h = e.indices, l = e.vertexData, f = e._texture.baseTexture._batchLocation, c = Math.min(e.worldAlpha, 1), d = c < 1 && e._texture.baseTexture.alphaMode ? re(e._tintRGB, c) : e._tintRGB + (255 * c << 24), p = 0; p < l.length; p += 2) s[r++] = l[p], s[r++] = l[p + 1], s[r++] = u[p], s[r++] = u[p + 1], a[r++] = d, s[r++] = f;
                for (var v = 0; v < h.length; v++) i[n++] = o + h[v]
            }, t
        }(si);
        Pr._drawCallPool = [], Pr._textureArrayPool = [];
        var Ir = function(e, t) {
            if (this.vertexSrc = e, this.fragTemplate = t, this.programCache = {}, this.defaultGroupCache = {}, t.indexOf("%count%") < 0) throw new Error('Fragment template must contain "%count%".');
            if (t.indexOf("%forloop%") < 0) throw new Error('Fragment template must contain "%forloop%".')
        };
        Ir.prototype.generateShader = function(e) {
            if (!this.programCache[e]) {
                for (var t = new Int32Array(e), i = 0; i < e; i++) t[i] = i;
                this.defaultGroupCache[e] = ri.from({
                    uSamplers: t
                }, !0);
                var r = this.fragTemplate;
                r = (r = r.replace(/%count%/gi, "" + e)).replace(/%forloop%/gi, this.generateSampleSrc(e)), this.programCache[e] = new Ni(this.vertexSrc, r)
            }
            var n = {
                tint: new Float32Array([1, 1, 1, 1]),
                translationMatrix: new Be,
                default: this.defaultGroupCache[e]
            };
            return new Ui(this.programCache[e], n)
        }, Ir.prototype.generateSampleSrc = function(e) {
            var t = "";
            t += "\n", t += "\n";
            for (var i = 0; i < e; i++) i > 0 && (t += "\nelse "), i < e - 1 && (t += "if(vTextureId < " + i + ".5)"), t += "\n{", t += "\n\tcolor = texture2D(uSamplers[" + i + "], vTextureCoord);", t += "\n}";
            return t += "\n", t += "\n"
        };
        var Mr = function(e) {
                function t(t) {
                    void 0 === t && (t = !1), e.call(this), this._buffer = new Yt(null, t, !1), this._indexBuffer = new Yt(null, t, !0), this.addAttribute("aVertexPosition", this._buffer, 2, !1, I.FLOAT).addAttribute("aTextureCoord", this._buffer, 2, !1, I.FLOAT).addAttribute("aColor", this._buffer, 4, !0, I.UNSIGNED_BYTE).addAttribute("aTextureId", this._buffer, 1, !0, I.FLOAT).addIndex(this._indexBuffer)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
            }(Kt),
            Cr = "precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform vec4 tint;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vTextureId = aTextureId;\n    vColor = aColor * tint;\n}\n",
            Or = "varying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\nuniform sampler2D uSamplers[%count%];\n\nvoid main(void){\n    vec4 color;\n    %forloop%\n    gl_FragColor = color * vColor;\n}\n",
            Rr = function() {},
            Dr = {
                defaultVertexSrc: {
                    configurable: !0
                },
                defaultFragmentTemplate: {
                    configurable: !0
                }
            };
        Rr.create = function(e) {
            var t = Object.assign({
                    vertex: Cr,
                    fragment: Or,
                    geometryClass: Mr,
                    vertexSize: 6
                }, e),
                i = t.vertex,
                r = t.fragment,
                n = t.vertexSize,
                a = t.geometryClass;
            return function(e) {
                function t(t) {
                    e.call(this, t), this.shaderGenerator = new Ir(i, r), this.geometryClass = a, this.vertexSize = n
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
            }(Pr)
        }, Dr.defaultVertexSrc.get = function() {
            return Cr
        }, Dr.defaultFragmentTemplate.get = function() {
            return Or
        }, Object.defineProperties(Rr, Dr);
        var Fr = Rr.create(),
            Br = function e(t) {
                var i = this;
                t = Object.assign({
                    forceCanvas: !1
                }, t), this.renderer = yr(t), this.stage = new et, e._plugins.forEach(function(e) {
                    e.init.call(i, t)
                })
            },
            Nr = {
                view: {
                    configurable: !0
                },
                screen: {
                    configurable: !0
                }
            };
        /*!
         * @pixi/app - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/app is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        Br.registerPlugin = function(e) {
            Br._plugins.push(e)
        }, Br.prototype.render = function() {
            this.renderer.render(this.stage)
        }, Nr.view.get = function() {
            return this.renderer.view
        }, Nr.screen.get = function() {
            return this.renderer.screen
        }, Br.prototype.destroy = function(e, t) {
            var i = this,
                r = Br._plugins.slice(0);
            r.reverse(), r.forEach(function(e) {
                e.destroy.call(i)
            }), this.stage.destroy(t), this.stage = null, this.renderer.destroy(e), this.renderer = null, this._options = null
        }, Object.defineProperties(Br.prototype, Nr), Br._plugins = [];
        var Lr = function() {};
        Lr.init = function(e) {
            var t = this;
            Object.defineProperty(this, "resizeTo", {
                set: function(e) {
                    window.removeEventListener("resize", this.resize), this._resizeTo = e, e && (window.addEventListener("resize", this.resize), this.resize())
                },
                get: function() {
                    return this._resizeTo
                }
            }), this.resize = function() {
                t._resizeTo && (t._resizeTo === window ? t.renderer.resize(window.innerWidth, window.innerHeight) : t.renderer.resize(t._resizeTo.clientWidth, t._resizeTo.clientHeight))
            }, this._resizeTo = null, this.resizeTo = e.resizeTo || null
        }, Lr.destroy = function() {
            this.resizeTo = null, this.resize = null
        }, Br.registerPlugin(Lr);
        /*!
         * @pixi/extract - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/extract is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Ur = new We,
            Vr = function(e) {
                this.renderer = e, e.extract = this
            };
        Vr.prototype.image = function(e, t, i) {
            var r = new Image;
            return r.src = this.base64(e, t, i), r
        }, Vr.prototype.base64 = function(e, t, i) {
            return this.canvas(e).toDataURL(t, i)
        }, Vr.prototype.canvas = function(e) {
            var t, i, r, n = this.renderer,
                a = !1,
                s = !1;
            e && (e instanceof Gt ? r = e : (r = this.renderer.generateTexture(e), s = !0)), r ? (t = r.baseTexture.resolution, i = r.frame, a = !1, n.renderTexture.bind(r)) : (t = this.renderer.resolution, a = !0, (i = Ur).width = this.renderer.width, i.height = this.renderer.height, n.renderTexture.bind(null));
            var o = Math.floor(i.width * t + 1e-4),
                u = Math.floor(i.height * t + 1e-4),
                h = new xe(o, u, 1),
                l = new Uint8Array(4 * o * u),
                f = n.gl;
            f.readPixels(i.x * t, i.y * t, o, u, f.RGBA, f.UNSIGNED_BYTE, l);
            var c = h.context.getImageData(0, 0, o, u);
            if (Vr.arrayPostDivide(l, c.data), h.context.putImageData(c, 0, 0), a) {
                var d = new xe(h.width, h.height, 1);
                d.context.scale(1, -1), d.context.drawImage(h.canvas, 0, -u), h.destroy(), h = d
            }
            return s && r.destroy(!0), h.canvas
        }, Vr.prototype.pixels = function(e) {
            var t, i, r, n = this.renderer,
                a = !1;
            e && (e instanceof Gt ? r = e : (r = this.renderer.generateTexture(e), a = !0)), r ? (t = r.baseTexture.resolution, i = r.frame, n.renderTexture.bind(r)) : (t = n.resolution, (i = Ur).width = n.width, i.height = n.height, n.renderTexture.bind(null));
            var s = i.width * t,
                o = i.height * t,
                u = new Uint8Array(4 * s * o),
                h = n.gl;
            return h.readPixels(i.x * t, i.y * t, s, o, h.RGBA, h.UNSIGNED_BYTE, u), a && r.destroy(!0), Vr.arrayPostDivide(u, u), u
        }, Vr.prototype.destroy = function() {
            this.renderer.extract = null, this.renderer = null
        }, Vr.arrayPostDivide = function(e, t) {
            for (var i = 0; i < e.length; i += 4) {
                var r = t[i + 3] = e[i + 3];
                0 !== r ? (t[i] = Math.round(Math.min(255 * e[i] / r, 255)), t[i + 1] = Math.round(Math.min(255 * e[i + 1] / r, 255)), t[i + 2] = Math.round(Math.min(255 * e[i + 2] / r, 255))) : (t[i] = e[i], t[i + 1] = e[i + 1], t[i + 2] = e[i + 2])
            }
        };
        var Xr = i(123),
            jr = i.n(Xr),
            Gr = i(52),
            $r = i.n(Gr);
        /*!
         * resource-loader - v3.0.1
         * https://github.com/pixijs/pixi-sound
         * Compiled Tue, 02 Jul 2019 14:06:18 UTC
         *
         * resource-loader is licensed under the MIT license.
         * http://www.opensource.org/licenses/mit-license
         */
        function Hr() {}

        function Wr(e, t, i, r) {
            var n = 0,
                a = e.length;
            ! function s(o) {
                o || n === a ? i && i(o) : r ? setTimeout(function() {
                    t(e[n++], s)
                }, 1) : t(e[n++], s)
            }()
        }

        function Yr(e) {
            return function() {
                if (null === e) throw new Error("Callback was already called.");
                var t = e;
                e = null, t.apply(this, arguments)
            }
        }

        function zr(e, t) {
            if (null == t) t = 1;
            else if (0 === t) throw new Error("Concurrency must not be zero");
            var i = 0,
                r = {
                    _tasks: [],
                    concurrency: t,
                    saturated: Hr,
                    unsaturated: Hr,
                    buffer: t / 4,
                    empty: Hr,
                    drain: Hr,
                    error: Hr,
                    started: !1,
                    paused: !1,
                    push: function(e, t) {
                        n(e, !1, t)
                    },
                    kill: function() {
                        i = 0, r.drain = Hr, r.started = !1, r._tasks = []
                    },
                    unshift: function(e, t) {
                        n(e, !0, t)
                    },
                    process: function() {
                        for (; !r.paused && i < r.concurrency && r._tasks.length;) {
                            var t = r._tasks.shift();
                            0 === r._tasks.length && r.empty(), (i += 1) === r.concurrency && r.saturated(), e(t.data, Yr(a(t)))
                        }
                    },
                    length: function() {
                        return r._tasks.length
                    },
                    running: function() {
                        return i
                    },
                    idle: function() {
                        return r._tasks.length + i === 0
                    },
                    pause: function() {
                        !0 !== r.paused && (r.paused = !0)
                    },
                    resume: function() {
                        if (!1 !== r.paused) {
                            r.paused = !1;
                            for (var e = 1; e <= r.concurrency; e++) r.process()
                        }
                    }
                };

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

            function a(e) {
                return function() {
                    i -= 1, e.callback.apply(e, arguments), null != arguments[0] && r.error(arguments[0], e.data), i <= r.concurrency - r.buffer && r.unsaturated(), r.idle() && r.drain(), r.process()
                }
            }
            return r
        }
        var qr = {};

        function Jr(e, t) {
            for (var i = 0; i < t.length; i++) {
                var r = t[i];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
            }
        }

        function Qr(e, t, i) {
            return t && Jr(e.prototype, t), i && Jr(e, i), e
        }
        var Zr = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest),
            Kr = null;

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

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

        function nn(e) {
            return e.toString().replace("object ", "")
        }
        tn.STATUS_FLAGS = {
            NONE: 0,
            DATA_URL: 1,
            COMPLETE: 2,
            LOADING: 4
        }, tn.TYPE = {
            UNKNOWN: 0,
            JSON: 1,
            XML: 2,
            IMAGE: 3,
            AUDIO: 4,
            VIDEO: 5,
            TEXT: 6
        }, tn.LOAD_TYPE = {
            XHR: 1,
            IMAGE: 2,
            AUDIO: 3,
            VIDEO: 4
        }, tn.XHR_RESPONSE_TYPE = {
            DEFAULT: "text",
            BUFFER: "arraybuffer",
            BLOB: "blob",
            DOCUMENT: "document",
            JSON: "json",
            TEXT: "text"
        }, tn._loadTypeMap = {
            gif: tn.LOAD_TYPE.IMAGE,
            png: tn.LOAD_TYPE.IMAGE,
            bmp: tn.LOAD_TYPE.IMAGE,
            jpg: tn.LOAD_TYPE.IMAGE,
            jpeg: tn.LOAD_TYPE.IMAGE,
            tif: tn.LOAD_TYPE.IMAGE,
            tiff: tn.LOAD_TYPE.IMAGE,
            webp: tn.LOAD_TYPE.IMAGE,
            tga: tn.LOAD_TYPE.IMAGE,
            svg: tn.LOAD_TYPE.IMAGE,
            "svg+xml": tn.LOAD_TYPE.IMAGE,
            mp3: tn.LOAD_TYPE.AUDIO,
            ogg: tn.LOAD_TYPE.AUDIO,
            wav: tn.LOAD_TYPE.AUDIO,
            mp4: tn.LOAD_TYPE.VIDEO,
            webm: tn.LOAD_TYPE.VIDEO
        }, tn._xhrTypeMap = {
            xhtml: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            html: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            htm: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            xml: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            tmx: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            svg: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            tsx: tn.XHR_RESPONSE_TYPE.DOCUMENT,
            gif: tn.XHR_RESPONSE_TYPE.BLOB,
            png: tn.XHR_RESPONSE_TYPE.BLOB,
            bmp: tn.XHR_RESPONSE_TYPE.BLOB,
            jpg: tn.XHR_RESPONSE_TYPE.BLOB,
            jpeg: tn.XHR_RESPONSE_TYPE.BLOB,
            tif: tn.XHR_RESPONSE_TYPE.BLOB,
            tiff: tn.XHR_RESPONSE_TYPE.BLOB,
            webp: tn.XHR_RESPONSE_TYPE.BLOB,
            tga: tn.XHR_RESPONSE_TYPE.BLOB,
            json: tn.XHR_RESPONSE_TYPE.JSON,
            text: tn.XHR_RESPONSE_TYPE.TEXT,
            txt: tn.XHR_RESPONSE_TYPE.TEXT,
            ttf: tn.XHR_RESPONSE_TYPE.BUFFER,
            otf: tn.XHR_RESPONSE_TYPE.BUFFER
        }, tn.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
        var an = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var sn = window.URL || window.webkitURL;
        var on = {
                caching: function(e, t) {
                    var i = this;
                    qr[e.url] ? (e.data = qr[e.url], e.complete()) : e.onComplete.once(function() {
                        return qr[i.url] = i.data
                    }), t()
                },
                parsing: function(e, t) {
                    if (e.data) {
                        if (e.xhr && e.xhrType === tn.XHR_RESPONSE_TYPE.BLOB)
                            if (window.Blob && "string" != typeof e.data) {
                                if (0 === e.data.type.indexOf("image")) {
                                    var i = sn.createObjectURL(e.data);
                                    return e.blob = e.data, e.data = new Image, e.data.src = i, e.type = tn.TYPE.IMAGE, void(e.data.onload = function() {
                                        sn.revokeObjectURL(i), e.data.onload = null, t()
                                    })
                                }
                            } else {
                                var r = e.xhr.getResponseHeader("content-type");
                                if (r && 0 === r.indexOf("image")) return e.data = new Image, e.data.src = "data:" + r + ";base64," + function(e) {
                                    for (var t = "", i = 0; i < e.length;) {
                                        for (var r = [0, 0, 0], n = [0, 0, 0, 0], a = 0; a < r.length; ++a) i < e.length ? r[a] = 255 & e.charCodeAt(i++) : r[a] = 0;
                                        switch (n[0] = r[0] >> 2, n[1] = (3 & r[0]) << 4 | r[1] >> 4, n[2] = (15 & r[1]) << 2 | r[2] >> 6, n[3] = 63 & r[2], i - (e.length - 1)) {
                                            case 2:
                                                n[3] = 64, n[2] = 64;
                                                break;
                                            case 1:
                                                n[3] = 64
                                        }
                                        for (var s = 0; s < n.length; ++s) t += an.charAt(n[s])
                                    }
                                    return t
                                }(e.xhr.responseText), e.type = tn.TYPE.IMAGE, void(e.data.onload = function() {
                                    e.data.onload = null, t()
                                })
                            }
                        t()
                    } else t()
                }
            },
            un = /(#[\w-]+)?$/,
            hn = function() {
                function e(t, i) {
                    var r = this;
                    void 0 === t && (t = ""), void 0 === i && (i = 10), this.baseUrl = t, this.progress = 0, this.loading = !1, this.defaultQueryString = "", this._beforeMiddleware = [], this._afterMiddleware = [], this._resourcesParsing = [], this._boundLoadResource = function(e, t) {
                        return r._loadResource(e, t)
                    }, this._queue = zr(this._boundLoadResource, i), this._queue.pause(), this.resources = {}, this.onProgress = new $r.a, this.onError = new $r.a, this.onLoad = new $r.a, this.onStart = new $r.a, this.onComplete = new $r.a;
                    for (var n = 0; n < e._defaultBeforeMiddleware.length; ++n) this.pre(e._defaultBeforeMiddleware[n]);
                    for (var a = 0; a < e._defaultAfterMiddleware.length; ++a) this.use(e._defaultAfterMiddleware[a])
                }
                var t = e.prototype;
                return t.add = function(e, t, i, r) {
                    if (Array.isArray(e)) {
                        for (var n = 0; n < e.length; ++n) this.add(e[n]);
                        return this
                    }
                    if ("object" == typeof e && (r = t || e.callback || e.onComplete, i = e, t = e.url, e = e.name || e.key || e.url), "string" != typeof t && (r = i, i = t, t = e), "string" != typeof t) throw new Error("No url passed to add resource to loader.");
                    if ("function" == typeof i && (r = i, i = null), this.loading && (!i || !i.parentResource)) throw new Error("Cannot add resources while the loader is running.");
                    if (this.resources[e]) throw new Error('Resource named "' + e + '" already exists.');
                    if (t = this._prepareUrl(t), this.resources[e] = new tn(e, t, i), "function" == typeof r && this.resources[e].onAfterMiddleware.once(r), this.loading) {
                        for (var a = i.parentResource, s = [], o = 0; o < a.children.length; ++o) a.children[o].isComplete || s.push(a.children[o]);
                        var u = a.progressChunk * (s.length + 1) / (s.length + 2);
                        a.children.push(this.resources[e]), a.progressChunk = u;
                        for (var h = 0; h < s.length; ++h) s[h].progressChunk = u;
                        this.resources[e].progressChunk = u
                    }
                    return this._queue.push(this.resources[e]), this
                }, t.pre = function(e) {
                    return this._beforeMiddleware.push(e), this
                }, t.use = function(e) {
                    return this._afterMiddleware.push(e), this
                }, t.reset = function() {
                    for (var e in this.progress = 0, this.loading = !1, this._queue.kill(), this._queue.pause(), this.resources) {
                        var t = this.resources[e];
                        t._onLoadBinding && t._onLoadBinding.detach(), t.isLoading && t.abort()
                    }
                    return this.resources = {}, this
                }, t.load = function(e) {
                    if ("function" == typeof e && this.onComplete.once(e), this.loading) return this;
                    if (this._queue.idle()) this._onStart(), this._onComplete();
                    else {
                        for (var t = 100 / this._queue._tasks.length, i = 0; i < this._queue._tasks.length; ++i) this._queue._tasks[i].data.progressChunk = t;
                        this._onStart(), this._queue.resume()
                    }
                    return this
                }, t._prepareUrl = function(e) {
                    var t, i = jr()(e, {
                        strictMode: !0
                    });
                    if (t = i.protocol || !i.path || 0 === e.indexOf("//") ? e : this.baseUrl.length && this.baseUrl.lastIndexOf("/") !== this.baseUrl.length - 1 && "/" !== e.charAt(0) ? this.baseUrl + "/" + e : this.baseUrl + e, this.defaultQueryString) {
                        var r = un.exec(t)[0]; - 1 !== (t = t.substr(0, t.length - r.length)).indexOf("?") ? t += "&" + this.defaultQueryString : t += "?" + this.defaultQueryString, t += r
                    }
                    return t
                }, t._loadResource = function(e, t) {
                    var i = this;
                    e._dequeue = t, Wr(this._beforeMiddleware, function(t, r) {
                        t.call(i, e, function() {
                            r(e.isComplete ? {} : null)
                        })
                    }, function() {
                        e.isComplete ? i._onLoad(e) : (e._onLoadBinding = e.onComplete.once(i._onLoad, i), e.load())
                    }, !0)
                }, t._onStart = function() {
                    this.progress = 0, this.loading = !0, this.onStart.dispatch(this)
                }, t._onComplete = function() {
                    this.progress = 100, this.loading = !1, this.onComplete.dispatch(this, this.resources)
                }, t._onLoad = function(e) {
                    var t = this;
                    e._onLoadBinding = null, this._resourcesParsing.push(e), e._dequeue(), Wr(this._afterMiddleware, function(i, r) {
                        i.call(t, e, r)
                    }, function() {
                        e.onAfterMiddleware.dispatch(e), t.progress = Math.min(100, t.progress + e.progressChunk), t.onProgress.dispatch(t, e), e.error ? t.onError.dispatch(e.error, t, e) : t.onLoad.dispatch(t, e), t._resourcesParsing.splice(t._resourcesParsing.indexOf(e), 1), t._queue.idle() && 0 === t._resourcesParsing.length && t._onComplete()
                    }, !0)
                }, Qr(e, [{
                    key: "concurrency",
                    get: function() {
                        return this._queue.concurrency
                    },
                    set: function(e) {
                        this._queue.concurrency = e
                    }
                }]), e
            }();
        hn._defaultBeforeMiddleware = [], hn._defaultAfterMiddleware = [], hn.pre = function(e) {
            return hn._defaultBeforeMiddleware.push(e), hn
        }, hn.use = function(e) {
            return hn._defaultAfterMiddleware.push(e), hn
        };
        /*!
         * @pixi/loaders - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/loaders is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var ln = function() {};
        ln.use = function(e, t) {
            e.data && e.type === tn.TYPE.IMAGE && (e.texture = Xt.fromLoader(e.data, e.url, e.name)), t()
        };
        var fn = function(e) {
            function t(i, r) {
                var n = this;
                e.call(this, i, r), U.a.call(this);
                for (var a = 0; a < t._plugins.length; ++a) {
                    var s = t._plugins[a],
                        o = s.pre,
                        u = s.use;
                    o && this.pre(o), u && this.use(u)
                }
                this.onStart.add(function(e) {
                    return n.emit("start", e)
                }), this.onProgress.add(function(e, t) {
                    return n.emit("progress", e, t)
                }), this.onError.add(function(e, t, i) {
                    return n.emit("error", e, t, i)
                }), this.onLoad.add(function(e, t) {
                    return n.emit("load", e, t)
                }), this.onComplete.add(function(e, t) {
                    return n.emit("complete", e, t)
                }), this._protected = !1
            }
            e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
            var i = {
                shared: {
                    configurable: !0
                }
            };
            return t.prototype.destroy = function() {
                this._protected || (this.removeAllListeners(), this.reset())
            }, i.shared.get = function() {
                var e = t._shared;
                return e || ((e = new t)._protected = !0, t._shared = e), e
            }, Object.defineProperties(t, i), t
        }(hn);
        Object.assign(fn.prototype, U.a.prototype), fn._plugins = [], fn.registerPlugin = function(e) {
            return fn._plugins.push(e), e.add && e.add(), fn
        }, fn.registerPlugin({
            use: on.parsing
        }), fn.registerPlugin(ln);
        var cn = function() {};
        cn.init = function(e) {
            e = Object.assign({
                sharedLoader: !1
            }, e), this.loader = e.sharedLoader ? fn.shared : new fn
        }, cn.destroy = function() {
            this.loader && (this.loader.destroy(), this.loader = null)
        };
        var dn = tn,
            pn = function(e) {
                function t(t, i, r, n) {
                    void 0 === t && (t = 1500), void 0 === r && (r = 16384), void 0 === n && (n = !1), e.call(this);
                    r > 16384 && (r = 16384), this._properties = [!1, !0, !1, !1, !1], this._maxSize = t, this._batchSize = r, this._buffers = null, this._bufferUpdateIDs = [], this._updateID = 0, this.interactiveChildren = !1, this.blendMode = T.NORMAL, this.autoResize = n, this.roundPixels = !0, this.baseTexture = null, this.setProperties(i), this._tint = 0, this.tintRgb = new Float32Array(4), this.tint = 16777215
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    tint: {
                        configurable: !0
                    }
                };
                return t.prototype.setProperties = function(e) {
                    e && (this._properties[0] = "vertices" in e || "scale" in e ? !!e.vertices || !!e.scale : this._properties[0], this._properties[1] = "position" in e ? !!e.position : this._properties[1], this._properties[2] = "rotation" in e ? !!e.rotation : this._properties[2], this._properties[3] = "uvs" in e ? !!e.uvs : this._properties[3], this._properties[4] = "tint" in e || "alpha" in e ? !!e.tint || !!e.alpha : this._properties[4])
                }, t.prototype.updateTransform = function() {
                    this.displayObjectUpdateTransform()
                }, i.tint.get = function() {
                    return this._tint
                }, i.tint.set = function(e) {
                    this._tint = e, J(e, this.tintRgb)
                }, t.prototype.render = function(e) {
                    var t = this;
                    this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable && (this.baseTexture || (this.baseTexture = this.children[0]._texture.baseTexture, this.baseTexture.valid || this.baseTexture.once("update", function() {
                        return t.onChildrenChange(0)
                    })), e.batch.setObjectRenderer(e.plugins.particle), e.plugins.particle.render(this))
                }, t.prototype.onChildrenChange = function(e) {
                    for (var t = Math.floor(e / this._batchSize); this._bufferUpdateIDs.length < t;) this._bufferUpdateIDs.push(0);
                    this._bufferUpdateIDs[t] = ++this._updateID
                }, t.prototype.dispose = function() {
                    if (this._buffers) {
                        for (var e = 0; e < this._buffers.length; ++e) this._buffers[e].destroy();
                        this._buffers = null
                    }
                }, t.prototype.destroy = function(t) {
                    e.prototype.destroy.call(this, t), this.dispose(), this._properties = null, this._buffers = null, this._bufferUpdateIDs = null
                }, Object.defineProperties(t.prototype, i), t
            }(et),
            vn = function(e, t, i) {
                this.geometry = new Kt, this.indexBuffer = null, this.size = i, this.dynamicProperties = [], this.staticProperties = [];
                for (var r = 0; r < e.length; ++r) {
                    var n = e[r];
                    n = {
                        attributeName: n.attributeName,
                        size: n.size,
                        uploadFunction: n.uploadFunction,
                        type: n.type || I.FLOAT,
                        offset: n.offset
                    }, t[r] ? this.dynamicProperties.push(n) : this.staticProperties.push(n)
                }
                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()
            };
        /*!
         * @pixi/particles - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/particles is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        vn.prototype.initBuffers = function() {
            var e = this.geometry,
                t = 0;
            this.indexBuffer = new Yt(ae(this.size), !0, !0), e.addIndex(this.indexBuffer), this.dynamicStride = 0;
            for (var i = 0; i < this.dynamicProperties.length; ++i) {
                var r = this.dynamicProperties[i];
                r.offset = t, t += r.size, this.dynamicStride += r.size
            }
            var n = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);
            this.dynamicData = new Float32Array(n), this.dynamicDataUint32 = new Uint32Array(n), this.dynamicBuffer = new Yt(this.dynamicData, !1, !1);
            var a = 0;
            this.staticStride = 0;
            for (var s = 0; s < this.staticProperties.length; ++s) {
                var o = this.staticProperties[s];
                o.offset = a, a += o.size, this.staticStride += o.size
            }
            var u = new ArrayBuffer(this.size * this.staticStride * 4 * 4);
            this.staticData = new Float32Array(u), this.staticDataUint32 = new Uint32Array(u), this.staticBuffer = new Yt(this.staticData, !0, !1);
            for (var h = 0; h < this.dynamicProperties.length; ++h) {
                var l = this.dynamicProperties[h];
                e.addAttribute(l.attributeName, this.dynamicBuffer, 0, l.type === I.UNSIGNED_BYTE, l.type, 4 * this.dynamicStride, 4 * l.offset)
            }
            for (var f = 0; f < this.staticProperties.length; ++f) {
                var c = this.staticProperties[f];
                e.addAttribute(c.attributeName, this.staticBuffer, 0, c.type === I.UNSIGNED_BYTE, c.type, 4 * this.staticStride, 4 * c.offset)
            }
        }, vn.prototype.uploadDynamic = function(e, t, i) {
            for (var r = 0; r < this.dynamicProperties.length; r++) {
                var n = this.dynamicProperties[r];
                n.uploadFunction(e, t, i, n.type === I.UNSIGNED_BYTE ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, n.offset)
            }
            this.dynamicBuffer._updateID++
        }, vn.prototype.uploadStatic = function(e, t, i) {
            for (var r = 0; r < this.staticProperties.length; r++) {
                var n = this.staticProperties[r];
                n.uploadFunction(e, t, i, n.type === I.UNSIGNED_BYTE ? this.staticDataUint32 : this.staticData, this.staticStride, n.offset)
            }
            this.staticBuffer._updateID++
        }, vn.prototype.destroy = function() {
            this.indexBuffer = null, this.dynamicProperties = null, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.geometry.destroy()
        };
        var mn = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nattribute vec2 aPositionCoord;\nattribute float aRotation;\n\nuniform mat3 translationMatrix;\nuniform vec4 uColor;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvoid main(void){\n    float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\n    float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\n\n    vec2 v = vec2(x, y);\n    v = v + aPositionCoord;\n\n    gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vColor = aColor * uColor;\n}\n",
            _n = "varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n    vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\n    gl_FragColor = color;\n}",
            bn = function(e) {
                function t(t) {
                    e.call(this, t), this.shader = null, this.properties = null, this.tempMatrix = new Be, this.properties = [{
                        attributeName: "aVertexPosition",
                        size: 2,
                        uploadFunction: this.uploadVertices,
                        offset: 0
                    }, {
                        attributeName: "aPositionCoord",
                        size: 2,
                        uploadFunction: this.uploadPosition,
                        offset: 0
                    }, {
                        attributeName: "aRotation",
                        size: 1,
                        uploadFunction: this.uploadRotation,
                        offset: 0
                    }, {
                        attributeName: "aTextureCoord",
                        size: 2,
                        uploadFunction: this.uploadUvs,
                        offset: 0
                    }, {
                        attributeName: "aColor",
                        size: 1,
                        type: I.UNSIGNED_BYTE,
                        uploadFunction: this.uploadTint,
                        offset: 0
                    }], this.shader = Ui.from(mn, _n, {}), this.state = Xi.for2d()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.render = function(e) {
                    var t = e.children,
                        i = e._maxSize,
                        r = e._batchSize,
                        n = this.renderer,
                        a = t.length;
                    if (0 !== a) {
                        a > i && !e.autoResize && (a = i);
                        var s = e._buffers;
                        s || (s = e._buffers = this.generateBuffers(e));
                        var o = t[0]._texture.baseTexture;
                        this.state.blendMode = te(e.blendMode, o.alphaMode), n.state.set(this.state);
                        var u = n.gl,
                            h = e.worldTransform.copyTo(this.tempMatrix);
                        h.prepend(n.globalUniforms.uniforms.projectionMatrix), this.shader.uniforms.translationMatrix = h.toArray(!0), this.shader.uniforms.uColor = ie(e.tintRgb, e.worldAlpha, this.shader.uniforms.uColor, o.alphaMode), this.shader.uniforms.uSampler = o, this.renderer.shader.bind(this.shader);
                        for (var l = !1, f = 0, c = 0; f < a; f += r, c += 1) {
                            var d = a - f;
                            d > r && (d = r), c >= s.length && s.push(this._generateOneMoreBuffer(e));
                            var p = s[c];
                            p.uploadDynamic(t, f, d);
                            var v = e._bufferUpdateIDs[c] || 0;
                            (l = l || p._updateID < v) && (p._updateID = e._updateID, p.uploadStatic(t, f, d)), n.geometry.bind(p.geometry), u.drawElements(u.TRIANGLES, 6 * d, u.UNSIGNED_SHORT, 0)
                        }
                    }
                }, t.prototype.generateBuffers = function(e) {
                    for (var t = [], i = e._maxSize, r = e._batchSize, n = e._properties, a = 0; a < i; a += r) t.push(new vn(this.properties, n, r));
                    return t
                }, t.prototype._generateOneMoreBuffer = function(e) {
                    var t = e._batchSize,
                        i = e._properties;
                    return new vn(this.properties, i, t)
                }, t.prototype.uploadVertices = function(e, t, i, r, n, a) {
                    for (var s = 0, o = 0, u = 0, h = 0, l = 0; l < i; ++l) {
                        var f = e[t + l],
                            c = f._texture,
                            d = f.scale.x,
                            p = f.scale.y,
                            v = c.trim,
                            m = c.orig;
                        v ? (s = (o = v.x - f.anchor.x * m.width) + v.width, u = (h = v.y - f.anchor.y * m.height) + v.height) : (s = m.width * (1 - f.anchor.x), o = m.width * -f.anchor.x, u = m.height * (1 - f.anchor.y), h = m.height * -f.anchor.y), r[a] = o * d, r[a + 1] = h * p, r[a + n] = s * d, r[a + n + 1] = h * p, r[a + 2 * n] = s * d, r[a + 2 * n + 1] = u * p, r[a + 3 * n] = o * d, r[a + 3 * n + 1] = u * p, a += 4 * n
                    }
                }, t.prototype.uploadPosition = function(e, t, i, r, n, a) {
                    for (var s = 0; s < i; s++) {
                        var o = e[t + s].position;
                        r[a] = o.x, r[a + 1] = o.y, r[a + n] = o.x, r[a + n + 1] = o.y, r[a + 2 * n] = o.x, r[a + 2 * n + 1] = o.y, r[a + 3 * n] = o.x, r[a + 3 * n + 1] = o.y, a += 4 * n
                    }
                }, t.prototype.uploadRotation = function(e, t, i, r, n, a) {
                    for (var s = 0; s < i; s++) {
                        var o = e[t + s].rotation;
                        r[a] = o, r[a + n] = o, r[a + 2 * n] = o, r[a + 3 * n] = o, a += 4 * n
                    }
                }, t.prototype.uploadUvs = function(e, t, i, r, n, a) {
                    for (var s = 0; s < i; ++s) {
                        var o = e[t + s]._texture._uvs;
                        o ? (r[a] = o.x0, r[a + 1] = o.y0, r[a + n] = o.x1, r[a + n + 1] = o.y1, r[a + 2 * n] = o.x2, r[a + 2 * n + 1] = o.y2, r[a + 3 * n] = o.x3, r[a + 3 * n + 1] = o.y3, a += 4 * n) : (r[a] = 0, r[a + 1] = 0, r[a + n] = 0, r[a + n + 1] = 0, r[a + 2 * n] = 0, r[a + 2 * n + 1] = 0, r[a + 3 * n] = 0, r[a + 3 * n + 1] = 0, a += 4 * n)
                    }
                }, t.prototype.uploadTint = function(e, t, i, r, n, a) {
                    for (var s = 0; s < i; ++s) {
                        var o = e[t + s],
                            u = o._texture.baseTexture.alphaMode > 0,
                            h = o.alpha,
                            l = h < 1 && u ? re(o._tintRGB, h) : o._tintRGB + (255 * h << 24);
                        r[a] = l, r[a + n] = l, r[a + 2 * n] = l, r[a + 3 * n] = l, a += 4 * n
                    }
                }, t.prototype.destroy = function() {
                    e.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.tempMatrix = null
                }, t
            }(si),
            gn = {
                adaptive: !0,
                maxLength: 10,
                minSegments: 8,
                maxSegments: 2048,
                _segmentsCount: function(e, t) {
                    if (void 0 === t && (t = 20), !this.adaptive || !e || isNaN(e)) return t;
                    var i = Math.ceil(e / this.maxLength);
                    return i < this.minSegments ? i = this.minSegments : i > this.maxSegments && (i = this.maxSegments), i
                }
            },
            yn = function() {
                this.reset()
            };
        yn.prototype.clone = function() {
            var e = new yn;
            return e.color = this.color, e.alpha = this.alpha, e.texture = this.texture, e.matrix = this.matrix, e.visible = this.visible, e
        }, yn.prototype.reset = function() {
            this.color = 16777215, this.alpha = 1, this.texture = Xt.WHITE, this.matrix = null, this.visible = !1
        }, yn.prototype.destroy = function() {
            this.texture = null, this.matrix = null
        };
        var An = {
                build: function(e) {
                    e.points = e.shape.points.slice()
                },
                triangulate: function(e, t) {
                    var i = e.points,
                        r = e.holes,
                        n = t.points,
                        a = t.indices;
                    if (i.length >= 6) {
                        for (var s = [], o = 0; o < r.length; o++) {
                            var u = r[o];
                            s.push(i.length / 2), i = i.concat(u.points)
                        }
                        var h = X()(i, s, 2);
                        if (!h) return;
                        for (var l = n.length / 2, f = 0; f < h.length; f += 3) a.push(h[f] + l), a.push(h[f + 1] + l), a.push(h[f + 2] + l);
                        for (var c = 0; c < i.length; c++) n.push(i[c])
                    }
                }
            },
            wn = {
                build: function(e) {
                    var t, i, r = e.shape,
                        n = e.points,
                        a = r.x,
                        s = r.y;
                    if (n.length = 0, e.type === Me.CIRC ? (t = r.radius, i = r.radius) : (t = r.width, i = r.height), 0 !== t && 0 !== i) {
                        var o = Math.floor(30 * Math.sqrt(r.radius)) || Math.floor(15 * Math.sqrt(r.width + r.height));
                        o /= 2.3;
                        for (var u = 2 * Math.PI / o, h = 0; h < o - .5; h++) n.push(a + Math.sin(-u * h) * t, s + Math.cos(-u * h) * i);
                        n.push(n[0], n[1])
                    }
                },
                triangulate: function(e, t) {
                    var i = e.points,
                        r = t.points,
                        n = t.indices,
                        a = r.length / 2,
                        s = a,
                        o = e.shape,
                        u = e.matrix,
                        h = o.x,
                        l = o.y;
                    r.push(e.matrix ? u.a * h + u.c * l + u.tx : h, e.matrix ? u.b * h + u.d * l + u.ty : l);
                    for (var f = 0; f < i.length; f += 2) r.push(i[f], i[f + 1]), n.push(a++, s, a)
                }
            },
            xn = {
                build: function(e) {
                    var t = e.shape,
                        i = t.x,
                        r = t.y,
                        n = t.width,
                        a = t.height,
                        s = e.points;
                    s.length = 0, s.push(i, r, i + n, r, i + n, r + a, i, r + a)
                },
                triangulate: function(e, t) {
                    var i = e.points,
                        r = t.points,
                        n = r.length / 2;
                    r.push(i[0], i[1], i[2], i[3], i[6], i[7], i[4], i[5]), t.indices.push(n, n + 1, n + 2, n + 1, n + 2, n + 3)
                }
            },
            kn = {
                build: function(e) {
                    var t = e.shape,
                        i = e.points,
                        r = t.x,
                        n = t.y,
                        a = t.width,
                        s = t.height,
                        o = Math.max(0, Math.min(t.radius, Math.min(a, s) / 2));
                    i.length = 0, o ? (En(r, n + o, r, n, r + o, n, i), En(r + a - o, n, r + a, n, r + a, n + o, i), En(r + a, n + s - o, r + a, n + s, r + a - o, n + s, i), En(r + o, n + s, r, n + s, r, n + s - o, i)) : i.push(r, n, r + a, n, r + a, n + s, r, n + s)
                },
                triangulate: function(e, t) {
                    for (var i = e.points, r = t.points, n = t.indices, a = r.length / 2, s = X()(i, null, 2), o = 0, u = s.length; o < u; o += 3) n.push(s[o] + a), n.push(s[o + 1] + a), n.push(s[o + 2] + a);
                    for (var h = 0, l = i.length; h < l; h++) r.push(i[h], i[++h])
                }
            };

        function Tn(e, t, i) {
            return e + (t - e) * i
        }

        function En(e, t, i, r, n, a, s) {
            void 0 === s && (s = []);
            for (var o = s, u = 0, h = 0, l = 0, f = 0, c = 0, d = 0, p = 0, v = 0; p <= 20; ++p) u = Tn(e, i, v = p / 20), h = Tn(t, r, v), l = Tn(i, n, v), f = Tn(r, a, v), c = Tn(u, l, v), d = Tn(h, f, v), o.push(c, d);
            return o
        }

        function Sn(e, t) {
            e.lineStyle.native ? function(e, t) {
                var i = 0,
                    r = e.shape,
                    n = e.points || r.points,
                    a = r.type !== Me.POLY || r.closeStroke;
                if (0 === n.length) return;
                var s = t.points,
                    o = t.indices,
                    u = n.length / 2,
                    h = s.length / 2,
                    l = h;
                for (s.push(n[0], n[1]), i = 1; i < u; i++) s.push(n[2 * i], n[2 * i + 1]), o.push(l, l + 1), l++;
                a && o.push(l, h)
            }(e, t) : function(e, t) {
                var i = e.shape,
                    r = e.points || i.points.slice(),
                    n = t.closePointEps;
                if (0 === r.length) return;
                var a = e.lineStyle,
                    s = new Ce(r[0], r[1]),
                    o = new Ce(r[r.length - 2], r[r.length - 1]),
                    u = i.type !== Me.POLY || i.closeStroke,
                    h = Math.abs(s.x - o.x) < n && Math.abs(s.y - o.y) < n;
                if (u) {
                    r = r.slice(), h && (r.pop(), r.pop(), o.set(r[r.length - 2], r[r.length - 1]));
                    var l = o.x + .5 * (s.x - o.x),
                        f = o.y + .5 * (s.y - o.y);
                    r.unshift(l, f), r.push(l, f)
                }
                var c = t.points,
                    d = r.length / 2,
                    p = r.length,
                    v = c.length / 2,
                    m = a.width / 2,
                    _ = r[0],
                    b = r[1],
                    g = r[2],
                    y = r[3],
                    A = 0,
                    w = 0,
                    x = -(b - y),
                    k = _ - g,
                    T = 0,
                    E = 0,
                    S = 0,
                    P = 0,
                    I = Math.sqrt(x * x + k * k);
                x /= I, k /= I, x *= m, k *= m;
                var M = a.alignment,
                    C = 2 * (1 - M),
                    O = 2 * M;
                c.push(_ - x * C, b - k * C), c.push(_ + x * O, b + k * O);
                for (var R = 1; R < d - 1; ++R) {
                    _ = r[2 * (R - 1)], b = r[2 * (R - 1) + 1], g = r[2 * R], y = r[2 * R + 1], A = r[2 * (R + 1)], w = r[2 * (R + 1) + 1], x = -(b - y), k = _ - g, I = Math.sqrt(x * x + k * k), x /= I, k /= I, x *= m, k *= m, T = -(y - w), E = g - A, I = Math.sqrt(T * T + E * E), T /= I, E /= I;
                    var D = -k + b - (-k + y),
                        F = -x + g - (-x + _),
                        B = (-x + _) * (-k + y) - (-x + g) * (-k + b),
                        N = -(E *= m) + w - (-E + y),
                        L = -(T *= m) + g - (-T + A),
                        U = (-T + A) * (-E + y) - (-T + g) * (-E + w),
                        V = D * L - N * F;
                    if (Math.abs(V) < .1) V += 10.1, c.push(g - x * C, y - k * C), c.push(g + x * O, y + k * O);
                    else {
                        var X = (F * U - L * B) / V,
                            j = (N * B - D * U) / V;
                        (X - g) * (X - g) + (j - y) * (j - y) > 196 * m * m ? (S = x - T, P = k - E, I = Math.sqrt(S * S + P * P), S /= I, P /= I, S *= m, P *= m, c.push(g - S * C, y - P * C), c.push(g + S * O, y + P * O), c.push(g - S * O * C, y - P * C), p++) : (c.push(g + (X - g) * C, y + (j - y) * C), c.push(g - (X - g) * O, y - (j - y) * O))
                    }
                }
                _ = r[2 * (d - 2)], b = r[2 * (d - 2) + 1], g = r[2 * (d - 1)], y = r[2 * (d - 1) + 1], x = -(b - y), k = _ - g, I = Math.sqrt(x * x + k * k), x /= I, k /= I, x *= m, k *= m, c.push(g - x * C, y - k * C), c.push(g + x * O, y + k * O);
                for (var G = t.indices, $ = 0; $ < p - 2; ++$) G.push(v, v + 1, v + 2), v++
            }(e, t)
        }
        var Pn = function(e) {
                function t(t, i, r, n, a, s) {
                    a = a || n / 2;
                    for (var o = -1 * Math.PI / 2 + s, u = 2 * r, h = Re / u, l = [], f = 0; f < u; f++) {
                        var c = f % 2 ? a : n,
                            d = f * h + o;
                        l.push(t + c * Math.cos(d), i + c * Math.sin(d))
                    }
                    e.call(this, l)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
            }(qe),
            In = function() {};
        In.curveTo = function(e, t, i, r, n, a) {
            var s = a[a.length - 2],
                o = a[a.length - 1] - t,
                u = s - e,
                h = r - t,
                l = i - e,
                f = Math.abs(o * l - u * h);
            if (f < 1e-8 || 0 === n) return a[a.length - 2] === e && a[a.length - 1] === t || a.push(e, t), null;
            var c = o * o + u * u,
                d = h * h + l * l,
                p = o * h + u * l,
                v = n * Math.sqrt(c) / f,
                m = n * Math.sqrt(d) / f,
                _ = v * p / c,
                b = m * p / d,
                g = v * l + m * u,
                y = v * h + m * o,
                A = u * (m + _),
                w = o * (m + _),
                x = l * (v + b),
                k = h * (v + b);
            return {
                cx: g + e,
                cy: y + t,
                radius: n,
                startAngle: Math.atan2(w - y, A - g),
                endAngle: Math.atan2(k - y, x - g),
                anticlockwise: u * h > l * o
            }
        }, In.arc = function(e, t, i, r, n, a, s, o, u) {
            for (var h = s - a, l = gn._segmentsCount(Math.abs(h) * n, 40 * Math.ceil(Math.abs(h) / Re)), f = h / (2 * l), c = 2 * f, d = Math.cos(f), p = Math.sin(f), v = l - 1, m = v % 1 / v, _ = 0; _ <= v; ++_) {
                var b = f + a + c * (_ + m * _),
                    g = Math.cos(b),
                    y = -Math.sin(b);
                u.push((d * g + p * y) * n + i, (d * -y + p * g) * n + r)
            }
        };
        var Mn = function() {};
        Mn.curveLength = function(e, t, i, r, n, a, s, o) {
            for (var u = 0, h = 0, l = 0, f = 0, c = 0, d = 0, p = 0, v = 0, m = 0, _ = 0, b = 0, g = e, y = t, A = 1; A <= 10; ++A) _ = g - (v = (p = (d = (c = 1 - (h = A / 10)) * c) * c) * e + 3 * d * h * i + 3 * c * (l = h * h) * n + (f = l * h) * s), b = y - (m = p * t + 3 * d * h * r + 3 * c * l * a + f * o), g = v, y = m, u += Math.sqrt(_ * _ + b * b);
            return u
        }, Mn.curveTo = function(e, t, i, r, n, a, s) {
            var o = s[s.length - 2],
                u = s[s.length - 1];
            s.length -= 2;
            var h = gn._segmentsCount(Mn.curveLength(o, u, e, t, i, r, n, a)),
                l = 0,
                f = 0,
                c = 0,
                d = 0,
                p = 0;
            s.push(o, u);
            for (var v = 1, m = 0; v <= h; ++v) c = (f = (l = 1 - (m = v / h)) * l) * l, p = (d = m * m) * m, s.push(c * o + 3 * f * m * e + 3 * l * d * i + p * n, c * u + 3 * f * m * t + 3 * l * d * r + p * a)
        };
        var Cn = function() {};
        Cn.curveLength = function(e, t, i, r, n, a) {
            var s = e - 2 * i + n,
                o = t - 2 * r + a,
                u = 2 * i - 2 * e,
                h = 2 * r - 2 * t,
                l = 4 * (s * s + o * o),
                f = 4 * (s * u + o * h),
                c = u * u + h * h,
                d = 2 * Math.sqrt(l + f + c),
                p = Math.sqrt(l),
                v = 2 * l * p,
                m = 2 * Math.sqrt(c),
                _ = f / p;
            return (v * d + p * f * (d - m) + (4 * c * l - f * f) * Math.log((2 * p + _ + d) / (_ + m))) / (4 * v)
        }, Cn.curveTo = function(e, t, i, r, n) {
            for (var a = n[n.length - 2], s = n[n.length - 1], o = gn._segmentsCount(Cn.curveLength(a, s, e, t, i, r)), u = 0, h = 0, l = 1; l <= o; ++l) {
                var f = l / o;
                u = a + (e - a) * f, h = s + (t - s) * f, n.push(u + (e + (i - e) * f - u) * f, h + (t + (r - t) * f - h) * f)
            }
        };
        var On = function() {
            this.reset()
        };
        On.prototype.begin = function(e, t, i) {
            this.reset(), this.style = e, this.start = t, this.attribStart = i
        }, On.prototype.end = function(e, t) {
            this.attribSize = t - this.attribStart, this.size = e - this.start
        }, On.prototype.reset = function() {
            this.style = null, this.size = 0, this.start = 0, this.attribStart = 0, this.attribSize = 0
        };
        var Rn = {};
        Rn[Me.POLY] = An, Rn[Me.CIRC] = wn, Rn[Me.ELIP] = wn, Rn[Me.RECT] = xn, Rn[Me.RREC] = kn;
        var Dn = [],
            Fn = [],
            Bn = {
                buildPoly: An,
                buildCircle: wn,
                buildRectangle: xn,
                buildRoundedRectangle: kn,
                FILL_COMMANDS: Rn,
                BATCH_POOL: Dn,
                DRAW_CALL_POOL: Fn,
                buildLine: Sn,
                buildComplexPoly: function(e, t) {
                    var i = e.points.slice();
                    if (!(i.length < 6)) {
                        var r = t.indices;
                        t.points = i, t.alpha = e.fillAlpha, t.color = J(e.fillColor);
                        for (var n = 1 / 0, a = -1 / 0, s = 1 / 0, o = -1 / 0, u = 0, h = 0, l = 0; l < i.length; l += 2) n = (u = i[l]) < n ? u : n, a = u > a ? u : a, s = (h = i[l + 1]) < s ? h : s, o = h > o ? h : o;
                        i.push(n, s, a, s, a, o, n, o);
                        for (var f = i.length / 2, c = 0; c < f; c++) r.push(c)
                    }
                },
                bezierCurveTo: function(e, t, i, r, n, a, s, o, u, h) {
                    void 0 === h && (h = []);
                    var l = 0,
                        f = 0,
                        c = 0,
                        d = 0,
                        p = 0;
                    h.push(e, t);
                    for (var v = 1, m = 0; v <= u; ++v) c = (f = (l = 1 - (m = v / u)) * l) * l, p = (d = m * m) * m, h.push(c * e + 3 * f * m * i + 3 * l * d * n + p * s, c * t + 3 * f * m * r + 3 * l * d * a + p * o);
                    return h
                },
                Star: Pn,
                ArcUtils: In,
                BezierUtils: Mn,
                QuadraticUtils: Cn,
                BatchPart: On
            },
            Nn = function(e, t, i, r) {
                void 0 === t && (t = null), void 0 === i && (i = null), void 0 === r && (r = null), this.shape = e, this.lineStyle = i, this.fillStyle = t, this.matrix = r, this.type = e.type, this.points = [], this.holes = []
            };
        Nn.prototype.clone = function() {
            return new Nn(this.shape, this.fillStyle, this.lineStyle, this.matrix)
        }, Nn.prototype.destroy = function() {
            this.shape = null, this.holes.length = 0, this.holes = null, this.points.length = 0, this.points = null, this.lineStyle = null, this.fillStyle = null
        };
        var Ln = new Ce,
            Un = new Qe,
            Vn = function(e) {
                function t() {
                    e.call(this), this.points = [], this.colors = [], this.uvs = [], this.indices = [], this.textureIds = [], this.graphicsData = [], this.dirty = 0, this.batchDirty = -1, this.cacheDirty = -1, this.clearDirty = 0, this.drawCalls = [], this.batches = [], this.shapeIndex = 0, this._bounds = new Qe, this.boundsDirty = -1, this.boundsPadding = 0, this.batchable = !1, this.indicesUint16 = null, this.uvsFloat32 = null, this.closePointEps = 1e-4
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    bounds: {
                        configurable: !0
                    }
                };
                return i.bounds.get = function() {
                    return this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.calculateBounds()), this._bounds
                }, t.prototype.invalidate = function() {
                    this.boundsDirty = -1, this.dirty++, this.batchDirty++, this.shapeIndex = 0, this.points.length = 0, this.colors.length = 0, this.uvs.length = 0, this.indices.length = 0, this.textureIds.length = 0;
                    for (var e = 0; e < this.drawCalls.length; e++) this.drawCalls[e].textures.length = 0, Fn.push(this.drawCalls[e]);
                    this.drawCalls.length = 0;
                    for (var t = 0; t < this.batches.length; t++) {
                        var i = this.batches[t];
                        i.reset(), Dn.push(i)
                    }
                    this.batches.length = 0
                }, t.prototype.clear = function() {
                    return this.graphicsData.length > 0 && (this.invalidate(), this.clearDirty++, this.graphicsData.length = 0), this
                }, t.prototype.drawShape = function(e, t, i, r) {
                    var n = new Nn(e, t, i, r);
                    return this.graphicsData.push(n), this.dirty++, this
                }, t.prototype.drawHole = function(e, t) {
                    if (!this.graphicsData.length) return null;
                    var i = new Nn(e, null, null, t),
                        r = this.graphicsData[this.graphicsData.length - 1];
                    return i.lineStyle = r.lineStyle, r.holes.push(i), this.dirty++, this
                }, t.prototype.destroy = function(t) {
                    e.prototype.destroy.call(this, t);
                    for (var i = 0; i < this.graphicsData.length; ++i) this.graphicsData[i].destroy();
                    this.points.length = 0, this.points = null, this.colors.length = 0, this.colors = null, this.uvs.length = 0, this.uvs = null, this.indices.length = 0, this.indices = null, this.indexBuffer.destroy(), this.indexBuffer = null, this.graphicsData.length = 0, this.graphicsData = null, this.drawCalls.length = 0, this.drawCalls = null, this.batches.length = 0, this.batches = null, this._bounds = null
                }, t.prototype.containsPoint = function(e) {
                    for (var t = this.graphicsData, i = 0; i < t.length; ++i) {
                        var r = t[i];
                        if (r.fillStyle.visible && (r.shape && (r.matrix ? r.matrix.applyInverse(e, Ln) : Ln.copyFrom(e), r.shape.contains(Ln.x, Ln.y)))) {
                            var n = !1;
                            if (r.holes)
                                for (var a = 0; a < r.holes.length; a++) {
                                    if (r.holes[a].shape.contains(Ln.x, Ln.y)) {
                                        n = !0;
                                        break
                                    }
                                }
                            if (!n) return !0
                        }
                    }
                    return !1
                }, t.prototype.updateBatches = function() {
                    if (this.graphicsData.length) {
                        if (this.validateBatching()) {
                            this.cacheDirty = this.dirty;
                            var e = this.uvs,
                                t = this.graphicsData,
                                i = null,
                                r = null;
                            this.batches.length > 0 && (r = (i = this.batches[this.batches.length - 1]).style);
                            for (var n = this.shapeIndex; n < t.length; n++) {
                                this.shapeIndex++;
                                var a = t[n],
                                    s = a.fillStyle,
                                    o = a.lineStyle;
                                Rn[a.type].build(a), a.matrix && this.transformPoints(a.points, a.matrix);
                                for (var u = 0; u < 2; u++) {
                                    var h = 0 === u ? s : o;
                                    if (h.visible) {
                                        var l = h.texture.baseTexture,
                                            f = this.indices.length,
                                            c = this.points.length / 2;
                                        l.wrapMode = C.REPEAT, 0 === u ? this.processFill(a) : this.processLine(a);
                                        var d = this.points.length / 2 - c;
                                        0 !== d && (i && !this._compareStyles(r, h) && (i.end(f, c), i = null), i || ((i = Dn.pop() || new On).begin(h, f, c), this.batches.push(i), r = h), this.addUvs(this.points, e, h.texture, c, d, h.matrix))
                                    }
                                }
                            }
                            if (i) {
                                var p = this.indices.length,
                                    v = this.points.length / 2;
                                i.end(p, v)
                            }
                            0 !== this.batches.length ? (this.indicesUint16 = new Uint16Array(this.indices), this.batchable = this.isBatchable(), this.batchable ? this.packBatches() : this.buildDrawCalls()) : this.batchable = !0
                        }
                    } else this.batchable = !0
                }, t.prototype._compareStyles = function(e, t) {
                    return !(!e || !t) && (e.texture.baseTexture === t.texture.baseTexture && (e.color + e.alpha === t.color + t.alpha && !!e.native == !!t.native))
                }, t.prototype.validateBatching = function() {
                    if (this.dirty === this.cacheDirty || !this.graphicsData.length) return !1;
                    for (var e = 0, t = this.graphicsData.length; e < t; e++) {
                        var i = this.graphicsData[e],
                            r = i.fillStyle,
                            n = i.lineStyle;
                        if (r && !r.texture.baseTexture.valid) return !1;
                        if (n && !n.texture.baseTexture.valid) return !1
                    }
                    return !0
                }, t.prototype.packBatches = function() {
                    this.batchDirty++, this.uvsFloat32 = new Float32Array(this.uvs);
                    for (var e = this.batches, t = 0, i = e.length; t < i; t++)
                        for (var r = e[t], n = 0; n < r.size; n++) {
                            var a = r.start + n;
                            this.indicesUint16[a] = this.indicesUint16[a] - r.attribStart
                        }
                }, t.prototype.isBatchable = function() {
                    for (var e = this.batches, i = 0; i < e.length; i++)
                        if (e[i].style.native) return !1;
                    return this.points.length < 2 * t.BATCHABLE_SIZE
                }, t.prototype.buildDrawCalls = function() {
                    for (var e = ++Et._globalBatch, t = 0; t < this.drawCalls.length; t++) this.drawCalls[t].textures.length = 0, Fn.push(this.drawCalls[t]);
                    this.drawCalls.length = 0;
                    var i = this.colors,
                        r = this.textureIds,
                        n = Fn.pop();
                    n || ((n = new kr).textures = new Tr), n.textures.count = 0, n.start = 0, n.size = 0, n.type = E.TRIANGLES;
                    var a = 0,
                        s = null,
                        o = 0,
                        u = !1,
                        h = E.TRIANGLES,
                        l = 0;
                    this.drawCalls.push(n);
                    for (var f = 0; f < this.batches.length; f++) {
                        var c = this.batches[f],
                            d = c.style,
                            p = d.texture.baseTexture;
                        u !== !!d.native && (h = (u = !!d.native) ? E.LINES : E.TRIANGLES, s = null, a = 8, e++), s !== p && (s = p, p._batchEnabled !== e && (8 === a && (e++, a = 0, n.size > 0 && ((n = Fn.pop()) || ((n = new kr).textures = new Tr), this.drawCalls.push(n)), n.start = l, n.size = 0, n.textures.count = 0, n.type = h), p.touched = 1, p._batchEnabled = e, p._batchLocation = a, p.wrapMode = 10497, n.textures.elements[n.textures.count++] = p, a++)), n.size += c.size, l += c.size, o = p._batchLocation, this.addColors(i, d.color, d.alpha, c.attribSize), this.addTextureIds(r, o, c.attribSize)
                    }
                    Et._globalBatch = e, this.packAttributes()
                }, t.prototype.packAttributes = function() {
                    for (var e = this.points, t = this.uvs, i = this.colors, r = this.textureIds, n = new ArrayBuffer(3 * e.length * 4), a = new Float32Array(n), s = new Uint32Array(n), o = 0, u = 0; u < e.length / 2; u++) a[o++] = e[2 * u], a[o++] = e[2 * u + 1], a[o++] = t[2 * u], a[o++] = t[2 * u + 1], s[o++] = i[u], a[o++] = r[u];
                    this._buffer.update(n), this._indexBuffer.update(this.indicesUint16)
                }, t.prototype.processFill = function(e) {
                    e.holes.length ? (this.processHoles(e.holes), An.triangulate(e, this)) : Rn[e.type].triangulate(e, this)
                }, t.prototype.processLine = function(e) {
                    Sn(e, this);
                    for (var t = 0; t < e.holes.length; t++) Sn(e.holes[t], this)
                }, t.prototype.processHoles = function(e) {
                    for (var t = 0; t < e.length; t++) {
                        var i = e[t];
                        Rn[i.type].build(i), i.matrix && this.transformPoints(i.points, i.matrix)
                    }
                }, t.prototype.calculateBounds = function() {
                    var e = this._bounds,
                        t = Un,
                        i = Be.IDENTITY;
                    this._bounds.clear(), t.clear();
                    for (var r = 0; r < this.graphicsData.length; r++) {
                        var n = this.graphicsData[r],
                            a = n.shape,
                            s = n.type,
                            o = n.lineStyle,
                            u = n.matrix || Be.IDENTITY,
                            h = 0;
                        if (o && o.visible) {
                            var l = o.alignment;
                            h = o.width, s === Me.POLY ? h *= .5 + Math.abs(.5 - l) : h *= Math.max(0, l)
                        }
                        i !== u && (t.isEmpty() || (e.addBoundsMatrix(t, i), t.clear()), i = u), s === Me.RECT || s === Me.RREC ? t.addFramePad(a.x, a.y, a.x + a.width, a.y + a.height, h, h) : s === Me.CIRC ? t.addFramePad(a.x, a.y, a.x, a.y, a.radius + h, a.radius + h) : s === Me.ELIP ? t.addFramePad(a.x, a.y, a.x, a.y, a.width + h, a.height + h) : e.addVerticesMatrix(i, a.points, 0, a.points.length, h, h)
                    }
                    t.isEmpty() || e.addBoundsMatrix(t, i), e.pad(this.boundsPadding, this.boundsPadding)
                }, t.prototype.transformPoints = function(e, t) {
                    for (var i = 0; i < e.length / 2; i++) {
                        var r = e[2 * i],
                            n = e[2 * i + 1];
                        e[2 * i] = t.a * r + t.c * n + t.tx, e[2 * i + 1] = t.b * r + t.d * n + t.ty
                    }
                }, t.prototype.addColors = function(e, t, i, r) {
                    for (var n = re((t >> 16) + (65280 & t) + ((255 & t) << 16), i); r-- > 0;) e.push(n)
                }, t.prototype.addTextureIds = function(e, t, i) {
                    for (; i-- > 0;) e.push(t)
                }, t.prototype.addUvs = function(e, t, i, r, n, a) {
                    for (var s = 0, o = t.length, u = i.frame; s < n;) {
                        var h = e[2 * (r + s)],
                            l = e[2 * (r + s) + 1];
                        if (a) {
                            var f = a.a * h + a.c * l + a.tx;
                            l = a.b * h + a.d * l + a.ty, h = f
                        }
                        s++, t.push(h / u.width, l / u.height)
                    }
                    var c = i.baseTexture;
                    (u.width < c.width || u.height < c.height) && this.adjustUvs(t, i, o, n)
                }, t.prototype.adjustUvs = function(e, t, i, r) {
                    for (var n = t.baseTexture, a = i + 2 * r, s = t.frame, o = s.width / n.width, u = s.height / n.height, h = s.x / s.width, l = s.y / s.height, f = Math.floor(e[i] + 1e-6), c = Math.floor(e[i + 1] + 1e-6), d = i + 2; d < a; d += 2) f = Math.min(f, Math.floor(e[d] + 1e-6)), c = Math.min(c, Math.floor(e[d + 1] + 1e-6));
                    h -= f, l -= c;
                    for (var p = i; p < a; p += 2) e[p] = (e[p] + h) * o, e[p + 1] = (e[p + 1] + l) * u
                }, Object.defineProperties(t.prototype, i), t
            }(Mr);
        Vn.BATCHABLE_SIZE = 100;
        var Xn = function(e) {
                function t() {
                    e.apply(this, arguments)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.clone = function() {
                    var e = new t;
                    return e.color = this.color, e.alpha = this.alpha, e.texture = this.texture, e.matrix = this.matrix, e.visible = this.visible, e.width = this.width, e.alignment = this.alignment, e.native = this.native, e
                }, t.prototype.reset = function() {
                    e.prototype.reset.call(this), this.color = 0, this.width = 0, this.alignment = .5, this.native = !1
                }, t
            }(yn),
            jn = new Float32Array(3),
            Gn = {},
            $n = function(e) {
                function t(t) {
                    void 0 === t && (t = null), e.call(this), this.geometry = t || new Vn, this.geometry.refCount++, this.shader = null, this.state = Xi.for2d(), this._fillStyle = new yn, this._lineStyle = new Xn, this._matrix = null, this._holeMode = !1, this.currentPath = null, this.batches = [], this.batchTint = -1, this.vertexData = null, this._transformID = -1, this.batchDirty = -1, this.pluginName = "batch", this.tint = 16777215, this.blendMode = T.NORMAL
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    blendMode: {
                        configurable: !0
                    },
                    tint: {
                        configurable: !0
                    },
                    fill: {
                        configurable: !0
                    },
                    line: {
                        configurable: !0
                    }
                };
                return t.prototype.clone = function() {
                    return this.finishPoly(), new t(this.geometry)
                }, i.blendMode.set = function(e) {
                    this.state.blendMode = e
                }, i.blendMode.get = function() {
                    return this.state.blendMode
                }, i.tint.get = function() {
                    return this._tint
                }, i.tint.set = function(e) {
                    this._tint = e
                }, i.fill.get = function() {
                    return this._fillStyle
                }, i.line.get = function() {
                    return this._lineStyle
                }, t.prototype.lineStyle = function(e) {
                    if ("number" == typeof e) {
                        var t = arguments;
                        e = {
                            width: t[0] || 0,
                            color: t[1] || 0,
                            alpha: void 0 !== t[2] ? t[2] : 1,
                            alignment: void 0 !== t[3] ? t[3] : .5,
                            native: !!t[4]
                        }
                    }
                    return this.lineTextureStyle(e)
                }, t.prototype.lineTextureStyle = function(e) {
                    if ("number" == typeof e) {
                        _e(0, "Please use object-based options for Graphics#lineTextureStyle");
                        var t = arguments[0],
                            i = arguments[1],
                            r = arguments[2],
                            n = arguments[3],
                            a = arguments[4],
                            s = arguments[5],
                            o = arguments[6];
                        e = {
                            width: t,
                            texture: i,
                            color: r,
                            alpha: n,
                            matrix: a,
                            alignment: s,
                            native: o
                        }, Object.keys(e).forEach(function(t) {
                            return void 0 === e[t] && delete e[t]
                        })
                    }
                    e = Object.assign({
                        width: 0,
                        texture: Xt.WHITE,
                        color: e && e.texture ? 16777215 : 0,
                        alpha: 1,
                        matrix: null,
                        alignment: .5,
                        native: !1
                    }, e), this.currentPath && this.startPoly();
                    var u = e.width > 0 && e.alpha > 0;
                    return u ? (e.matrix && (e.matrix = e.matrix.clone(), e.matrix.invert()), Object.assign(this._lineStyle, {
                        visible: u
                    }, e)) : this._lineStyle.reset(), this
                }, t.prototype.startPoly = function() {
                    if (this.currentPath) {
                        var e = this.currentPath.points,
                            t = this.currentPath.points.length;
                        t > 2 && (this.drawShape(this.currentPath), this.currentPath = new qe, this.currentPath.closeStroke = !1, this.currentPath.points.push(e[t - 2], e[t - 1]))
                    } else this.currentPath = new qe, this.currentPath.closeStroke = !1
                }, t.prototype.finishPoly = function() {
                    this.currentPath && (this.currentPath.points.length > 2 ? (this.drawShape(this.currentPath), this.currentPath = null) : this.currentPath.points.length = 0)
                }, t.prototype.moveTo = function(e, t) {
                    return this.startPoly(), this.currentPath.points[0] = e, this.currentPath.points[1] = t, this
                }, t.prototype.lineTo = function(e, t) {
                    this.currentPath || this.moveTo(0, 0);
                    var i = this.currentPath.points,
                        r = i[i.length - 2],
                        n = i[i.length - 1];
                    return r === e && n === t || i.push(e, t), this
                }, t.prototype._initCurve = function(e, t) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0), this.currentPath ? 0 === this.currentPath.points.length && (this.currentPath.points = [e, t]) : this.moveTo(e, t)
                }, t.prototype.quadraticCurveTo = function(e, t, i, r) {
                    this._initCurve();
                    var n = this.currentPath.points;
                    return 0 === n.length && this.moveTo(0, 0), Cn.curveTo(e, t, i, r, n), this
                }, t.prototype.bezierCurveTo = function(e, t, i, r, n, a) {
                    return this._initCurve(), Mn.curveTo(e, t, i, r, n, a, this.currentPath.points), this
                }, t.prototype.arcTo = function(e, t, i, r, n) {
                    this._initCurve(e, t);
                    var a = this.currentPath.points,
                        s = In.curveTo(e, t, i, r, n, a);
                    if (s) {
                        var o = s.cx,
                            u = s.cy,
                            h = s.radius,
                            l = s.startAngle,
                            f = s.endAngle,
                            c = s.anticlockwise;
                        this.arc(o, u, h, l, f, c)
                    }
                    return this
                }, t.prototype.arc = function(e, t, i, r, n, a) {
                    if (void 0 === a && (a = !1), r === n) return this;
                    if (!a && n <= r ? n += Re : a && r <= n && (r += Re), 0 === n - r) return this;
                    var s = e + Math.cos(r) * i,
                        o = t + Math.sin(r) * i,
                        u = this.geometry.closePointEps,
                        h = this.currentPath ? this.currentPath.points : null;
                    if (h) {
                        var l = Math.abs(h[h.length - 2] - s),
                            f = Math.abs(h[h.length - 1] - o);
                        l < u && f < u || h.push(s, o)
                    } else this.moveTo(s, o), h = this.currentPath.points;
                    return In.arc(s, o, e, t, i, r, n, a, h), this
                }, t.prototype.beginFill = function(e, t) {
                    return void 0 === e && (e = 0), void 0 === t && (t = 1), this.beginTextureFill({
                        texture: Xt.WHITE,
                        color: e,
                        alpha: t
                    })
                }, t.prototype.beginTextureFill = function(e) {
                    if (e instanceof Xt) {
                        _e(0, "Please use object-based options for Graphics#beginTextureFill");
                        var t = arguments[0],
                            i = arguments[1],
                            r = arguments[2],
                            n = arguments[3];
                        e = {
                            texture: t,
                            color: i,
                            alpha: r,
                            matrix: n
                        }, Object.keys(e).forEach(function(t) {
                            return void 0 === e[t] && delete e[t]
                        })
                    }
                    e = Object.assign({
                        texture: Xt.WHITE,
                        color: 16777215,
                        alpha: 1,
                        matrix: null
                    }, e), this.currentPath && this.startPoly();
                    var a = e.alpha > 0;
                    return a ? (e.matrix && (e.matrix = e.matrix.clone(), e.matrix.invert()), Object.assign(this._fillStyle, {
                        visible: a
                    }, e)) : this._fillStyle.reset(), this
                }, t.prototype.endFill = function() {
                    return this.finishPoly(), this._fillStyle.reset(), this
                }, t.prototype.drawRect = function(e, t, i, r) {
                    return this.drawShape(new We(e, t, i, r))
                }, t.prototype.drawRoundedRect = function(e, t, i, r, n) {
                    return this.drawShape(new Je(e, t, i, r, n))
                }, t.prototype.drawCircle = function(e, t, i) {
                    return this.drawShape(new Ye(e, t, i))
                }, t.prototype.drawEllipse = function(e, t, i, r) {
                    return this.drawShape(new ze(e, t, i, r))
                }, t.prototype.drawPolygon = function(e) {
                    var t = arguments,
                        i = e,
                        r = !0;
                    if (i.points && (r = i.closeStroke, i = i.points), !Array.isArray(i)) {
                        i = new Array(arguments.length);
                        for (var n = 0; n < i.length; ++n) i[n] = t[n]
                    }
                    var a = new qe(i);
                    return a.closeStroke = r, this.drawShape(a), this
                }, t.prototype.drawShape = function(e) {
                    return this._holeMode ? this.geometry.drawHole(e, this._matrix) : this.geometry.drawShape(e, this._fillStyle.clone(), this._lineStyle.clone(), this._matrix), this
                }, t.prototype.drawStar = function(e, t, i, r, n, a) {
                    return void 0 === a && (a = 0), this.drawPolygon(new Pn(e, t, i, r, n, a))
                }, t.prototype.clear = function() {
                    return this.geometry.clear(), this._lineStyle.reset(), this._fillStyle.reset(), this._matrix = null, this._holeMode = !1, this.currentPath = null, this
                }, t.prototype.isFastRect = function() {
                    return 1 === this.geometry.graphicsData.length && this.geometry.graphicsData[0].shape.type === Me.RECT && !this.geometry.graphicsData[0].lineWidth
                }, t.prototype._render = function(e) {
                    this.finishPoly();
                    var t = this.geometry;
                    t.updateBatches(), t.batchable ? (this.batchDirty !== t.batchDirty && this._populateBatches(), this._renderBatched(e)) : (e.batch.flush(), this._renderDirect(e))
                }, t.prototype._populateBatches = function() {
                    var e = this.geometry,
                        t = this.blendMode;
                    this.batches = [], this.batchTint = -1, this._transformID = -1, this.batchDirty = e.batchDirty, this.vertexData = new Float32Array(e.points);
                    for (var i = 0, r = e.batches.length; i < r; i++) {
                        var n = e.batches[i],
                            a = n.style.color,
                            s = new Float32Array(this.vertexData.buffer, 4 * n.attribStart * 2, 2 * n.attribSize),
                            o = new Float32Array(e.uvsFloat32.buffer, 4 * n.attribStart * 2, 2 * n.attribSize),
                            u = {
                                vertexData: s,
                                blendMode: t,
                                indices: new Uint16Array(e.indicesUint16.buffer, 2 * n.start, n.size),
                                uvs: o,
                                _batchRGB: J(a),
                                _tintRGB: a,
                                _texture: n.style.texture,
                                alpha: n.style.alpha,
                                worldAlpha: 1
                            };
                        this.batches[i] = u
                    }
                }, t.prototype._renderBatched = function(e) {
                    if (this.batches.length) {
                        e.batch.setObjectRenderer(e.plugins[this.pluginName]), this.calculateVertices(), this.calculateTints();
                        for (var t = 0, i = this.batches.length; t < i; t++) {
                            var r = this.batches[t];
                            r.worldAlpha = this.worldAlpha * r.alpha, e.plugins[this.pluginName].render(r)
                        }
                    }
                }, t.prototype._renderDirect = function(e) {
                    var t = this._resolveDirectShader(e),
                        i = this.geometry,
                        r = this.tint,
                        n = this.worldAlpha,
                        a = t.uniforms,
                        s = i.drawCalls;
                    a.translationMatrix = this.transform.worldTransform, a.tint[0] = (r >> 16 & 255) / 255 * n, a.tint[1] = (r >> 8 & 255) / 255 * n, a.tint[2] = (255 & r) / 255 * n, a.tint[3] = n, e.shader.bind(t), e.geometry.bind(i, t), e.state.set(this.state);
                    for (var o = 0, u = s.length; o < u; o++) this._renderDrawCallDirect(e, i.drawCalls[o])
                }, t.prototype._renderDrawCallDirect = function(e, t) {
                    for (var i = t.textures, r = t.type, n = t.size, a = t.start, s = i.count, o = 0; o < s; o++) e.texture.bind(i.elements[o], o);
                    e.geometry.draw(r, n, a)
                }, t.prototype._resolveDirectShader = function(e) {
                    var t = this.shader,
                        i = this.pluginName;
                    if (!t) {
                        if (!Gn[i]) {
                            for (var r = new Int32Array(16), n = 0; n < 16; n++) r[n] = n;
                            var a = {
                                    tint: new Float32Array([1, 1, 1, 1]),
                                    translationMatrix: new Be,
                                    default: ri.from({
                                        uSamplers: r
                                    }, !0)
                                },
                                s = e.plugins[i]._shader.program;
                            Gn[i] = new Ui(s, a)
                        }
                        t = Gn[i]
                    }
                    return t
                }, t.prototype._calculateBounds = function() {
                    this.finishPoly();
                    var e = this.geometry;
                    if (e.graphicsData.length) {
                        var t = e.bounds,
                            i = t.minX,
                            r = t.minY,
                            n = t.maxX,
                            a = t.maxY;
                        this._bounds.addFrame(this.transform, i, r, n, a)
                    }
                }, t.prototype.containsPoint = function(e) {
                    return this.worldTransform.applyInverse(e, t._TEMP_POINT), this.geometry.containsPoint(t._TEMP_POINT)
                }, t.prototype.calculateTints = function() {
                    if (this.batchTint !== this.tint) {
                        this.batchTint = this.tint;
                        for (var e = J(this.tint, jn), t = 0; t < this.batches.length; t++) {
                            var i = this.batches[t],
                                r = i._batchRGB,
                                n = (e[0] * r[0] * 255 << 16) + (e[1] * r[1] * 255 << 8) + (0 | e[2] * r[2] * 255);
                            i._tintRGB = (n >> 16) + (65280 & n) + ((255 & n) << 16)
                        }
                    }
                }, t.prototype.calculateVertices = function() {
                    if (this._transformID !== this.transform._worldID) {
                        this._transformID = this.transform._worldID;
                        for (var e = this.transform.worldTransform, t = e.a, i = e.b, r = e.c, n = e.d, a = e.tx, s = e.ty, o = this.geometry.points, u = this.vertexData, h = 0, l = 0; l < o.length; l += 2) {
                            var f = o[l],
                                c = o[l + 1];
                            u[h++] = t * f + r * c + a, u[h++] = n * c + i * f + s
                        }
                    }
                }, t.prototype.closePath = function() {
                    var e = this.currentPath;
                    return e && (e.closeStroke = !0), this
                }, t.prototype.setMatrix = function(e) {
                    return this._matrix = e, this
                }, t.prototype.beginHole = function() {
                    return this.finishPoly(), this._holeMode = !0, this
                }, t.prototype.endHole = function() {
                    return this.finishPoly(), this._holeMode = !1, this
                }, t.prototype.destroy = function(t) {
                    e.prototype.destroy.call(this, t), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this._matrix = null, this.currentPath = null, this._lineStyle.destroy(), this._lineStyle = null, this._fillStyle.destroy(), this._fillStyle = null, this.geometry = null, this.shader = null, this.vertexData = null, this.batches.length = 0, this.batches = null, e.prototype.destroy.call(this, t)
                }, Object.defineProperties(t.prototype, i), t
            }(et);
        $n._TEMP_POINT = new Ce;
        /*!
         * @pixi/sprite - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/sprite is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Hn = new Ce,
            Wn = new Uint16Array([0, 1, 2, 0, 2, 3]),
            Yn = function(e) {
                function t(t) {
                    e.call(this), this._anchor = new Oe(this._onAnchorUpdate, this, t ? t.defaultAnchor.x : 0, t ? t.defaultAnchor.y : 0), this._texture = null, this._width = 0, this._height = 0, this._tint = null, this._tintRGB = null, this.tint = 16777215, this.blendMode = T.NORMAL, this.shader = null, this._cachedTint = 16777215, this.uvs = null, this.texture = t || Xt.EMPTY, this.vertexData = new Float32Array(8), this.vertexTrimmedData = null, this._transformID = -1, this._textureID = -1, this._transformTrimmedID = -1, this._textureTrimmedID = -1, this.indices = Wn, this.pluginName = "batch", this.isSprite = !0, this._roundPixels = N.ROUND_PIXELS
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    roundPixels: {
                        configurable: !0
                    },
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    },
                    anchor: {
                        configurable: !0
                    },
                    tint: {
                        configurable: !0
                    },
                    texture: {
                        configurable: !0
                    }
                };
                return t.prototype._onTextureUpdate = function() {
                    this._textureID = -1, this._textureTrimmedID = -1, this._cachedTint = 16777215, this._width && (this.scale.x = de(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = de(this.scale.y) * this._height / this._texture.orig.height)
                }, t.prototype._onAnchorUpdate = function() {
                    this._transformID = -1, this._transformTrimmedID = -1
                }, t.prototype.calculateVertices = function() {
                    var e = this._texture;
                    if (this._transformID !== this.transform._worldID || this._textureID !== e._updateID) {
                        this._textureID !== e._updateID && (this.uvs = this._texture._uvs.uvsFloat32), this._transformID = this.transform._worldID, this._textureID = e._updateID;
                        var t = this.transform.worldTransform,
                            i = t.a,
                            r = t.b,
                            n = t.c,
                            a = t.d,
                            s = t.tx,
                            o = t.ty,
                            u = this.vertexData,
                            h = e.trim,
                            l = e.orig,
                            f = this._anchor,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        if (h ? (c = (d = h.x - f._x * l.width) + h.width, p = (v = h.y - f._y * l.height) + h.height) : (c = (d = -f._x * l.width) + l.width, p = (v = -f._y * l.height) + l.height), u[0] = i * d + n * v + s, u[1] = a * v + r * d + o, u[2] = i * c + n * v + s, u[3] = a * v + r * c + o, u[4] = i * c + n * p + s, u[5] = a * p + r * c + o, u[6] = i * d + n * p + s, u[7] = a * p + r * d + o, this._roundPixels)
                            for (var m = N.RESOLUTION, _ = 0; _ < u.length; ++_) u[_] = Math.round((u[_] * m | 0) / m)
                    }
                }, t.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 e = this._texture,
                        t = this.vertexTrimmedData,
                        i = e.orig,
                        r = this._anchor,
                        n = this.transform.worldTransform,
                        a = n.a,
                        s = n.b,
                        o = n.c,
                        u = n.d,
                        h = n.tx,
                        l = n.ty,
                        f = -r._x * i.width,
                        c = f + i.width,
                        d = -r._y * i.height,
                        p = d + i.height;
                    t[0] = a * f + o * d + h, t[1] = u * d + s * f + l, t[2] = a * c + o * d + h, t[3] = u * d + s * c + l, t[4] = a * c + o * p + h, t[5] = u * p + s * c + l, t[6] = a * f + o * p + h, t[7] = u * p + s * f + l
                }, t.prototype._render = function(e) {
                    this.calculateVertices(), e.batch.setObjectRenderer(e.plugins[this.pluginName]), e.plugins[this.pluginName].render(this)
                }, t.prototype._calculateBounds = function() {
                    var e = this._texture.trim,
                        t = this._texture.orig;
                    !e || e.width === t.width && e.height === t.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData))
                }, t.prototype.getLocalBounds = function(t) {
                    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), t || (this._localBoundsRect || (this._localBoundsRect = new We), t = this._localBoundsRect), this._bounds.getRectangle(t)) : e.prototype.getLocalBounds.call(this, t)
                }, t.prototype.containsPoint = function(e) {
                    this.worldTransform.applyInverse(e, Hn);
                    var t = this._texture.orig.width,
                        i = this._texture.orig.height,
                        r = -t * this.anchor.x,
                        n = 0;
                    return Hn.x >= r && Hn.x < r + t && (n = -i * this.anchor.y, Hn.y >= n && Hn.y < n + i)
                }, t.prototype.destroy = function(t) {
                    if (e.prototype.destroy.call(this, t), this._texture.off("update", this._onTextureUpdate, this), this._anchor = null, "boolean" == typeof t ? t : t && t.texture) {
                        var i = "boolean" == typeof t ? t : t && t.baseTexture;
                        this._texture.destroy(!!i)
                    }
                    this._texture = null, this.shader = null
                }, t.from = function(e, i) {
                    return new t(e instanceof Xt ? e : Xt.from(e, i))
                }, i.roundPixels.set = function(e) {
                    this._roundPixels !== e && (this._transformID = -1), this._roundPixels = e
                }, i.roundPixels.get = function() {
                    return this._roundPixels
                }, i.width.get = function() {
                    return Math.abs(this.scale.x) * this._texture.orig.width
                }, i.width.set = function(e) {
                    var t = de(this.scale.x) || 1;
                    this.scale.x = t * e / this._texture.orig.width, this._width = e
                }, i.height.get = function() {
                    return Math.abs(this.scale.y) * this._texture.orig.height
                }, i.height.set = function(e) {
                    var t = de(this.scale.y) || 1;
                    this.scale.y = t * e / this._texture.orig.height, this._height = e
                }, i.anchor.get = function() {
                    return this._anchor
                }, i.anchor.set = function(e) {
                    this._anchor.copyFrom(e)
                }, i.tint.get = function() {
                    return this._tint
                }, i.tint.set = function(e) {
                    this._tint = e, this._tintRGB = (e >> 16) + (65280 & e) + ((255 & e) << 16)
                }, i.texture.get = function() {
                    return this._texture
                }, i.texture.set = function(e) {
                    this._texture !== e && (this._texture && this._texture.off("update", this._onTextureUpdate, this), this._texture = e || Xt.EMPTY, this._cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, e && (e.baseTexture.valid ? this._onTextureUpdate() : e.once("update", this._onTextureUpdate, this)))
                }, Object.defineProperties(t.prototype, i), t
            }(et),
            zn = {
                LINEAR_VERTICAL: 0,
                LINEAR_HORIZONTAL: 1
            },
            qn = {
                align: "left",
                breakWords: !1,
                dropShadow: !1,
                dropShadowAlpha: 1,
                dropShadowAngle: Math.PI / 6,
                dropShadowBlur: 0,
                dropShadowColor: "black",
                dropShadowDistance: 5,
                fill: "black",
                fillGradientType: zn.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
            },
            Jn = ["serif", "sans-serif", "monospace", "cursive", "fantasy", "system-ui"],
            Qn = function(e) {
                this.styleID = 0, this.reset(), ta(this, e, e)
            },
            Zn = {
                align: {
                    configurable: !0
                },
                breakWords: {
                    configurable: !0
                },
                dropShadow: {
                    configurable: !0
                },
                dropShadowAlpha: {
                    configurable: !0
                },
                dropShadowAngle: {
                    configurable: !0
                },
                dropShadowBlur: {
                    configurable: !0
                },
                dropShadowColor: {
                    configurable: !0
                },
                dropShadowDistance: {
                    configurable: !0
                },
                fill: {
                    configurable: !0
                },
                fillGradientType: {
                    configurable: !0
                },
                fillGradientStops: {
                    configurable: !0
                },
                fontFamily: {
                    configurable: !0
                },
                fontSize: {
                    configurable: !0
                },
                fontStyle: {
                    configurable: !0
                },
                fontVariant: {
                    configurable: !0
                },
                fontWeight: {
                    configurable: !0
                },
                letterSpacing: {
                    configurable: !0
                },
                lineHeight: {
                    configurable: !0
                },
                leading: {
                    configurable: !0
                },
                lineJoin: {
                    configurable: !0
                },
                miterLimit: {
                    configurable: !0
                },
                padding: {
                    configurable: !0
                },
                stroke: {
                    configurable: !0
                },
                strokeThickness: {
                    configurable: !0
                },
                textBaseline: {
                    configurable: !0
                },
                trim: {
                    configurable: !0
                },
                whiteSpace: {
                    configurable: !0
                },
                wordWrap: {
                    configurable: !0
                },
                wordWrapWidth: {
                    configurable: !0
                }
            };

        function Kn(e) {
            return "number" == typeof e ? Q(e) : ("string" == typeof e && 0 === e.indexOf("0x") && (e = e.replace("0x", "#")), e)
        }

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

        function ta(e, t, i) {
            for (var r in i) Array.isArray(t[r]) ? e[r] = t[r].slice() : e[r] = t[r]
        }
        Qn.prototype.clone = function() {
            var e = {};
            return ta(e, this, qn), new Qn(e)
        }, Qn.prototype.reset = function() {
            ta(this, qn, qn)
        }, Zn.align.get = function() {
            return this._align
        }, Zn.align.set = function(e) {
            this._align !== e && (this._align = e, this.styleID++)
        }, Zn.breakWords.get = function() {
            return this._breakWords
        }, Zn.breakWords.set = function(e) {
            this._breakWords !== e && (this._breakWords = e, this.styleID++)
        }, Zn.dropShadow.get = function() {
            return this._dropShadow
        }, Zn.dropShadow.set = function(e) {
            this._dropShadow !== e && (this._dropShadow = e, this.styleID++)
        }, Zn.dropShadowAlpha.get = function() {
            return this._dropShadowAlpha
        }, Zn.dropShadowAlpha.set = function(e) {
            this._dropShadowAlpha !== e && (this._dropShadowAlpha = e, this.styleID++)
        }, Zn.dropShadowAngle.get = function() {
            return this._dropShadowAngle
        }, Zn.dropShadowAngle.set = function(e) {
            this._dropShadowAngle !== e && (this._dropShadowAngle = e, this.styleID++)
        }, Zn.dropShadowBlur.get = function() {
            return this._dropShadowBlur
        }, Zn.dropShadowBlur.set = function(e) {
            this._dropShadowBlur !== e && (this._dropShadowBlur = e, this.styleID++)
        }, Zn.dropShadowColor.get = function() {
            return this._dropShadowColor
        }, Zn.dropShadowColor.set = function(e) {
            var t = ea(e);
            this._dropShadowColor !== t && (this._dropShadowColor = t, this.styleID++)
        }, Zn.dropShadowDistance.get = function() {
            return this._dropShadowDistance
        }, Zn.dropShadowDistance.set = function(e) {
            this._dropShadowDistance !== e && (this._dropShadowDistance = e, this.styleID++)
        }, Zn.fill.get = function() {
            return this._fill
        }, Zn.fill.set = function(e) {
            var t = ea(e);
            this._fill !== t && (this._fill = t, this.styleID++)
        }, Zn.fillGradientType.get = function() {
            return this._fillGradientType
        }, Zn.fillGradientType.set = function(e) {
            this._fillGradientType !== e && (this._fillGradientType = e, this.styleID++)
        }, Zn.fillGradientStops.get = function() {
            return this._fillGradientStops
        }, Zn.fillGradientStops.set = function(e) {
            (function(e, t) {
                if (!Array.isArray(e) || !Array.isArray(t)) return !1;
                if (e.length !== t.length) return !1;
                for (var i = 0; i < e.length; ++i)
                    if (e[i] !== t[i]) return !1;
                return !0
            })(this._fillGradientStops, e) || (this._fillGradientStops = e, this.styleID++)
        }, Zn.fontFamily.get = function() {
            return this._fontFamily
        }, Zn.fontFamily.set = function(e) {
            this.fontFamily !== e && (this._fontFamily = e, this.styleID++)
        }, Zn.fontSize.get = function() {
            return this._fontSize
        }, Zn.fontSize.set = function(e) {
            this._fontSize !== e && (this._fontSize = e, this.styleID++)
        }, Zn.fontStyle.get = function() {
            return this._fontStyle
        }, Zn.fontStyle.set = function(e) {
            this._fontStyle !== e && (this._fontStyle = e, this.styleID++)
        }, Zn.fontVariant.get = function() {
            return this._fontVariant
        }, Zn.fontVariant.set = function(e) {
            this._fontVariant !== e && (this._fontVariant = e, this.styleID++)
        }, Zn.fontWeight.get = function() {
            return this._fontWeight
        }, Zn.fontWeight.set = function(e) {
            this._fontWeight !== e && (this._fontWeight = e, this.styleID++)
        }, Zn.letterSpacing.get = function() {
            return this._letterSpacing
        }, Zn.letterSpacing.set = function(e) {
            this._letterSpacing !== e && (this._letterSpacing = e, this.styleID++)
        }, Zn.lineHeight.get = function() {
            return this._lineHeight
        }, Zn.lineHeight.set = function(e) {
            this._lineHeight !== e && (this._lineHeight = e, this.styleID++)
        }, Zn.leading.get = function() {
            return this._leading
        }, Zn.leading.set = function(e) {
            this._leading !== e && (this._leading = e, this.styleID++)
        }, Zn.lineJoin.get = function() {
            return this._lineJoin
        }, Zn.lineJoin.set = function(e) {
            this._lineJoin !== e && (this._lineJoin = e, this.styleID++)
        }, Zn.miterLimit.get = function() {
            return this._miterLimit
        }, Zn.miterLimit.set = function(e) {
            this._miterLimit !== e && (this._miterLimit = e, this.styleID++)
        }, Zn.padding.get = function() {
            return this._padding
        }, Zn.padding.set = function(e) {
            this._padding !== e && (this._padding = e, this.styleID++)
        }, Zn.stroke.get = function() {
            return this._stroke
        }, Zn.stroke.set = function(e) {
            var t = ea(e);
            this._stroke !== t && (this._stroke = t, this.styleID++)
        }, Zn.strokeThickness.get = function() {
            return this._strokeThickness
        }, Zn.strokeThickness.set = function(e) {
            this._strokeThickness !== e && (this._strokeThickness = e, this.styleID++)
        }, Zn.textBaseline.get = function() {
            return this._textBaseline
        }, Zn.textBaseline.set = function(e) {
            this._textBaseline !== e && (this._textBaseline = e, this.styleID++)
        }, Zn.trim.get = function() {
            return this._trim
        }, Zn.trim.set = function(e) {
            this._trim !== e && (this._trim = e, this.styleID++)
        }, Zn.whiteSpace.get = function() {
            return this._whiteSpace
        }, Zn.whiteSpace.set = function(e) {
            this._whiteSpace !== e && (this._whiteSpace = e, this.styleID++)
        }, Zn.wordWrap.get = function() {
            return this._wordWrap
        }, Zn.wordWrap.set = function(e) {
            this._wordWrap !== e && (this._wordWrap = e, this.styleID++)
        }, Zn.wordWrapWidth.get = function() {
            return this._wordWrapWidth
        }, Zn.wordWrapWidth.set = function(e) {
            this._wordWrapWidth !== e && (this._wordWrapWidth = e, this.styleID++)
        }, Qn.prototype.toFontString = function() {
            var e = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize,
                t = this.fontFamily;
            Array.isArray(this.fontFamily) || (t = this.fontFamily.split(","));
            for (var i = t.length - 1; i >= 0; i--) {
                var r = t[i].trim();
                !/([\"\'])[^\'\"]+\1/.test(r) && Jn.indexOf(r) < 0 && (r = '"' + r + '"'), t[i] = r
            }
            return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + e + " " + t.join(",")
        }, Object.defineProperties(Qn.prototype, Zn);
        var ia = function(e, t, i, r, n, a, s, o, u) {
            this.text = e, this.style = t, this.width = i, this.height = r, this.lines = n, this.lineWidths = a, this.lineHeight = s, this.maxLineWidth = o, this.fontProperties = u
        };
        ia.measureText = function(e, t, i, r) {
            void 0 === r && (r = ia._canvas), i = null == i ? t.wordWrap : i;
            var n = t.toFontString(),
                a = ia.measureFont(n);
            0 === a.fontSize && (a.fontSize = t.fontSize, a.ascent = t.fontSize);
            var s = r.getContext("2d");
            s.font = n;
            for (var o = (i ? ia.wordWrap(e, t, r) : e).split(/(?:\r\n|\r|\n)/), u = new Array(o.length), h = 0, l = 0; l < o.length; l++) {
                var f = s.measureText(o[l]).width + (o[l].length - 1) * t.letterSpacing;
                u[l] = f, h = Math.max(h, f)
            }
            var c = h + t.strokeThickness;
            t.dropShadow && (c += t.dropShadowDistance);
            var d = t.lineHeight || a.fontSize + t.strokeThickness,
                p = Math.max(d, a.fontSize + t.strokeThickness) + (o.length - 1) * (d + t.leading);
            return t.dropShadow && (p += t.dropShadowDistance), new ia(e, t, c, p, o, u, d + t.leading, h, a)
        }, ia.wordWrap = function(e, t, i) {
            void 0 === i && (i = ia._canvas);
            for (var r = i.getContext("2d"), n = 0, a = "", s = "", o = {}, u = t.letterSpacing, h = t.whiteSpace, l = ia.collapseSpaces(h), f = ia.collapseNewlines(h), c = !l, d = t.wordWrapWidth + u, p = ia.tokenize(e), v = 0; v < p.length; v++) {
                var m = p[v];
                if (ia.isNewline(m)) {
                    if (!f) {
                        s += ia.addLine(a), c = !l, a = "", n = 0;
                        continue
                    }
                    m = " "
                }
                if (l) {
                    var _ = ia.isBreakingSpace(m),
                        b = ia.isBreakingSpace(a[a.length - 1]);
                    if (_ && b) continue
                }
                var g = ia.getFromCache(m, u, o, r);
                if (g > d)
                    if ("" !== a && (s += ia.addLine(a), a = "", n = 0), ia.canBreakWords(m, t.breakWords))
                        for (var y = ia.wordWrapSplit(m), A = 0; A < y.length; A++) {
                            for (var w = y[A], x = 1; y[A + x];) {
                                var k = y[A + x],
                                    T = w[w.length - 1];
                                if (ia.canBreakChars(T, k, m, A, t.breakWords)) break;
                                w += k, x++
                            }
                            A += w.length - 1;
                            var E = ia.getFromCache(w, u, o, r);
                            E + n > d && (s += ia.addLine(a), c = !1, a = "", n = 0), a += w, n += E
                        } else {
                            a.length > 0 && (s += ia.addLine(a), a = "", n = 0);
                            var S = v === p.length - 1;
                            s += ia.addLine(m, !S), c = !1, a = "", n = 0
                        } else g + n > d && (c = !1, s += ia.addLine(a), a = "", n = 0), (a.length > 0 || !ia.isBreakingSpace(m) || c) && (a += m, n += g)
            }
            return s += ia.addLine(a, !1)
        }, ia.addLine = function(e, t) {
            return void 0 === t && (t = !0), e = ia.trimRight(e), e = t ? e + "\n" : e
        }, ia.getFromCache = function(e, t, i, r) {
            var n = i[e];
            if (void 0 === n) {
                var a = e.length * t;
                n = r.measureText(e).width + a, i[e] = n
            }
            return n
        }, ia.collapseSpaces = function(e) {
            return "normal" === e || "pre-line" === e
        }, ia.collapseNewlines = function(e) {
            return "normal" === e
        }, ia.trimRight = function(e) {
            if ("string" != typeof e) return "";
            for (var t = e.length - 1; t >= 0; t--) {
                var i = e[t];
                if (!ia.isBreakingSpace(i)) break;
                e = e.slice(0, -1)
            }
            return e
        }, ia.isNewline = function(e) {
            return "string" == typeof e && ia._newlines.indexOf(e.charCodeAt(0)) >= 0
        }, ia.isBreakingSpace = function(e) {
            return "string" == typeof e && ia._breakingSpaces.indexOf(e.charCodeAt(0)) >= 0
        }, ia.tokenize = function(e) {
            var t = [],
                i = "";
            if ("string" != typeof e) return t;
            for (var r = 0; r < e.length; r++) {
                var n = e[r];
                ia.isBreakingSpace(n) || ia.isNewline(n) ? ("" !== i && (t.push(i), i = ""), t.push(n)) : i += n
            }
            return "" !== i && t.push(i), t
        }, ia.canBreakWords = function(e, t) {
            return t
        }, ia.canBreakChars = function(e, t, i, r, n) {
            return !0
        }, ia.wordWrapSplit = function(e) {
            return e.split("")
        }, ia.measureFont = function(e) {
            if (ia._fonts[e]) return ia._fonts[e];
            var t = {},
                i = ia._canvas,
                r = ia._context;
            r.font = e;
            var n = ia.METRICS_STRING + ia.BASELINE_SYMBOL,
                a = Math.ceil(r.measureText(n).width),
                s = Math.ceil(r.measureText(ia.BASELINE_SYMBOL).width),
                o = 2 * s;
            s = s * ia.BASELINE_MULTIPLIER | 0, i.width = a, i.height = o, r.fillStyle = "#f00", r.fillRect(0, 0, a, o), r.font = e, r.textBaseline = "alphabetic", r.fillStyle = "#000", r.fillText(n, 0, s);
            var u = r.getImageData(0, 0, a, o).data,
                h = u.length,
                l = 4 * a,
                f = 0,
                c = 0,
                d = !1;
            for (f = 0; f < s; ++f) {
                for (var p = 0; p < l; p += 4)
                    if (255 !== u[c + p]) {
                        d = !0;
                        break
                    }
                if (d) break;
                c += l
            }
            for (t.ascent = s - f, c = h - l, d = !1, f = o; f > s; --f) {
                for (var v = 0; v < l; v += 4)
                    if (255 !== u[c + v]) {
                        d = !0;
                        break
                    }
                if (d) break;
                c -= l
            }
            return t.descent = f - s, t.fontSize = t.ascent + t.descent, ia._fonts[e] = t, t
        }, ia.clearMetrics = function(e) {
            void 0 === e && (e = ""), e ? delete ia._fonts[e] : ia._fonts = {}
        };
        var ra = function() {
            try {
                var e = new OffscreenCanvas(0, 0),
                    t = e.getContext("2d");
                return t && t.measureText ? e : document.createElement("canvas")
            } catch (e) {
                return document.createElement("canvas")
            }
        }();
        ra.width = ra.height = 10, ia._canvas = ra, ia._context = ra.getContext("2d"), ia._fonts = {}, ia.METRICS_STRING = "|ÉqÅ", ia.BASELINE_SYMBOL = "M", ia.BASELINE_MULTIPLIER = 1.4, ia._newlines = [10, 13], ia._breakingSpaces = [9, 32, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8200, 8201, 8202, 8287, 12288];
        var na = {
                texture: !0,
                children: !1,
                baseTexture: !0
            },
            aa = function(e) {
                function t(t, i, r) {
                    var n = !1;
                    r || (r = document.createElement("canvas"), n = !0), r.width = 3, r.height = 3;
                    var a = Xt.from(r);
                    a.orig = new We, a.trim = new We, e.call(this, a), this._ownCanvas = n, this.canvas = r, this.context = this.canvas.getContext("2d"), this._resolution = N.RESOLUTION, this._autoResolution = !0, this._text = null, this._style = null, this._styleListener = null, this._font = "", this.text = t, this.style = i, this.localStyleID = -1
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    },
                    style: {
                        configurable: !0
                    },
                    text: {
                        configurable: !0
                    },
                    resolution: {
                        configurable: !0
                    }
                };
                return t.prototype.updateText = function(e) {
                    var t = this._style;
                    if (this.localStyleID !== t.styleID && (this.dirty = !0, this.localStyleID = t.styleID), this.dirty || !e) {
                        this._font = this._style.toFontString();
                        var i, r, n = this.context,
                            a = ia.measureText(this._text || " ", this._style, this._style.wordWrap, this.canvas),
                            s = a.width,
                            o = a.height,
                            u = a.lines,
                            h = a.lineHeight,
                            l = a.lineWidths,
                            f = a.maxLineWidth,
                            c = a.fontProperties;
                        this.canvas.width = Math.ceil((Math.max(1, s) + 2 * t.padding) * this._resolution), this.canvas.height = Math.ceil((Math.max(1, o) + 2 * t.padding) * this._resolution), n.scale(this._resolution, this._resolution), n.clearRect(0, 0, this.canvas.width, this.canvas.height), n.font = this._font, n.lineWidth = t.strokeThickness, n.textBaseline = t.textBaseline, n.lineJoin = t.lineJoin, n.miterLimit = t.miterLimit;
                        for (var d = t.dropShadow ? 2 : 1, p = 0; p < d; ++p) {
                            var v = t.dropShadow && 0 === p,
                                m = v ? 2 * o : 0,
                                _ = m * this.resolution;
                            if (v) {
                                n.fillStyle = "black", n.strokeStyle = "black";
                                var b = t.dropShadowColor,
                                    g = J("number" == typeof b ? b : Z(b));
                                n.shadowColor = "rgba(" + 255 * g[0] + "," + 255 * g[1] + "," + 255 * g[2] + "," + t.dropShadowAlpha + ")", n.shadowBlur = t.dropShadowBlur, n.shadowOffsetX = Math.cos(t.dropShadowAngle) * t.dropShadowDistance, n.shadowOffsetY = Math.sin(t.dropShadowAngle) * t.dropShadowDistance + _
                            } else n.fillStyle = this._generateFillStyle(t, u, a), n.strokeStyle = t.stroke, n.shadowColor = 0, n.shadowBlur = 0, n.shadowOffsetX = 0, n.shadowOffsetY = 0;
                            for (var y = 0; y < u.length; y++) i = t.strokeThickness / 2, r = t.strokeThickness / 2 + y * h + c.ascent, "right" === t.align ? i += f - l[y] : "center" === t.align && (i += (f - l[y]) / 2), t.stroke && t.strokeThickness && this.drawLetterSpacing(u[y], i + t.padding, r + t.padding - m, !0), t.fill && this.drawLetterSpacing(u[y], i + t.padding, r + t.padding - m)
                        }
                        this.updateTexture()
                    }
                }, t.prototype.drawLetterSpacing = function(e, t, i, r) {
                    void 0 === r && (r = !1);
                    var n = this._style.letterSpacing;
                    if (0 !== n)
                        for (var a = t, s = Array.from ? Array.from(e) : e.split(""), o = this.context.measureText(e).width, u = 0, h = 0; h < s.length; ++h) {
                            var l = s[h];
                            r ? this.context.strokeText(l, a, i) : this.context.fillText(l, a, i), a += o - (u = this.context.measureText(e.substring(h + 1)).width) + n, o = u
                        } else r ? this.context.strokeText(e, t, i) : this.context.fillText(e, t, i)
                }, t.prototype.updateTexture = function() {
                    var e = this.canvas;
                    if (this._style.trim) {
                        var t = ke(e);
                        t.data && (e.width = t.width, e.height = t.height, this.context.putImageData(t.data, 0, 0))
                    }
                    var i = this._texture,
                        r = this._style,
                        n = r.trim ? 0 : r.padding,
                        a = i.baseTexture;
                    i.trim.width = i._frame.width = Math.ceil(e.width / this._resolution), i.trim.height = i._frame.height = Math.ceil(e.height / this._resolution), i.trim.x = -n, i.trim.y = -n, i.orig.width = i._frame.width - 2 * n, i.orig.height = i._frame.height - 2 * n, this._onTextureUpdate(), a.setRealSize(e.width, e.height, this._resolution), this.dirty = !1
                }, t.prototype._render = function(t) {
                    this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), e.prototype._render.call(this, t)
                }, t.prototype.getLocalBounds = function(t) {
                    return this.updateText(!0), e.prototype.getLocalBounds.call(this, t)
                }, t.prototype._calculateBounds = function() {
                    this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData)
                }, t.prototype._onStyleChange = function() {
                    this.dirty = !0
                }, t.prototype._generateFillStyle = function(e, t, i) {
                    if (!Array.isArray(e.fill)) return e.fill;
                    if (1 === e.fill.length) return e.fill[0];
                    var r, n = e.dropShadow ? e.dropShadowDistance : 0,
                        a = e.padding || 0,
                        s = Math.ceil(this.canvas.width / this._resolution) - n - 2 * a,
                        o = Math.ceil(this.canvas.height / this._resolution) - n - 2 * a,
                        u = e.fill.slice(),
                        h = e.fillGradientStops.slice();
                    if (!h.length)
                        for (var l = u.length + 1, f = 1; f < l; ++f) h.push(f / l);
                    if (u.unshift(e.fill[0]), h.unshift(0), u.push(e.fill[e.fill.length - 1]), h.push(1), e.fillGradientType === zn.LINEAR_VERTICAL) {
                        r = this.context.createLinearGradient(s / 2, a, s / 2, o + a);
                        for (var c = 0, d = (i.fontProperties.fontSize + e.strokeThickness) / o, p = 0; p < t.length; p++)
                            for (var v = i.lineHeight * p, m = 0; m < u.length; m++) {
                                var _ = v / o + ("number" == typeof h[m] ? h[m] : m / u.length) * d,
                                    b = Math.max(c, _);
                                b = Math.min(b, 1), r.addColorStop(b, u[m]), c = b
                            }
                    } else {
                        r = this.context.createLinearGradient(a, o / 2, s + a, o / 2);
                        for (var g = u.length + 1, y = 1, A = 0; A < u.length; A++) {
                            var w = void 0;
                            w = "number" == typeof h[A] ? h[A] : y / g, r.addColorStop(w, u[A]), y++
                        }
                    }
                    return r
                }, t.prototype.destroy = function(t) {
                    "boolean" == typeof t && (t = {
                        children: t
                    }), t = Object.assign({}, na, t), e.prototype.destroy.call(this, t), this._ownCanvas && (this.canvas.height = this.canvas.width = 0), this.context = null, this.canvas = null, this._style = null
                }, i.width.get = function() {
                    return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width
                }, i.width.set = function(e) {
                    this.updateText(!0);
                    var t = de(this.scale.x) || 1;
                    this.scale.x = t * e / this._texture.orig.width, this._width = e
                }, i.height.get = function() {
                    return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height
                }, i.height.set = function(e) {
                    this.updateText(!0);
                    var t = de(this.scale.y) || 1;
                    this.scale.y = t * e / this._texture.orig.height, this._height = e
                }, i.style.get = function() {
                    return this._style
                }, i.style.set = function(e) {
                    e = e || {}, this._style = e instanceof Qn ? e : new Qn(e), this.localStyleID = -1, this.dirty = !0
                }, i.text.get = function() {
                    return this._text
                }, i.text.set = function(e) {
                    e = String(null == e ? "" : e), this._text !== e && (this._text = e, this.dirty = !0)
                }, i.resolution.get = function() {
                    return this._resolution
                }, i.resolution.set = function(e) {
                    this._autoResolution = !1, this._resolution !== e && (this._resolution = e, this.dirty = !0)
                }, Object.defineProperties(t.prototype, i), t
            }(Yn);
        /*!
         * @pixi/prepare - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/prepare is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        N.UPLOADS_PER_FRAME = 4;
        var sa = function(e) {
            this.maxItemsPerFrame = e, this.itemsLeft = 0
        };
        sa.prototype.beginFrame = function() {
            this.itemsLeft = this.maxItemsPerFrame
        }, sa.prototype.allowedToUpload = function() {
            return this.itemsLeft-- > 0
        };
        var oa = function(e) {
            var t = this;
            this.limiter = new sa(N.UPLOADS_PER_FRAME), this.renderer = e, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() {
                t.queue && t.prepareItems()
            }, this.registerFindHook(da), this.registerFindHook(pa), this.registerFindHook(ua), this.registerFindHook(ha), this.registerFindHook(la), this.registerUploadHook(fa), this.registerUploadHook(ca)
        };

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

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

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

        function fa(e, t) {
            return t instanceof aa && (t.updateText(!0), !0)
        }

        function ca(e, t) {
            if (t instanceof Qn) {
                var i = t.toFontString();
                return ia.measureFont(i), !0
            }
            return !1
        }

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

        function pa(e, t) {
            return e instanceof Qn && (-1 === t.indexOf(e) && t.push(e), !0)
        }
        oa.prototype.upload = function(e, t) {
            "function" == typeof e && (t = e, e = null), e && this.add(e), this.queue.length ? (t && this.completes.push(t), this.ticking || (this.ticking = !0, at.system.addOnce(this.tick, this, it.UTILITY))) : t && t()
        }, oa.prototype.tick = function() {
            setTimeout(this.delayedTick, 0)
        }, oa.prototype.prepareItems = function() {
            for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) {
                var e = this.queue[0],
                    t = !1;
                if (e && !e._destroyed)
                    for (var i = 0, r = this.uploadHooks.length; i < r; i++)
                        if (this.uploadHooks[i](this.uploadHookHelper, e)) {
                            this.queue.shift(), t = !0;
                            break
                        }
                t || this.queue.shift()
            }
            if (this.queue.length) at.system.addOnce(this.tick, this, it.UTILITY);
            else {
                this.ticking = !1;
                var n = this.completes.slice(0);
                this.completes.length = 0;
                for (var a = 0, s = n.length; a < s; a++) n[a]()
            }
        }, oa.prototype.registerFindHook = function(e) {
            return e && this.addHooks.push(e), this
        }, oa.prototype.registerUploadHook = function(e) {
            return e && this.uploadHooks.push(e), this
        }, oa.prototype.add = function(e) {
            for (var t = 0, i = this.addHooks.length; t < i && !this.addHooks[t](e, this.queue); t++);
            if (e instanceof et)
                for (var r = e.children.length - 1; r >= 0; r--) this.add(e.children[r]);
            return this
        }, oa.prototype.destroy = function() {
            this.ticking && at.system.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
        };
        var va = function(e) {
            function t(t) {
                e.call(this, t), this.uploadHookHelper = this.renderer, this.registerFindHook(ba), this.registerUploadHook(ma), this.registerUploadHook(_a)
            }
            return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
        }(oa);

        function ma(e, t) {
            return t instanceof Et && (t._glTextures[e.CONTEXT_UID] || e.texture.bind(t), !0)
        }

        function _a(e, t) {
            if (!(t instanceof $n)) return !1;
            var i = t.geometry;
            t.finishPoly(), i.updateBatches();
            for (var r = i.batches, n = 0; n < r.length; n++) {
                var a = r[n].style.texture;
                a && ma(e, a.baseTexture)
            }
            return i.batchable || e.geometry.bind(i, t._resolveDirectShader(e)), !0
        }

        function ba(e, t) {
            return e instanceof $n && (t.push(e), !0)
        }
        var ga = function(e) {
            this.maxMilliseconds = e, this.frameStart = 0
        };
        ga.prototype.beginFrame = function() {
            this.frameStart = Date.now()
        }, ga.prototype.allowedToUpload = function() {
            return Date.now() - this.frameStart < this.maxMilliseconds
        };
        /*!
         * @pixi/spritesheet - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/spritesheet is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var ya = function(e, t, i) {
                void 0 === i && (i = null), this._texture = e instanceof Xt ? e : null, this.baseTexture = e instanceof Et ? e : this._texture.baseTexture, this.textures = {}, this.animations = {}, this.data = t, this.resolution = this._updateResolution(i || (this.baseTexture.resource ? this.baseTexture.resource.url : null)), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null
            },
            Aa = {
                BATCH_SIZE: {
                    configurable: !0
                }
            };
        Aa.BATCH_SIZE.get = function() {
            return 1e3
        }, ya.prototype._updateResolution = function(e) {
            var t = this.data.meta.scale,
                i = Ie(e, null);
            return null === i && (i = void 0 !== t ? parseFloat(t) : 1), 1 !== i && this.baseTexture.setResolution(i), i
        }, ya.prototype.parse = function(e) {
            this._batchIndex = 0, this._callback = e, this._frameKeys.length <= ya.BATCH_SIZE ? (this._processFrames(0), this._processAnimations(), this._parseComplete()) : this._nextBatch()
        }, ya.prototype._processFrames = function(e) {
            for (var t = e, i = ya.BATCH_SIZE; t - e < i && t < this._frameKeys.length;) {
                var r = this._frameKeys[t],
                    n = this._frames[r],
                    a = n.frame;
                if (a) {
                    var s = null,
                        o = null,
                        u = !1 !== n.trimmed && n.sourceSize ? n.sourceSize : n.frame,
                        h = new We(0, 0, Math.floor(u.w) / this.resolution, Math.floor(u.h) / this.resolution);
                    s = n.rotated ? new We(Math.floor(a.x) / this.resolution, Math.floor(a.y) / this.resolution, Math.floor(a.h) / this.resolution, Math.floor(a.w) / this.resolution) : new We(Math.floor(a.x) / this.resolution, Math.floor(a.y) / this.resolution, Math.floor(a.w) / this.resolution, Math.floor(a.h) / this.resolution), !1 !== n.trimmed && n.spriteSourceSize && (o = new We(Math.floor(n.spriteSourceSize.x) / this.resolution, Math.floor(n.spriteSourceSize.y) / this.resolution, Math.floor(a.w) / this.resolution, Math.floor(a.h) / this.resolution)), this.textures[r] = new Xt(this.baseTexture, s, h, o, n.rotated ? 2 : 0, n.anchor), Xt.addToCache(this.textures[r], r)
                }
                t++
            }
        }, ya.prototype._processAnimations = function() {
            var e = this.data.animations || {};
            for (var t in e) {
                this.animations[t] = [];
                for (var i = 0; i < e[t].length; i++) {
                    var r = e[t][i];
                    this.animations[t].push(this.textures[r])
                }
            }
        }, ya.prototype._parseComplete = function() {
            var e = this._callback;
            this._callback = null, this._batchIndex = 0, e.call(this, this.textures)
        }, ya.prototype._nextBatch = function() {
            var e = this;
            this._processFrames(this._batchIndex * ya.BATCH_SIZE), this._batchIndex++, setTimeout(function() {
                e._batchIndex * ya.BATCH_SIZE < e._frameKeys.length ? e._nextBatch() : (e._processAnimations(), e._parseComplete())
            }, 0)
        }, ya.prototype.destroy = function(e) {
            for (var t in void 0 === e && (e = !1), this.textures) this.textures[t].destroy();
            this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, e && (this._texture && this._texture.destroy(), this.baseTexture.destroy()), this._texture = null, this.baseTexture = null
        }, Object.defineProperties(ya, Aa);
        var wa = function() {};
        wa.use = function(e, t) {
            var i = e.name + "_image";
            if (e.data && e.type === dn.TYPE.JSON && e.data.frames && !this.resources[i]) {
                var r = {
                        crossOrigin: e.crossOrigin,
                        metadata: e.metadata.imageMetadata,
                        parentResource: e
                    },
                    n = wa.getResourcePath(e, this.baseUrl);
                this.add(i, n, r, function(i) {
                    if (i.error) t(i.error);
                    else {
                        var r = new ya(i.texture, e.data, e.url);
                        r.parse(function() {
                            e.spritesheet = r, e.textures = r.textures, t()
                        })
                    }
                })
            } else t()
        }, wa.getResourcePath = function(e, t) {
            return e.isDataUrl ? e.data.meta.image : G.a.resolve(e.url.replace(t, ""), e.data.meta.image)
        };
        /*!
         * @pixi/sprite-tiling - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/sprite-tiling is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var xa = new Ce,
            ka = function(e) {
                function t(t, i, r) {
                    void 0 === i && (i = 100), void 0 === r && (r = 100), e.call(this, t), this.tileTransform = new He, this._width = i, this._height = r, this._canvasPattern = null, this.uvMatrix = t.uvMatrix || new Yi(t), this.pluginName = "tilingSprite", this.uvRespectAnchor = !1
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    clampMargin: {
                        configurable: !0
                    },
                    tileScale: {
                        configurable: !0
                    },
                    tilePosition: {
                        configurable: !0
                    },
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    }
                };
                return i.clampMargin.get = function() {
                    return this.uvMatrix.clampMargin
                }, i.clampMargin.set = function(e) {
                    this.uvMatrix.clampMargin = e, this.uvMatrix.update(!0)
                }, i.tileScale.get = function() {
                    return this.tileTransform.scale
                }, i.tileScale.set = function(e) {
                    this.tileTransform.scale.copyFrom(e)
                }, i.tilePosition.get = function() {
                    return this.tileTransform.position
                }, i.tilePosition.set = function(e) {
                    this.tileTransform.position.copyFrom(e)
                }, t.prototype._onTextureUpdate = function() {
                    this.uvMatrix && (this.uvMatrix.texture = this._texture), this._cachedTint = 16777215
                }, t.prototype._render = function(e) {
                    var t = this._texture;
                    t && t.valid && (this.tileTransform.updateLocalTransform(), this.uvMatrix.update(), e.batch.setObjectRenderer(e.plugins[this.pluginName]), e.plugins[this.pluginName].render(this))
                }, t.prototype._calculateBounds = function() {
                    var e = this._width * -this._anchor._x,
                        t = this._height * -this._anchor._y,
                        i = this._width * (1 - this._anchor._x),
                        r = this._height * (1 - this._anchor._y);
                    this._bounds.addFrame(this.transform, e, t, i, r)
                }, t.prototype.getLocalBounds = function(t) {
                    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), t || (this._localBoundsRect || (this._localBoundsRect = new We), t = this._localBoundsRect), this._bounds.getRectangle(t)) : e.prototype.getLocalBounds.call(this, t)
                }, t.prototype.containsPoint = function(e) {
                    this.worldTransform.applyInverse(e, xa);
                    var t = this._width,
                        i = this._height,
                        r = -t * this.anchor._x;
                    if (xa.x >= r && xa.x < r + t) {
                        var n = -i * this.anchor._y;
                        if (xa.y >= n && xa.y < n + i) return !0
                    }
                    return !1
                }, t.prototype.destroy = function(t) {
                    e.prototype.destroy.call(this, t), this.tileTransform = null, this.uvMatrix = null
                }, t.from = function(e, i, r) {
                    return new t(Xt.from(e), i, r)
                }, t.fromFrame = function(e, i, r) {
                    var n = ge[e];
                    if (!n) throw new Error('The frameId "' + e + '" does not exist in the texture cache ' + this);
                    return new t(n, i, r)
                }, t.fromImage = function(e, i, r, n) {
                    return n && "object" != typeof n && (n = {
                        scaleMode: arguments[4],
                        resourceOptions: {
                            crossorigin: arguments[3]
                        }
                    }), new t(Xt.from(e, n), i, r)
                }, i.width.get = function() {
                    return this._width
                }, i.width.set = function(e) {
                    this._width = e
                }, i.height.get = function() {
                    return this._height
                }, i.height.set = function(e) {
                    this._height = e
                }, Object.defineProperties(t.prototype, i), t
            }(Yn),
            Ta = "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",
            Ea = "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 = vTextureCoord - floor(vTextureCoord - uClampOffset);\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n    vec4 texSample = texture2D(uSampler, coord);\n    gl_FragColor = texSample * uColor;\n}\n",
            Sa = "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",
            Pa = new Be,
            Ia = function(e) {
                function t(t) {
                    e.call(this, t);
                    var i = {
                        globals: this.renderer.globalUniforms
                    };
                    this.shader = Ui.from(Ta, Ea, i), this.simpleShader = Ui.from(Ta, Sa, i), this.quad = new ti, this.state = Xi.for2d()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.render = function(e) {
                    var t = this.renderer,
                        i = this.quad,
                        r = i.vertices;
                    r[0] = r[6] = e._width * -e.anchor.x, r[1] = r[3] = e._height * -e.anchor.y, r[2] = r[4] = e._width * (1 - e.anchor.x), r[5] = r[7] = e._height * (1 - e.anchor.y), e.uvRespectAnchor && ((r = i.uvs)[0] = r[6] = -e.anchor.x, r[1] = r[3] = -e.anchor.y, r[2] = r[4] = 1 - e.anchor.x, r[5] = r[7] = 1 - e.anchor.y), i.invalidate();
                    var n = e._texture,
                        a = n.baseTexture,
                        s = e.tileTransform.localTransform,
                        o = e.uvMatrix,
                        u = a.isPowerOfTwo && n.frame.width === a.width && n.frame.height === a.height;
                    u && (a._glTextures[t.CONTEXT_UID] ? u = a.wrapMode !== C.CLAMP : a.wrapMode === C.CLAMP && (a.wrapMode = C.REPEAT));
                    var h = u ? this.simpleShader : this.shader,
                        l = n.width,
                        f = n.height,
                        c = e._width,
                        d = e._height;
                    Pa.set(s.a * l / c, s.b * l / d, s.c * f / c, s.d * f / d, s.tx / c, s.ty / d), Pa.invert(), u ? Pa.prepend(o.mapCoord) : (h.uniforms.uMapCoord = o.mapCoord.toArray(!0), h.uniforms.uClampFrame = o.uClampFrame, h.uniforms.uClampOffset = o.uClampOffset), h.uniforms.uTransform = Pa.toArray(!0), h.uniforms.uColor = ne(e.tint, e.worldAlpha, h.uniforms.uColor, a.alphaMode), h.uniforms.translationMatrix = e.transform.worldTransform.toArray(!0), h.uniforms.uSampler = n, t.shader.bind(h), t.geometry.bind(i), this.state.blendMode = te(e.blendMode, a.alphaMode), t.state.set(this.state), t.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0)
                }, t
            }(si),
            Ma = function(e) {
                function t(t, i) {
                    var r = this;
                    void 0 === i && (i = {}), e.call(this), this._textWidth = 0, this._textHeight = 0, this._glyphs = [], this._font = {
                        tint: void 0 !== i.tint ? i.tint : 16777215,
                        align: i.align || "left",
                        name: null,
                        size: 0
                    }, this.font = i.font, this._text = t, this._maxWidth = 0, this._maxLineHeight = 0, this._letterSpacing = 0, this._anchor = new Oe(function() {
                        r.dirty = !0
                    }, this, 0, 0), this.dirty = !1, this.roundPixels = N.ROUND_PIXELS, this.updateText()
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    tint: {
                        configurable: !0
                    },
                    align: {
                        configurable: !0
                    },
                    anchor: {
                        configurable: !0
                    },
                    font: {
                        configurable: !0
                    },
                    text: {
                        configurable: !0
                    },
                    maxWidth: {
                        configurable: !0
                    },
                    maxLineHeight: {
                        configurable: !0
                    },
                    textWidth: {
                        configurable: !0
                    },
                    letterSpacing: {
                        configurable: !0
                    },
                    textHeight: {
                        configurable: !0
                    }
                };
                return t.prototype.updateText = function() {
                    for (var e = t.fonts[this._font.name], i = this._font.size / e.size, r = new Ce, n = [], a = [], s = this._text.replace(/(?:\r\n|\r)/g, "\n") || " ", o = s.length, u = this._maxWidth * e.size / this._font.size, h = null, l = 0, f = 0, c = 0, d = -1, p = 0, v = 0, m = 0, _ = 0; _ < o; _++) {
                        var b = s.charCodeAt(_),
                            g = s.charAt(_);
                        if (/(?:\s)/.test(g) && (d = _, p = l), "\r" !== g && "\n" !== g) {
                            var y = e.chars[b];
                            y && (h && y.kerning[h] && (r.x += y.kerning[h]), n.push({
                                texture: y.texture,
                                line: c,
                                charCode: b,
                                position: new Ce(r.x + y.xOffset + this._letterSpacing / 2, r.y + y.yOffset)
                            }), r.x += y.xAdvance + this._letterSpacing, l = r.x, m = Math.max(m, y.yOffset + y.texture.height), h = b, -1 !== d && u > 0 && r.x > u && (ce(n, 1 + d - ++v, 1 + _ - d), _ = d, d = -1, a.push(p), f = Math.max(f, p), c++, r.x = 0, r.y += e.lineHeight, h = null))
                        } else a.push(l), f = Math.max(f, l), ++c, ++v, r.x = 0, r.y += e.lineHeight, h = null
                    }
                    var A = s.charAt(s.length - 1);
                    "\r" !== A && "\n" !== A && (/(?:\s)/.test(A) && (l = p), a.push(l), f = Math.max(f, l));
                    for (var w = [], x = 0; x <= c; x++) {
                        var k = 0;
                        "right" === this._font.align ? k = f - a[x] : "center" === this._font.align && (k = (f - a[x]) / 2), w.push(k)
                    }
                    for (var T = n.length, E = this.tint, S = 0; S < T; S++) {
                        var P = this._glyphs[S];
                        P ? P.texture = n[S].texture : ((P = new Yn(n[S].texture)).roundPixels = this.roundPixels, this._glyphs.push(P)), P.position.x = (n[S].position.x + w[n[S].line]) * i, P.position.y = n[S].position.y * i, P.scale.x = P.scale.y = i, P.tint = E, P.parent || this.addChild(P)
                    }
                    for (var I = T; I < this._glyphs.length; ++I) this.removeChild(this._glyphs[I]);
                    if (this._textWidth = f * i, this._textHeight = (r.y + e.lineHeight) * i, 0 !== this.anchor.x || 0 !== this.anchor.y)
                        for (var M = 0; M < T; M++) this._glyphs[M].x -= this._textWidth * this.anchor.x, this._glyphs[M].y -= this._textHeight * this.anchor.y;
                    this._maxLineHeight = m * i
                }, t.prototype.updateTransform = function() {
                    this.validate(), this.containerUpdateTransform()
                }, t.prototype.getLocalBounds = function() {
                    return this.validate(), e.prototype.getLocalBounds.call(this)
                }, t.prototype.validate = function() {
                    this.dirty && (this.updateText(), this.dirty = !1)
                }, i.tint.get = function() {
                    return this._font.tint
                }, i.tint.set = function(e) {
                    this._font.tint = "number" == typeof e && e >= 0 ? e : 16777215, this.dirty = !0
                }, i.align.get = function() {
                    return this._font.align
                }, i.align.set = function(e) {
                    this._font.align = e || "left", this.dirty = !0
                }, i.anchor.get = function() {
                    return this._anchor
                }, i.anchor.set = function(e) {
                    "number" == typeof e ? this._anchor.set(e) : this._anchor.copyFrom(e)
                }, i.font.get = function() {
                    return this._font
                }, i.font.set = function(e) {
                    e && ("string" == typeof e ? (e = e.split(" "), this._font.name = 1 === e.length ? e[0] : e.slice(1).join(" "), this._font.size = e.length >= 2 ? parseInt(e[0], 10) : t.fonts[this._font.name].size) : (this._font.name = e.name, this._font.size = "number" == typeof e.size ? e.size : parseInt(e.size, 10)), this.dirty = !0)
                }, i.text.get = function() {
                    return this._text
                }, i.text.set = function(e) {
                    e = String(null == e ? "" : e), this._text !== e && (this._text = e, this.dirty = !0)
                }, i.maxWidth.get = function() {
                    return this._maxWidth
                }, i.maxWidth.set = function(e) {
                    this._maxWidth !== e && (this._maxWidth = e, this.dirty = !0)
                }, i.maxLineHeight.get = function() {
                    return this.validate(), this._maxLineHeight
                }, i.textWidth.get = function() {
                    return this.validate(), this._textWidth
                }, i.letterSpacing.get = function() {
                    return this._letterSpacing
                }, i.letterSpacing.set = function(e) {
                    this._letterSpacing !== e && (this._letterSpacing = e, this.dirty = !0)
                }, i.textHeight.get = function() {
                    return this.validate(), this._textHeight
                }, t.registerFont = function(e, i) {
                    var r = {},
                        n = e.getElementsByTagName("info")[0],
                        a = e.getElementsByTagName("common")[0],
                        s = e.getElementsByTagName("page"),
                        o = Ie(s[0].getAttribute("file")),
                        u = {};
                    r.font = n.getAttribute("face"), r.size = parseInt(n.getAttribute("size"), 10), r.lineHeight = parseInt(a.getAttribute("lineHeight"), 10) / o, r.chars = {}, i instanceof Xt && (i = [i]);
                    for (var h = 0; h < s.length; h++) {
                        var l = s[h].getAttribute("id"),
                            f = s[h].getAttribute("file");
                        u[l] = i instanceof Array ? i[h] : i[f]
                    }
                    for (var c = e.getElementsByTagName("char"), d = 0; d < c.length; d++) {
                        var p = c[d],
                            v = parseInt(p.getAttribute("id"), 10),
                            m = p.getAttribute("page") || 0,
                            _ = new We(parseInt(p.getAttribute("x"), 10) / o + u[m].frame.x / o, parseInt(p.getAttribute("y"), 10) / o + u[m].frame.y / o, parseInt(p.getAttribute("width"), 10) / o, parseInt(p.getAttribute("height"), 10) / o);
                        r.chars[v] = {
                            xOffset: parseInt(p.getAttribute("xoffset"), 10) / o,
                            yOffset: parseInt(p.getAttribute("yoffset"), 10) / o,
                            xAdvance: parseInt(p.getAttribute("xadvance"), 10) / o,
                            kerning: {},
                            texture: new Xt(u[m].baseTexture, _),
                            page: m
                        }
                    }
                    for (var b = e.getElementsByTagName("kerning"), g = 0; g < b.length; g++) {
                        var y = b[g],
                            A = parseInt(y.getAttribute("first"), 10) / o,
                            w = parseInt(y.getAttribute("second"), 10) / o,
                            x = parseInt(y.getAttribute("amount"), 10) / o;
                        r.chars[w] && (r.chars[w].kerning[A] = x)
                    }
                    return t.fonts[r.font] = r, r
                }, Object.defineProperties(t.prototype, i), t
            }(et);
        Ma.fonts = {};
        var Ca = function() {};
        Ca.parse = function(e, t) {
            e.bitmapFont = Ma.registerFont(e.data, t)
        }, Ca.add = function() {
            dn.setExtensionXhrType("fnt", dn.XHR_RESPONSE_TYPE.DOCUMENT)
        }, Ca.dirname = function(e) {
            var t = e.replace(/\\/g, "/").replace(/\/$/, "").replace(/\/[^\/]*$/, "");
            return t === e ? "." : "" === t ? "/" : t
        }, Ca.use = function(e, t) {
            if (e.data && e.type === dn.TYPE.XML)
                if (0 !== e.data.getElementsByTagName("page").length && 0 !== e.data.getElementsByTagName("info").length && null !== e.data.getElementsByTagName("info")[0].getAttribute("face")) {
                    var i = e.isDataUrl ? "" : Ca.dirname(e.url);
                    e.isDataUrl && ("." === i && (i = ""), this.baseUrl && i && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (i += "/")), (i = i.replace(this.baseUrl, "")) && "/" !== i.charAt(i.length - 1) && (i += "/");
                    for (var r = e.data.getElementsByTagName("page"), n = {}, a = function(i) {
                            n[i.metadata.pageFile] = i.texture, Object.keys(n).length === r.length && (Ca.parse(e, n), t())
                        }, s = 0; s < r.length; ++s) {
                        var o = r[s].getAttribute("file"),
                            u = i + o,
                            h = !1;
                        for (var l in this.resources) {
                            var f = this.resources[l];
                            if (f.url === u) {
                                f.metadata.pageFile = o, f.texture ? a(f) : f.onAfterMiddleware.add(a), h = !0;
                                break
                            }
                        }
                        if (!h) {
                            var c = {
                                crossOrigin: e.crossOrigin,
                                loadType: dn.LOAD_TYPE.IMAGE,
                                metadata: Object.assign({
                                    pageFile: o
                                }, e.metadata.imageMetadata),
                                parentResource: e
                            };
                            this.add(u, c, a)
                        }
                    }
                } else t();
            else t()
        };
        /*!
         * @pixi/filter-alpha - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/filter-alpha is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Oa = "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n",
            Ra = function(e) {
                function t(t) {
                    void 0 === t && (t = 1), e.call(this, Ar, Oa, {
                        uAlpha: 1
                    }), this.alpha = t
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    alpha: {
                        configurable: !0
                    }
                };
                return i.alpha.get = function() {
                    return this.uniforms.uAlpha
                }, i.alpha.set = function(e) {
                    this.uniforms.uAlpha = e
                }, Object.defineProperties(t.prototype, i), t
            }(Gi),
            Da = "\n    attribute vec2 aVertexPosition;\n\n    uniform mat3 projectionMatrix;\n\n    uniform float strength;\n\n    varying vec2 vBlurTexCoords[%size%];\n\n    uniform vec4 inputSize;\n    uniform vec4 outputFrame;\n\n    vec4 filterVertexPosition( void )\n    {\n        vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n        return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n    }\n\n    vec2 filterTextureCoord( void )\n    {\n        return aVertexPosition * (outputFrame.zw * inputSize.zw);\n    }\n\n    void main(void)\n    {\n        gl_Position = filterVertexPosition();\n\n        vec2 textureCoord = filterTextureCoord();\n        %blur%\n    }";
        var Fa = {
                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]
            },
            Ba = ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", "    gl_FragColor = vec4(0.0);", "    %blur%", "}"].join("\n");
        var Na = function(e) {
                function t(t, i, r, n, a) {
                    var s = function(e, t) {
                            var i, r = Math.ceil(e / 2),
                                n = Da,
                                a = "";
                            i = t ? "vBlurTexCoords[%index%] =  textureCoord + vec2(%sampleIndex% * strength, 0.0);" : "vBlurTexCoords[%index%] =  textureCoord + vec2(0.0, %sampleIndex% * strength);";
                            for (var s = 0; s < e; s++) {
                                var o = i.replace("%index%", s);
                                a += o = o.replace("%sampleIndex%", s - (r - 1) + ".0"), a += "\n"
                            }
                            return n = (n = n.replace("%blur%", a)).replace("%size%", e)
                        }(a = a || 5, t),
                        o = function(e) {
                            for (var t, i = Fa[e], r = i.length, n = Ba, a = "", s = 0; s < e; s++) {
                                var o = "gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;".replace("%index%", s);
                                t = s, s >= r && (t = e - s - 1), a += o = o.replace("%value%", i[t]), a += "\n"
                            }
                            return n = (n = n.replace("%blur%", a)).replace("%size%", e)
                        }(a);
                    e.call(this, s, o), this.horizontal = t, this.resolution = n || N.RESOLUTION, this._quality = 0, this.quality = r || 4, this.blur = i || 8
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    blur: {
                        configurable: !0
                    },
                    quality: {
                        configurable: !0
                    }
                };
                return t.prototype.apply = function(e, t, i, r) {
                    if (i ? this.horizontal ? this.uniforms.strength = 1 / i.width * (i.width / t.width) : this.uniforms.strength = 1 / i.height * (i.height / t.height) : this.horizontal ? this.uniforms.strength = 1 / e.renderer.width * (e.renderer.width / t.width) : this.uniforms.strength = 1 / e.renderer.height * (e.renderer.height / t.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) e.applyFilter(this, t, i, r);
                    else {
                        var n = e.getFilterTexture(),
                            a = e.renderer,
                            s = t,
                            o = n;
                        this.state.blend = !1, e.applyFilter(this, s, o, !0);
                        for (var u = 1; u < this.passes - 1; u++) {
                            a.renderTexture.bind(s, s.filterFrame), this.uniforms.uSampler = o;
                            var h = o;
                            o = s, s = h, a.shader.bind(this), a.geometry.draw(5)
                        }
                        this.state.blend = !0, e.applyFilter(this, o, i, r), e.returnFilterTexture(n)
                    }
                }, i.blur.get = function() {
                    return this.strength
                }, i.blur.set = function(e) {
                    this.padding = 1 + 2 * Math.abs(e), this.strength = e
                }, i.quality.get = function() {
                    return this._quality
                }, i.quality.set = function(e) {
                    this._quality = e, this.passes = e
                }, Object.defineProperties(t.prototype, i), t
            }(Gi),
            La = function(e) {
                function t(t, i, r, n) {
                    e.call(this), this.blurXFilter = new Na(!0, t, i, r, n), this.blurYFilter = new Na(!1, t, i, r, n), this.resolution = r || N.RESOLUTION, this.quality = i || 4, this.blur = t || 8, this.repeatEdgePixels = !1
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    blur: {
                        configurable: !0
                    },
                    quality: {
                        configurable: !0
                    },
                    blurX: {
                        configurable: !0
                    },
                    blurY: {
                        configurable: !0
                    },
                    blendMode: {
                        configurable: !0
                    },
                    repeatEdgePixels: {
                        configurable: !0
                    }
                };
                return t.prototype.apply = function(e, t, i, r) {
                    var n = Math.abs(this.blurXFilter.strength),
                        a = Math.abs(this.blurYFilter.strength);
                    if (n && a) {
                        var s = e.getFilterTexture();
                        this.blurXFilter.apply(e, t, s, !0), this.blurYFilter.apply(e, s, i, r), e.returnFilterTexture(s)
                    } else a ? this.blurYFilter.apply(e, t, i, r) : this.blurXFilter.apply(e, t, i, r)
                }, t.prototype.updatePadding = function() {
                    this._repeatEdgePixels ? this.padding = 0 : this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                }, i.blur.get = function() {
                    return this.blurXFilter.blur
                }, i.blur.set = function(e) {
                    this.blurXFilter.blur = this.blurYFilter.blur = e, this.updatePadding()
                }, i.quality.get = function() {
                    return this.blurXFilter.quality
                }, i.quality.set = function(e) {
                    this.blurXFilter.quality = this.blurYFilter.quality = e
                }, i.blurX.get = function() {
                    return this.blurXFilter.blur
                }, i.blurX.set = function(e) {
                    this.blurXFilter.blur = e, this.updatePadding()
                }, i.blurY.get = function() {
                    return this.blurYFilter.blur
                }, i.blurY.set = function(e) {
                    this.blurYFilter.blur = e, this.updatePadding()
                }, i.blendMode.get = function() {
                    return this.blurYFilter.blendMode
                }, i.blendMode.set = function(e) {
                    this.blurYFilter.blendMode = e
                }, i.repeatEdgePixels.get = function() {
                    return this._repeatEdgePixels
                }, i.repeatEdgePixels.set = function(e) {
                    this._repeatEdgePixels = e, this.updatePadding()
                }, Object.defineProperties(t.prototype, i), t
            }(Gi),
            Ua = "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",
            Va = function(e) {
                function t() {
                    var t = {
                        m: new Float32Array([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]),
                        uAlpha: 1
                    };
                    e.call(this, wr, Ua, t), this.alpha = 1
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    matrix: {
                        configurable: !0
                    },
                    alpha: {
                        configurable: !0
                    }
                };
                return t.prototype._loadMatrix = function(e, t) {
                    void 0 === t && (t = !1);
                    var i = e;
                    t && (this._multiply(i, this.uniforms.m, e), i = this._colorMatrix(i)), this.uniforms.m = i
                }, t.prototype._multiply = function(e, t, i) {
                    return e[0] = t[0] * i[0] + t[1] * i[5] + t[2] * i[10] + t[3] * i[15], e[1] = t[0] * i[1] + t[1] * i[6] + t[2] * i[11] + t[3] * i[16], e[2] = t[0] * i[2] + t[1] * i[7] + t[2] * i[12] + t[3] * i[17], e[3] = t[0] * i[3] + t[1] * i[8] + t[2] * i[13] + t[3] * i[18], e[4] = t[0] * i[4] + t[1] * i[9] + t[2] * i[14] + t[3] * i[19] + t[4], e[5] = t[5] * i[0] + t[6] * i[5] + t[7] * i[10] + t[8] * i[15], e[6] = t[5] * i[1] + t[6] * i[6] + t[7] * i[11] + t[8] * i[16], e[7] = t[5] * i[2] + t[6] * i[7] + t[7] * i[12] + t[8] * i[17], e[8] = t[5] * i[3] + t[6] * i[8] + t[7] * i[13] + t[8] * i[18], e[9] = t[5] * i[4] + t[6] * i[9] + t[7] * i[14] + t[8] * i[19] + t[9], e[10] = t[10] * i[0] + t[11] * i[5] + t[12] * i[10] + t[13] * i[15], e[11] = t[10] * i[1] + t[11] * i[6] + t[12] * i[11] + t[13] * i[16], e[12] = t[10] * i[2] + t[11] * i[7] + t[12] * i[12] + t[13] * i[17], e[13] = t[10] * i[3] + t[11] * i[8] + t[12] * i[13] + t[13] * i[18], e[14] = t[10] * i[4] + t[11] * i[9] + t[12] * i[14] + t[13] * i[19] + t[14], e[15] = t[15] * i[0] + t[16] * i[5] + t[17] * i[10] + t[18] * i[15], e[16] = t[15] * i[1] + t[16] * i[6] + t[17] * i[11] + t[18] * i[16], e[17] = t[15] * i[2] + t[16] * i[7] + t[17] * i[12] + t[18] * i[17], e[18] = t[15] * i[3] + t[16] * i[8] + t[17] * i[13] + t[18] * i[18], e[19] = t[15] * i[4] + t[16] * i[9] + t[17] * i[14] + t[18] * i[19] + t[19], e
                }, t.prototype._colorMatrix = function(e) {
                    var t = new Float32Array(e);
                    return t[4] /= 255, t[9] /= 255, t[14] /= 255, t[19] /= 255, t
                }, t.prototype.brightness = function(e, t) {
                    var i = [e, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, e, 0, 0, 0, 0, 0, 1, 0];
                    this._loadMatrix(i, t)
                }, t.prototype.greyscale = function(e, t) {
                    var i = [e, e, e, 0, 0, e, e, e, 0, 0, e, e, e, 0, 0, 0, 0, 0, 1, 0];
                    this._loadMatrix(i, t)
                }, t.prototype.blackAndWhite = function(e) {
                    this._loadMatrix([.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0], e)
                }, t.prototype.hue = function(e, t) {
                    e = (e || 0) / 180 * Math.PI;
                    var i = Math.cos(e),
                        r = Math.sin(e),
                        n = 1 / 3,
                        a = (0, Math.sqrt)(n),
                        s = [i + (1 - i) * n, n * (1 - i) - a * r, n * (1 - i) + a * r, 0, 0, n * (1 - i) + a * r, i + n * (1 - i), n * (1 - i) - a * r, 0, 0, n * (1 - i) - a * r, n * (1 - i) + a * r, i + n * (1 - i), 0, 0, 0, 0, 0, 1, 0];
                    this._loadMatrix(s, t)
                }, t.prototype.contrast = function(e, t) {
                    var i = (e || 0) + 1,
                        r = -.5 * (i - 1),
                        n = [i, 0, 0, 0, r, 0, i, 0, 0, r, 0, 0, i, 0, r, 0, 0, 0, 1, 0];
                    this._loadMatrix(n, t)
                }, t.prototype.saturate = function(e, t) {
                    void 0 === e && (e = 0);
                    var i = 2 * e / 3 + 1,
                        r = -.5 * (i - 1),
                        n = [i, r, r, 0, 0, r, i, r, 0, 0, r, r, i, 0, 0, 0, 0, 0, 1, 0];
                    this._loadMatrix(n, t)
                }, t.prototype.desaturate = function() {
                    this.saturate(-1)
                }, t.prototype.negative = function(e) {
                    this._loadMatrix([-1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0], e)
                }, t.prototype.sepia = function(e) {
                    this._loadMatrix([.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0], e)
                }, t.prototype.technicolor = function(e) {
                    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], e)
                }, t.prototype.polaroid = function(e) {
                    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], e)
                }, t.prototype.toBGR = function(e) {
                    this._loadMatrix([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], e)
                }, t.prototype.kodachrome = function(e) {
                    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], e)
                }, t.prototype.browni = function(e) {
                    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], e)
                }, t.prototype.vintage = function(e) {
                    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], e)
                }, t.prototype.colorTone = function(e, t, i, r, n) {
                    var a = ((i = i || 16770432) >> 16 & 255) / 255,
                        s = (i >> 8 & 255) / 255,
                        o = (255 & i) / 255,
                        u = ((r = r || 3375104) >> 16 & 255) / 255,
                        h = (r >> 8 & 255) / 255,
                        l = (255 & r) / 255,
                        f = [.3, .59, .11, 0, 0, a, s, o, e = e || .2, 0, u, h, l, t = t || .15, 0, a - u, s - h, o - l, 0, 0];
                    this._loadMatrix(f, n)
                }, t.prototype.night = function(e, t) {
                    var i = [-2 * (e = e || .1), -e, 0, 0, 0, -e, 0, e, 0, 0, 0, e, 2 * e, 0, 0, 0, 0, 0, 1, 0];
                    this._loadMatrix(i, t)
                }, t.prototype.predator = function(e, t) {
                    var i = [11.224130630493164 * e, -4.794486999511719 * e, -2.8746118545532227 * e, 0 * e, .40342438220977783 * e, -3.6330697536468506 * e, 9.193157196044922 * e, -2.951810836791992 * e, 0 * e, -1.316135048866272 * e, -3.2184197902679443 * e, -4.2375030517578125 * e, 7.476448059082031 * e, 0 * e, .8044459223747253 * e, 0, 0, 0, 1, 0];
                    this._loadMatrix(i, t)
                }, t.prototype.lsd = function(e) {
                    this._loadMatrix([2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0], e)
                }, t.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)
                }, i.matrix.get = function() {
                    return this.uniforms.m
                }, i.matrix.set = function(e) {
                    this.uniforms.m = e
                }, i.alpha.get = function() {
                    return this.uniforms.uAlpha
                }, i.alpha.set = function(e) {
                    this.uniforms.uAlpha = e
                }, Object.defineProperties(t.prototype, i), t
            }(Gi);
        Va.prototype.grayscale = Va.prototype.greyscale;
        /*!
         * @pixi/filter-displacement - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/filter-displacement is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Xa = "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n    return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n\tgl_Position = filterVertexPosition();\n\tvTextureCoord = filterTextureCoord();\n\tvFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0)  ).xy;\n}\n",
            ja = "varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\nuniform mat2 rotation;\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform highp vec4 inputSize;\nuniform vec4 inputClamp;\n\nvoid main(void)\n{\n  vec4 map =  texture2D(mapSampler, vFilterCoord);\n\n  map -= 0.5;\n  map.xy = scale * inputSize.zw * (rotation * map.xy);\n\n  gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw));\n}\n",
            Ga = function(e) {
                function t(t, i) {
                    var r = new Be;
                    t.renderable = !1, e.call(this, Xa, ja, {
                        mapSampler: t._texture,
                        filterMatrix: r,
                        scale: {
                            x: 1,
                            y: 1
                        },
                        rotation: new Float32Array([1, 0, 0, 1])
                    }), this.maskSprite = t, this.maskMatrix = r, null == i && (i = 20), this.scale = new Ce(i, i)
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    map: {
                        configurable: !0
                    }
                };
                return t.prototype.apply = function(e, t, i, r) {
                    this.uniforms.filterMatrix = e.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x, this.uniforms.scale.y = this.scale.y;
                    var n = this.maskSprite.transform.worldTransform,
                        a = Math.sqrt(n.a * n.a + n.b * n.b),
                        s = Math.sqrt(n.c * n.c + n.d * n.d);
                    0 !== a && 0 !== s && (this.uniforms.rotation[0] = n.a / a, this.uniforms.rotation[1] = n.b / a, this.uniforms.rotation[2] = n.c / s, this.uniforms.rotation[3] = n.d / s), e.applyFilter(this, t, i, r)
                }, i.map.get = function() {
                    return this.uniforms.mapSampler
                }, i.map.set = function(e) {
                    this.uniforms.mapSampler = e
                }, Object.defineProperties(t.prototype, i), t
            }(Gi),
            $a = "\nattribute vec2 aVertexPosition;\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\nvarying vec2 vFragCoord;\n\nuniform vec4 inputPixel;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n    vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n    return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvoid texcoords(vec2 fragCoord, vec2 inverseVP,\n               out vec2 v_rgbNW, out vec2 v_rgbNE,\n               out vec2 v_rgbSW, out vec2 v_rgbSE,\n               out vec2 v_rgbM) {\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 = filterVertexPosition();\n\n   vFragCoord = aVertexPosition * outputFrame.zw;\n\n   texcoords(vFragCoord, inputPixel.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}\n",
            Ha = 'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vFragCoord;\nuniform sampler2D uSampler;\nuniform highp vec4 inputPixel;\n\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com 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/mitsuhiko/webgl-meincraft\n\n Copyright (c) 2011 by Armin Ronacher.\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 inverseVP,\n          vec2 v_rgbNW, vec2 v_rgbNE,\n          vec2 v_rgbSW, vec2 v_rgbSE,\n          vec2 v_rgbM) {\n    vec4 color;\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      vec4 color;\n\n      color = fxaa(uSampler, vFragCoord, inputPixel.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n      gl_FragColor = color;\n}\n',
            Wa = function(e) {
                function t() {
                    e.call(this, $a, Ha)
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
            }(Gi),
            Ya = "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",
            za = function(e) {
                function t(t, i) {
                    void 0 === t && (t = .5), void 0 === i && (i = Math.random()), e.call(this, wr, Ya, {
                        uNoise: 0,
                        uSeed: 0
                    }), this.noise = t, this.seed = i
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    noise: {
                        configurable: !0
                    },
                    seed: {
                        configurable: !0
                    }
                };
                return i.noise.get = function() {
                    return this.uniforms.uNoise
                }, i.noise.set = function(e) {
                    this.uniforms.uNoise = e
                }, i.seed.get = function() {
                    return this.uniforms.uSeed
                }, i.seed.set = function(e) {
                    this.uniforms.uSeed = e
                }, Object.defineProperties(t.prototype, i), t
            }(Gi),
            qa = new Be;
        Ze.prototype._cacheAsBitmap = !1, Ze.prototype._cacheData = !1;
        var Ja = function() {
            this.textureCacheId = null, this.originalRender = 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(Ze.prototype, {
                cacheAsBitmap: {
                    get: function() {
                        return this._cacheAsBitmap
                    },
                    set: function(e) {
                        var t;
                        this._cacheAsBitmap !== e && (this._cacheAsBitmap = e, e ? (this._cacheData || (this._cacheData = new Ja), (t = this._cacheData).originalRender = this.render, t.originalRenderCanvas = this.renderCanvas, t.originalUpdateTransform = this.updateTransform, t.originalCalculateBounds = this.calculateBounds, t.originalGetLocalBounds = this.getLocalBounds, t.originalDestroy = this.destroy, t.originalContainsPoint = this.containsPoint, t.originalMask = this._mask, t.originalFilterArea = this.filterArea, this.render = this._renderCached, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : ((t = this._cacheData).sprite && this._destroyCachedDisplayObject(), this.render = t.originalRender, this.renderCanvas = t.originalRenderCanvas, this.calculateBounds = t.originalCalculateBounds, this.getLocalBounds = t.originalGetLocalBounds, this.destroy = t.originalDestroy, this.updateTransform = t.originalUpdateTransform, this.containsPoint = t.originalContainsPoint, this._mask = t.originalMask, this.filterArea = t.originalFilterArea))
                    }
                }
            }), Ze.prototype._renderCached = function(e) {
                !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(e), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._render(e))
            }, Ze.prototype._initCachedDisplayObject = function(e) {
                if (!this._cacheData || !this._cacheData.sprite) {
                    var t = this.alpha;
                    this.alpha = 1, e.batch.flush();
                    var i = this.getLocalBounds().clone();
                    if (this.filters) {
                        var r = this.filters[0].padding;
                        i.pad(r)
                    }
                    i.ceil(N.RESOLUTION);
                    var n = e.renderTexture.current,
                        a = e.renderTexture.sourceFrame.clone(),
                        s = e.projection.transform,
                        o = Gt.create(i.width, i.height),
                        u = "cacheAsBitmap_" + ve();
                    this._cacheData.textureCacheId = u, Et.addToCache(o.baseTexture, u), Xt.addToCache(o, u);
                    var h = qa;
                    h.tx = -i.x, h.ty = -i.y, this.transform.worldTransform.identity(), this.render = this._cacheData.originalRender, e.render(this, o, !0, h, !0), e.projection.transform = s, e.renderTexture.bind(n, a), this.render = this._renderCached, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null;
                    var l = new Yn(o);
                    l.transform.worldTransform = this.transform.worldTransform, l.anchor.x = -i.x / i.width, l.anchor.y = -i.y / i.height, l.alpha = t, l._bounds = this._bounds, this._cacheData.sprite = l, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = e._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = l.containsPoint.bind(l)
                }
            }, Ze.prototype._renderCachedCanvas = function(e) {
                !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(e), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderCanvas(e))
            }, Ze.prototype._initCachedDisplayObjectCanvas = function(e) {
                if (!this._cacheData || !this._cacheData.sprite) {
                    var t = this.getLocalBounds(),
                        i = this.alpha;
                    this.alpha = 1;
                    var r = e.context,
                        n = e._projTransform;
                    t.ceil(N.RESOLUTION);
                    var a = Gt.create(t.width, t.height),
                        s = "cacheAsBitmap_" + ve();
                    this._cacheData.textureCacheId = s, Et.addToCache(a.baseTexture, s), Xt.addToCache(a, s);
                    var o = qa;
                    this.transform.localTransform.copyTo(o), o.invert(), o.tx -= t.x, o.ty -= t.y, this.renderCanvas = this._cacheData.originalRenderCanvas, e.render(this, a, !0, o, !1), e.context = r, e._projTransform = n, this.renderCanvas = this._renderCachedCanvas, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null;
                    var u = new Yn(a);
                    u.transform.worldTransform = this.transform.worldTransform, u.anchor.x = -t.x / t.width, u.anchor.y = -t.y / t.height, u.alpha = i, u._bounds = this._bounds, this._cacheData.sprite = u, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = e._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = u.containsPoint.bind(u)
                }
            }, Ze.prototype._calculateCachedBounds = function() {
                this._bounds.clear(), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite._calculateBounds(), this._lastBoundsID = this._boundsID
            }, Ze.prototype._getCachedLocalBounds = function() {
                return this._cacheData.sprite.getLocalBounds()
            }, Ze.prototype._destroyCachedDisplayObject = function() {
                this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, Et.removeFromCache(this._cacheData.textureCacheId), Xt.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null
            }, Ze.prototype._cacheAsBitmapDestroy = function(e) {
                this.cacheAsBitmap = !1, this.destroy(e)
            },
            /*!
             * @pixi/mixin-get-child-by-name - v5.2.4
             * Compiled Sun, 03 May 2020 22:38:52 UTC
             *
             * @pixi/mixin-get-child-by-name is licensed under the MIT License.
             * http://www.opensource.org/licenses/mit-license
             */
            Ze.prototype.name = null, et.prototype.getChildByName = function(e) {
                for (var t = 0; t < this.children.length; t++)
                    if (this.children[t].name === e) return this.children[t];
                return null
            },
            /*!
             * @pixi/mixin-get-global-position - v5.2.4
             * Compiled Sun, 03 May 2020 22:38:52 UTC
             *
             * @pixi/mixin-get-global-position is licensed under the MIT License.
             * http://www.opensource.org/licenses/mit-license
             */
            Ze.prototype.getGlobalPosition = function(e, t) {
                return void 0 === e && (e = new Ce), void 0 === t && (t = !1), this.parent ? this.parent.toGlobal(this.position, e, t) : (e.x = this.position.x, e.y = this.position.y), e
            };
        /*!
         * @pixi/mesh - v5.2.4
         * Compiled Sun, 03 May 2020 22:38:52 UTC
         *
         * @pixi/mesh is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        var Qa = function(e, t) {
            this.uvBuffer = e, this.uvMatrix = t, this.data = null, this._bufferUpdateId = -1, this._textureUpdateId = -1, this._updateID = 0
        };
        Qa.prototype.update = function(e) {
            if (e || this._bufferUpdateId !== this.uvBuffer._updateID || this._textureUpdateId !== this.uvMatrix._updateID) {
                this._bufferUpdateId = this.uvBuffer._updateID, this._textureUpdateId = this.uvMatrix._updateID;
                var t = this.uvBuffer.data;
                this.data && this.data.length === t.length || (this.data = new Float32Array(t.length)), this.uvMatrix.multiplyUvs(t, this.data), this._updateID++
            }
        };
        var Za = new Ce,
            Ka = new qe,
            es = function(e) {
                function t(t, i, r, n) {
                    void 0 === n && (n = E.TRIANGLES), e.call(this), this.geometry = t, t.refCount++, this.shader = i, this.state = r || Xi.for2d(), this.drawMode = n, this.start = 0, this.size = 0, this.uvs = null, this.indices = null, this.vertexData = new Float32Array(1), this.vertexDirty = 0, this._transformID = -1, this.tint = 16777215, this.blendMode = T.NORMAL, this._roundPixels = N.ROUND_PIXELS, this.batchUvs = null
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    uvBuffer: {
                        configurable: !0
                    },
                    verticesBuffer: {
                        configurable: !0
                    },
                    material: {
                        configurable: !0
                    },
                    blendMode: {
                        configurable: !0
                    },
                    roundPixels: {
                        configurable: !0
                    },
                    tint: {
                        configurable: !0
                    },
                    texture: {
                        configurable: !0
                    }
                };
                return i.uvBuffer.get = function() {
                    return this.geometry.buffers[1]
                }, i.verticesBuffer.get = function() {
                    return this.geometry.buffers[0]
                }, i.material.set = function(e) {
                    this.shader = e
                }, i.material.get = function() {
                    return this.shader
                }, i.blendMode.set = function(e) {
                    this.state.blendMode = e
                }, i.blendMode.get = function() {
                    return this.state.blendMode
                }, i.roundPixels.set = function(e) {
                    this._roundPixels !== e && (this._transformID = -1), this._roundPixels = e
                }, i.roundPixels.get = function() {
                    return this._roundPixels
                }, i.tint.get = function() {
                    return this.shader.tint
                }, i.tint.set = function(e) {
                    this.shader.tint = e
                }, i.texture.get = function() {
                    return this.shader.texture
                }, i.texture.set = function(e) {
                    this.shader.texture = e
                }, t.prototype._render = function(e) {
                    var i = this.geometry.buffers[0].data;
                    this.shader.batchable && this.drawMode === E.TRIANGLES && i.length < 2 * t.BATCHABLE_SIZE ? this._renderToBatch(e) : this._renderDefault(e)
                }, t.prototype._renderDefault = function(e) {
                    var t = this.shader;
                    t.alpha = this.worldAlpha, t.update && t.update(), e.batch.flush(), t.program.uniformData.translationMatrix && (t.uniforms.translationMatrix = this.transform.worldTransform.toArray(!0)), e.shader.bind(t), e.state.set(this.state), e.geometry.bind(this.geometry, t), e.geometry.draw(this.drawMode, this.size, this.start, this.geometry.instanceCount)
                }, t.prototype._renderToBatch = function(e) {
                    var t = this.geometry;
                    this.shader.uvMatrix && (this.shader.uvMatrix.update(), this.calculateUvs()), this.calculateVertices(), this.indices = t.indexBuffer.data, this._tintRGB = this.shader._tintRGB, this._texture = this.shader.texture;
                    var i = this.material.pluginName;
                    e.batch.setObjectRenderer(e.plugins[i]), e.plugins[i].render(this)
                }, t.prototype.calculateVertices = function() {
                    var e = this.geometry,
                        t = e.buffers[0].data;
                    if (e.vertexDirtyId !== this.vertexDirty || this._transformID !== this.transform._worldID) {
                        this._transformID = this.transform._worldID, this.vertexData.length !== t.length && (this.vertexData = new Float32Array(t.length));
                        for (var i = this.transform.worldTransform, r = i.a, n = i.b, a = i.c, s = i.d, o = i.tx, u = i.ty, h = this.vertexData, l = 0; l < h.length / 2; l++) {
                            var f = t[2 * l],
                                c = t[2 * l + 1];
                            h[2 * l] = r * f + a * c + o, h[2 * l + 1] = n * f + s * c + u
                        }
                        if (this._roundPixels)
                            for (var d = N.RESOLUTION, p = 0; p < h.length; ++p) h[p] = Math.round((h[p] * d | 0) / d);
                        this.vertexDirty = e.vertexDirtyId
                    }
                }, t.prototype.calculateUvs = function() {
                    var e = this.geometry.buffers[1];
                    this.shader.uvMatrix.isSimple ? this.uvs = e.data : (this.batchUvs || (this.batchUvs = new Qa(e, this.shader.uvMatrix)), this.batchUvs.update(), this.uvs = this.batchUvs.data)
                }, t.prototype._calculateBounds = function() {
                    this.calculateVertices(), this._bounds.addVertexData(this.vertexData, 0, this.vertexData.length)
                }, t.prototype.containsPoint = function(e) {
                    if (!this.getBounds().contains(e.x, e.y)) return !1;
                    this.worldTransform.applyInverse(e, Za);
                    for (var t = this.geometry.getBuffer("aVertexPosition").data, i = Ka.points, r = this.geometry.getIndex().data, n = r.length, a = 4 === this.drawMode ? 3 : 1, s = 0; s + 2 < n; s += a) {
                        var o = 2 * r[s],
                            u = 2 * r[s + 1],
                            h = 2 * r[s + 2];
                        if (i[0] = t[o], i[1] = t[o + 1], i[2] = t[u], i[3] = t[u + 1], i[4] = t[h], i[5] = t[h + 1], Ka.contains(Za.x, Za.y)) return !0
                    }
                    return !1
                }, t.prototype.destroy = function(t) {
                    e.prototype.destroy.call(this, t), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this.geometry = null, this.shader = null, this.state = null, this.uvs = null, this.indices = null, this.vertexData = null
                }, Object.defineProperties(t.prototype, i), t
            }(et);
        es.BATCHABLE_SIZE = 100;
        var ts = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTextureMatrix;\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 = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\n}\n",
            is = "varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n",
            rs = function(e) {
                function t(t, i) {
                    var r = {
                        uSampler: t,
                        alpha: 1,
                        uTextureMatrix: Be.IDENTITY,
                        uColor: new Float32Array([1, 1, 1, 1])
                    };
                    (i = Object.assign({
                        tint: 16777215,
                        alpha: 1,
                        pluginName: "batch"
                    }, i)).uniforms && Object.assign(r, i.uniforms), e.call(this, i.program || Ni.from(ts, is), r), this._colorDirty = !1, this.uvMatrix = new Yi(t), this.batchable = void 0 === i.program, this.pluginName = i.pluginName, this.tint = i.tint, this.alpha = i.alpha
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    texture: {
                        configurable: !0
                    },
                    alpha: {
                        configurable: !0
                    },
                    tint: {
                        configurable: !0
                    }
                };
                return i.texture.get = function() {
                    return this.uniforms.uSampler
                }, i.texture.set = function(e) {
                    this.uniforms.uSampler !== e && (this.uniforms.uSampler = e, this.uvMatrix.texture = e)
                }, i.alpha.set = function(e) {
                    e !== this._alpha && (this._alpha = e, this._colorDirty = !0)
                }, i.alpha.get = function() {
                    return this._alpha
                }, i.tint.set = function(e) {
                    e !== this._tint && (this._tint = e, this._tintRGB = (e >> 16) + (65280 & e) + ((255 & e) << 16), this._colorDirty = !0)
                }, i.tint.get = function() {
                    return this._tint
                }, t.prototype.update = function() {
                    if (this._colorDirty) {
                        this._colorDirty = !1;
                        var e = this.texture.baseTexture;
                        ne(this._tint, this._alpha, this.uniforms.uColor, e.alphaMode)
                    }
                    this.uvMatrix.update() && (this.uniforms.uTextureMatrix = this.uvMatrix.mapCoord)
                }, Object.defineProperties(t.prototype, i), t
            }(Ui),
            ns = function(e) {
                function t(t, i, r) {
                    e.call(this);
                    var n = new Yt(t),
                        a = new Yt(i, !0),
                        s = new Yt(r, !0, !0);
                    this.addAttribute("aVertexPosition", n, 2, !1, I.FLOAT).addAttribute("aTextureCoord", a, 2, !1, I.FLOAT).addIndex(s), this._updateId = -1
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    vertexDirtyId: {
                        configurable: !0
                    }
                };
                return i.vertexDirtyId.get = function() {
                    return this.buffers[0]._updateID
                }, Object.defineProperties(t.prototype, i), t
            }(Kt),
            as = function(e) {
                function t(t, i, r, n) {
                    void 0 === t && (t = 100), void 0 === i && (i = 100), void 0 === r && (r = 10), void 0 === n && (n = 10), e.call(this), this.segWidth = r, this.segHeight = n, this.width = t, this.height = i, this.build()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.build = function() {
                    for (var e = this.segWidth * this.segHeight, t = [], i = [], r = [], n = this.segWidth - 1, a = this.segHeight - 1, s = this.width / n, o = this.height / a, u = 0; u < e; u++) {
                        var h = u % this.segWidth,
                            l = u / this.segWidth | 0;
                        t.push(h * s, l * o), i.push(h / n, l / a)
                    }
                    for (var f = n * a, c = 0; c < f; c++) {
                        var d = c % n,
                            p = c / n | 0,
                            v = p * this.segWidth + d,
                            m = p * this.segWidth + d + 1,
                            _ = (p + 1) * this.segWidth + d,
                            b = (p + 1) * this.segWidth + d + 1;
                        r.push(v, m, _, m, b, _)
                    }
                    this.buffers[0].data = new Float32Array(t), this.buffers[1].data = new Float32Array(i), this.indexBuffer.data = new Uint16Array(r), this.buffers[0].update(), this.buffers[1].update(), this.indexBuffer.update()
                }, t
            }(ns),
            ss = function(e) {
                function t(t, i, r) {
                    void 0 === t && (t = 200), void 0 === r && (r = 0), e.call(this, new Float32Array(4 * i.length), new Float32Array(4 * i.length), new Uint16Array(6 * (i.length - 1))), this.points = i, this.width = t, this.textureScale = r, this.build()
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.build = function() {
                    var e = this.points;
                    if (e) {
                        var t = this.getBuffer("aVertexPosition"),
                            i = this.getBuffer("aTextureCoord"),
                            r = this.getIndex();
                        if (!(e.length < 1)) {
                            t.data.length / 4 !== e.length && (t.data = new Float32Array(4 * e.length), i.data = new Float32Array(4 * e.length), r.data = new Uint16Array(6 * (e.length - 1)));
                            var n = i.data,
                                a = r.data;
                            n[0] = 0, n[1] = 0, n[2] = 0, n[3] = 1;
                            for (var s = 0, o = e[0], u = this.width * this.textureScale, h = e.length, l = 0; l < h; l++) {
                                var f = 4 * l;
                                if (this.textureScale > 0) {
                                    var c = o.x - e[l].x,
                                        d = o.y - e[l].y,
                                        p = Math.sqrt(c * c + d * d);
                                    o = e[l], s += p / u
                                } else s = l / (h - 1);
                                n[f] = s, n[f + 1] = 0, n[f + 2] = s, n[f + 3] = 1
                            }
                            for (var v = 0, m = 0; m < h - 1; m++) {
                                var _ = 2 * m;
                                a[v++] = _, a[v++] = _ + 1, a[v++] = _ + 2, a[v++] = _ + 2, a[v++] = _ + 1, a[v++] = _ + 3
                            }
                            i.update(), r.update(), this.updateVertices()
                        }
                    }
                }, t.prototype.updateVertices = function() {
                    var e = this.points;
                    if (!(e.length < 1)) {
                        for (var t, i = e[0], r = 0, n = 0, a = this.buffers[0].data, s = e.length, o = 0; o < s; o++) {
                            var u = e[o],
                                h = 4 * o;
                            n = -((t = o < e.length - 1 ? e[o + 1] : u).x - i.x), r = t.y - i.y;
                            var l = Math.sqrt(r * r + n * n),
                                f = this.textureScale > 0 ? this.textureScale * this.width / 2 : this.width / 2;
                            r /= l, n /= l, r *= f, n *= f, a[h] = u.x + r, a[h + 1] = u.y + n, a[h + 2] = u.x - r, a[h + 3] = u.y - n, i = u
                        }
                        this.buffers[0].update()
                    }
                }, t.prototype.update = function() {
                    this.textureScale > 0 ? this.build() : this.updateVertices()
                }, t
            }(ns),
            os = function(e) {
                function t(t, i, r) {
                    void 0 === r && (r = 0);
                    var n = new ss(t.height, i, r),
                        a = new rs(t);
                    r > 0 && (t.baseTexture.wrapMode = C.REPEAT), e.call(this, n, a), this.autoUpdate = !0
                }
                return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype._render = function(t) {
                    (this.autoUpdate || this.geometry.width !== this.shader.texture.height) && (this.geometry.width = this.shader.texture.height, this.geometry.update()), e.prototype._render.call(this, t)
                }, t
            }(es),
            us = function(e) {
                function t(t, i, r) {
                    var n = new as(t.width, t.height, i, r),
                        a = new rs(Xt.WHITE);
                    e.call(this, n, a), this.texture = t
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    texture: {
                        configurable: !0
                    }
                };
                return t.prototype.textureUpdated = function() {
                    this._textureID = this.shader.texture._updateID, this.geometry.width = this.shader.texture.width, this.geometry.height = this.shader.texture.height, this.geometry.build()
                }, i.texture.set = function(e) {
                    this.shader.texture !== e && (this.shader.texture = e, this._textureID = -1, e.baseTexture.valid ? this.textureUpdated() : e.once("update", this.textureUpdated, this))
                }, i.texture.get = function() {
                    return this.shader.texture
                }, t.prototype._render = function(t) {
                    this._textureID !== this.shader.texture._updateID && this.textureUpdated(), e.prototype._render.call(this, t)
                }, Object.defineProperties(t.prototype, i), t
            }(es),
            hs = function(e) {
                function t(t, i, r, n, a) {
                    void 0 === t && (t = Xt.EMPTY);
                    var s = new ns(i, r, n);
                    s.getBuffer("aVertexPosition").static = !1;
                    var o = new rs(t);
                    e.call(this, s, o, null, a), this.autoUpdate = !0
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    vertices: {
                        configurable: !0
                    }
                };
                return i.vertices.get = function() {
                    return this.geometry.getBuffer("aVertexPosition").data
                }, i.vertices.set = function(e) {
                    this.geometry.getBuffer("aVertexPosition").data = e
                }, t.prototype._render = function(t) {
                    this.autoUpdate && this.geometry.getBuffer("aVertexPosition").update(), e.prototype._render.call(this, t)
                }, Object.defineProperties(t.prototype, i), t
            }(es),
            ls = 10,
            fs = function(e) {
                function t(t, i, r, n, a) {
                    e.call(this, Xt.WHITE, 4, 4), this._origWidth = t.orig.width, this._origHeight = t.orig.height, this._width = this._origWidth, this._height = this._origHeight, this._leftWidth = void 0 !== i ? i : ls, this._rightWidth = void 0 !== n ? n : ls, this._topHeight = void 0 !== r ? r : ls, this._bottomHeight = void 0 !== a ? a : ls, this.texture = t
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    vertices: {
                        configurable: !0
                    },
                    width: {
                        configurable: !0
                    },
                    height: {
                        configurable: !0
                    },
                    leftWidth: {
                        configurable: !0
                    },
                    rightWidth: {
                        configurable: !0
                    },
                    topHeight: {
                        configurable: !0
                    },
                    bottomHeight: {
                        configurable: !0
                    }
                };
                return t.prototype.textureUpdated = function() {
                    this._textureID = this.shader.texture._updateID, this._refresh()
                }, i.vertices.get = function() {
                    return this.geometry.getBuffer("aVertexPosition").data
                }, i.vertices.set = function(e) {
                    this.geometry.getBuffer("aVertexPosition").data = e
                }, t.prototype.updateHorizontalVertices = function() {
                    var e = this.vertices,
                        t = this._getMinScale();
                    e[9] = e[11] = e[13] = e[15] = this._topHeight * t, e[17] = e[19] = e[21] = e[23] = this._height - this._bottomHeight * t, e[25] = e[27] = e[29] = e[31] = this._height
                }, t.prototype.updateVerticalVertices = function() {
                    var e = this.vertices,
                        t = this._getMinScale();
                    e[2] = e[10] = e[18] = e[26] = this._leftWidth * t, e[4] = e[12] = e[20] = e[28] = this._width - this._rightWidth * t, e[6] = e[14] = e[22] = e[30] = this._width
                }, t.prototype._getMinScale = function() {
                    var e = this._leftWidth + this._rightWidth,
                        t = this._width > e ? 1 : this._width / e,
                        i = this._topHeight + this._bottomHeight,
                        r = this._height > i ? 1 : this._height / i;
                    return Math.min(t, r)
                }, i.width.get = function() {
                    return this._width
                }, i.width.set = function(e) {
                    this._width = e, this._refresh()
                }, i.height.get = function() {
                    return this._height
                }, i.height.set = function(e) {
                    this._height = e, this._refresh()
                }, i.leftWidth.get = function() {
                    return this._leftWidth
                }, i.leftWidth.set = function(e) {
                    this._leftWidth = e, this._refresh()
                }, i.rightWidth.get = function() {
                    return this._rightWidth
                }, i.rightWidth.set = function(e) {
                    this._rightWidth = e, this._refresh()
                }, i.topHeight.get = function() {
                    return this._topHeight
                }, i.topHeight.set = function(e) {
                    this._topHeight = e, this._refresh()
                }, i.bottomHeight.get = function() {
                    return this._bottomHeight
                }, i.bottomHeight.set = function(e) {
                    this._bottomHeight = e, this._refresh()
                }, t.prototype._refresh = function() {
                    var e = this.texture,
                        t = this.geometry.buffers[1].data;
                    this._origWidth = e.orig.width, this._origHeight = e.orig.height;
                    var i = 1 / this._origWidth,
                        r = 1 / this._origHeight;
                    t[0] = t[8] = t[16] = t[24] = 0, t[1] = t[3] = t[5] = t[7] = 0, t[6] = t[14] = t[22] = t[30] = 1, t[25] = t[27] = t[29] = t[31] = 1, t[2] = t[10] = t[18] = t[26] = i * this._leftWidth, t[4] = t[12] = t[20] = t[28] = 1 - i * this._rightWidth, t[9] = t[11] = t[13] = t[15] = r * this._topHeight, t[17] = t[19] = t[21] = t[23] = 1 - r * this._bottomHeight, this.updateHorizontalVertices(), this.updateVerticalVertices(), this.geometry.buffers[0].update(), this.geometry.buffers[1].update()
                }, Object.defineProperties(t.prototype, i), t
            }(us),
            cs = function(e) {
                function t(t, i) {
                    e.call(this, t[0] instanceof Xt ? t[0] : t[0].texture), this._textures = null, this._durations = null, this._autoUpdate = !1 !== i, this._isConnectedToTicker = !1, this.animationSpeed = 1, this.loop = !0, this.updateAnchor = !1, this.onComplete = null, this.onFrameChange = null, this.onLoop = null, this._currentTime = 0, this._playing = !1, this._previousFrame = null, this.textures = t
                }
                e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t;
                var i = {
                    totalFrames: {
                        configurable: !0
                    },
                    textures: {
                        configurable: !0
                    },
                    currentFrame: {
                        configurable: !0
                    },
                    playing: {
                        configurable: !0
                    },
                    autoUpdate: {
                        configurable: !0
                    }
                };
                return t.prototype.stop = function() {
                    this.playing && (this._playing = !1, this._autoUpdate && this._isConnectedToTicker && (at.shared.remove(this.update, this), this._isConnectedToTicker = !1))
                }, t.prototype.play = function() {
                    this.playing || (this._playing = !0, this._autoUpdate && !this._isConnectedToTicker && (at.shared.add(this.update, this, it.HIGH), this._isConnectedToTicker = !0))
                }, t.prototype.gotoAndStop = function(e) {
                    this.stop();
                    var t = this.currentFrame;
                    this._currentTime = e, t !== this.currentFrame && this.updateTexture()
                }, t.prototype.gotoAndPlay = function(e) {
                    var t = this.currentFrame;
                    this._currentTime = e, t !== this.currentFrame && this.updateTexture(), this.play()
                }, t.prototype.update = function(e) {
                    var t = this.animationSpeed * e,
                        i = this.currentFrame;
                    if (null !== this._durations) {
                        var r = this._currentTime % 1 * this._durations[this.currentFrame];
                        for (r += t / 60 * 1e3; r < 0;) this._currentTime--, r += this._durations[this.currentFrame];
                        var n = Math.sign(this.animationSpeed * e);
                        for (this._currentTime = Math.floor(this._currentTime); r >= this._durations[this.currentFrame];) r -= this._durations[this.currentFrame] * n, this._currentTime += n;
                        this._currentTime += r / this._durations[this.currentFrame]
                    } else this._currentTime += t;
                    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()) : i !== this.currentFrame && (this.loop && this.onLoop && (this.animationSpeed > 0 && this.currentFrame < i ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > i && this.onLoop()), this.updateTexture())
                }, t.prototype.updateTexture = function() {
                    var e = this.currentFrame;
                    this._previousFrame !== e && (this._previousFrame = e, this._texture = this._textures[e], this._textureID = -1, this._textureTrimmedID = -1, this._cachedTint = 16777215, this.uvs = this._texture._uvs.uvsFloat32, this.updateAnchor && this._anchor.copyFrom(this._texture.defaultAnchor), this.onFrameChange && this.onFrameChange(this.currentFrame))
                }, t.prototype.destroy = function(t) {
                    this.stop(), e.prototype.destroy.call(this, t), this.onComplete = null, this.onFrameChange = null, this.onLoop = null
                }, t.fromFrames = function(e) {
                    for (var i = [], r = 0; r < e.length; ++r) i.push(Xt.from(e[r]));
                    return new t(i)
                }, t.fromImages = function(e) {
                    for (var i = [], r = 0; r < e.length; ++r) i.push(Xt.from(e[r]));
                    return new t(i)
                }, i.totalFrames.get = function() {
                    return this._textures.length
                }, i.textures.get = function() {
                    return this._textures
                }, i.textures.set = function(e) {
                    if (e[0] instanceof Xt) this._textures = e, this._durations = null;
                    else {
                        this._textures = [], this._durations = [];
                        for (var t = 0; t < e.length; t++) this._textures.push(e[t].texture), this._durations.push(e[t].time)
                    }
                    this._previousFrame = null, this.gotoAndStop(0), this.updateTexture()
                }, i.currentFrame.get = function() {
                    var e = Math.floor(this._currentTime) % this._textures.length;
                    return e < 0 && (e += this._textures.length), e
                }, i.playing.get = function() {
                    return this._playing
                }, i.autoUpdate.get = function() {
                    return this._autoUpdate
                }, i.autoUpdate.set = function(e) {
                    e !== this._autoUpdate && (this._autoUpdate = e, !this._autoUpdate && this._isConnectedToTicker ? (at.shared.remove(this.update, this), this._isConnectedToTicker = !1) : this._autoUpdate && !this._isConnectedToTicker && this._playing && (at.shared.add(this.update, this), this._isConnectedToTicker = !0))
                }, Object.defineProperties(t.prototype, i), t
            }(Yn);
        i.d(t, "VERSION", function() {
            return ps
        }), i.d(t, "filters", function() {
            return vs
        }), i.d(t, "useDeprecated", function() {
            return ds
        }), i.d(t, "accessibility", function() {
            return n
        }), i.d(t, "interaction", function() {
            return a
        }), i.d(t, "utils", function() {
            return r
        }), i.d(t, "Application", function() {
            return Br
        }), i.d(t, "AbstractBatchRenderer", function() {
            return Pr
        }), i.d(t, "AbstractRenderer", function() {
            return br
        }), i.d(t, "Attribute", function() {
            return Ht
        }), i.d(t, "BaseRenderTexture", function() {
            return Lt
        }), i.d(t, "BaseTexture", function() {
            return Et
        }), i.d(t, "BatchDrawCall", function() {
            return kr
        }), i.d(t, "BatchGeometry", function() {
            return Mr
        }), i.d(t, "BatchPluginFactory", function() {
            return Rr
        }), i.d(t, "BatchRenderer", function() {
            return Fr
        }), i.d(t, "BatchShaderGenerator", function() {
            return Ir
        }), i.d(t, "BatchTextureArray", function() {
            return Tr
        }), i.d(t, "Buffer", function() {
            return Yt
        }), i.d(t, "CubeTexture", function() {
            return xr
        }), i.d(t, "Filter", function() {
            return Gi
        }), i.d(t, "Framebuffer", function() {
            return Bt
        }), i.d(t, "GLProgram", function() {
            return rr
        }), i.d(t, "GLTexture", function() {
            return pr
        }), i.d(t, "Geometry", function() {
            return Kt
        }), i.d(t, "MaskData", function() {
            return pi
        }), i.d(t, "ObjectRenderer", function() {
            return si
        }), i.d(t, "Program", function() {
            return Ni
        }), i.d(t, "Quad", function() {
            return ei
        }), i.d(t, "QuadUv", function() {
            return ti
        }), i.d(t, "RenderTexture", function() {
            return Gt
        }), i.d(t, "RenderTexturePool", function() {
            return $t
        }), i.d(t, "Renderer", function() {
            return gr
        }), i.d(t, "Shader", function() {
            return Ui
        }), i.d(t, "SpriteMaskFilter", function() {
            return qi
        }), i.d(t, "State", function() {
            return Xi
        }), i.d(t, "System", function() {
            return Dt
        }), i.d(t, "Texture", function() {
            return Xt
        }), i.d(t, "TextureMatrix", function() {
            return Yi
        }), i.d(t, "TextureUvs", function() {
            return Ut
        }), i.d(t, "UniformGroup", function() {
            return ri
        }), i.d(t, "ViewableBuffer", function() {
            return Er
        }), i.d(t, "autoDetectRenderer", function() {
            return yr
        }), i.d(t, "checkMaxIfStatementsInShader", function() {
            return Ri
        }), i.d(t, "defaultFilterVertex", function() {
            return wr
        }), i.d(t, "defaultVertex", function() {
            return Ar
        }), i.d(t, "resources", function() {
            return Rt
        }), i.d(t, "systems", function() {
            return mr
        }), i.d(t, "Extract", function() {
            return Vr
        }), i.d(t, "AppLoaderPlugin", function() {
            return cn
        }), i.d(t, "Loader", function() {
            return fn
        }), i.d(t, "LoaderResource", function() {
            return dn
        }), i.d(t, "TextureLoader", function() {
            return ln
        }), i.d(t, "ParticleContainer", function() {
            return pn
        }), i.d(t, "ParticleRenderer", function() {
            return bn
        }), i.d(t, "BasePrepare", function() {
            return oa
        }), i.d(t, "CountLimiter", function() {
            return sa
        }), i.d(t, "Prepare", function() {
            return va
        }), i.d(t, "TimeLimiter", function() {
            return ga
        }), i.d(t, "Spritesheet", function() {
            return ya
        }), i.d(t, "SpritesheetLoader", function() {
            return wa
        }), i.d(t, "TilingSprite", function() {
            return ka
        }), i.d(t, "TilingSpriteRenderer", function() {
            return Ia
        }), i.d(t, "BitmapFontLoader", function() {
            return Ca
        }), i.d(t, "BitmapText", function() {
            return Ma
        }), i.d(t, "Ticker", function() {
            return at
        }), i.d(t, "TickerPlugin", function() {
            return st
        }), i.d(t, "UPDATE_PRIORITY", function() {
            return it
        }), i.d(t, "ALPHA_MODES", function() {
            return R
        }), i.d(t, "BLEND_MODES", function() {
            return T
        }), i.d(t, "DRAW_MODES", function() {
            return E
        }), i.d(t, "ENV", function() {
            return x
        }), i.d(t, "FORMATS", function() {
            return S
        }), i.d(t, "GC_MODES", function() {
            return D
        }), i.d(t, "MASK_TYPES", function() {
            return B
        }), i.d(t, "MIPMAP_MODES", function() {
            return O
        }), i.d(t, "PRECISION", function() {
            return F
        }), i.d(t, "RENDERER_TYPE", function() {
            return k
        }), i.d(t, "SCALE_MODES", function() {
            return M
        }), i.d(t, "TARGETS", function() {
            return P
        }), i.d(t, "TYPES", function() {
            return I
        }), i.d(t, "WRAP_MODES", function() {
            return C
        }), i.d(t, "Bounds", function() {
            return Qe
        }), i.d(t, "Container", function() {
            return et
        }), i.d(t, "DisplayObject", function() {
            return Ze
        }), i.d(t, "FillStyle", function() {
            return yn
        }), i.d(t, "GRAPHICS_CURVES", function() {
            return gn
        }), i.d(t, "Graphics", function() {
            return $n
        }), i.d(t, "GraphicsData", function() {
            return Nn
        }), i.d(t, "GraphicsGeometry", function() {
            return Vn
        }), i.d(t, "LineStyle", function() {
            return Xn
        }), i.d(t, "graphicsUtils", function() {
            return Bn
        }), i.d(t, "Circle", function() {
            return Ye
        }), i.d(t, "DEG_TO_RAD", function() {
            return Fe
        }), i.d(t, "Ellipse", function() {
            return ze
        }), i.d(t, "Matrix", function() {
            return Be
        }), i.d(t, "ObservablePoint", function() {
            return Oe
        }), i.d(t, "PI_2", function() {
            return Re
        }), i.d(t, "Point", function() {
            return Ce
        }), i.d(t, "Polygon", function() {
            return qe
        }), i.d(t, "RAD_TO_DEG", function() {
            return De
        }), i.d(t, "Rectangle", function() {
            return We
        }), i.d(t, "RoundedRectangle", function() {
            return Je
        }), i.d(t, "SHAPES", function() {
            return Me
        }), i.d(t, "Transform", function() {
            return He
        }), i.d(t, "groupD8", function() {
            return $e
        }), i.d(t, "Mesh", function() {
            return es
        }), i.d(t, "MeshBatchUvs", function() {
            return Qa
        }), i.d(t, "MeshGeometry", function() {
            return ns
        }), i.d(t, "MeshMaterial", function() {
            return rs
        }), i.d(t, "NineSlicePlane", function() {
            return fs
        }), i.d(t, "PlaneGeometry", function() {
            return as
        }), i.d(t, "RopeGeometry", function() {
            return ss
        }), i.d(t, "SimpleMesh", function() {
            return hs
        }), i.d(t, "SimplePlane", function() {
            return us
        }), i.d(t, "SimpleRope", function() {
            return os
        }), i.d(t, "Runner", function() {
            return _t
        }), i.d(t, "Sprite", function() {
            return Yn
        }), i.d(t, "AnimatedSprite", function() {
            return cs
        }), i.d(t, "TEXT_GRADIENT", function() {
            return zn
        }), i.d(t, "Text", function() {
            return aa
        }), i.d(t, "TextMetrics", function() {
            return ia
        }), i.d(t, "TextStyle", function() {
            return Qn
        }), i.d(t, "isMobile", function() {
            return w
        }), i.d(t, "settings", function() {
            return N
        });

        function ds() {
            var e = this;
            Object.defineProperties(e, {
                SVG_SIZE: {
                    get: function() {
                        return _e(0, "PIXI.utils.SVG_SIZE property has moved to PIXI.resources.SVGResource.SVG_SIZE"), e.SVGResource.SVG_SIZE
                    }
                },
                TransformStatic: {
                    get: function() {
                        return _e(0, "PIXI.TransformStatic class has been removed, use PIXI.Transform"), e.Transform
                    }
                },
                TransformBase: {
                    get: function() {
                        return _e(0, "PIXI.TransformBase class has been removed, use PIXI.Transform"), e.Transform
                    }
                },
                TRANSFORM_MODE: {
                    get: function() {
                        return _e(0, "PIXI.TRANSFORM_MODE property has been removed"), {
                            STATIC: 0,
                            DYNAMIC: 1
                        }
                    }
                },
                WebGLRenderer: {
                    get: function() {
                        return _e(0, "PIXI.WebGLRenderer class has moved to PIXI.Renderer"), e.Renderer
                    }
                },
                CanvasRenderTarget: {
                    get: function() {
                        return _e(0, "PIXI.CanvasRenderTarget class has moved to PIXI.utils.CanvasRenderTarget"), e.utils.CanvasRenderTarget
                    }
                },
                loader: {
                    get: function() {
                        return _e(0, "PIXI.loader instance has moved to PIXI.Loader.shared"), e.Loader.shared
                    }
                },
                FilterManager: {
                    get: function() {
                        return _e(0, "PIXI.FilterManager class has moved to PIXI.systems.FilterSystem"), e.systems.FilterSystem
                    }
                },
                CanvasTinter: {
                    get: function() {
                        return _e(0, "PIXI.CanvasTinter namespace has moved to PIXI.canvasUtils"), e.canvasUtils
                    }
                },
                GroupD8: {
                    get: function() {
                        return _e(0, "PIXI.GroupD8 namespace has moved to PIXI.groupD8"), e.groupD8
                    }
                }
            }), e.prepare = {}, Object.defineProperties(e.prepare, {
                BasePrepare: {
                    get: function() {
                        return _e(0, "PIXI.prepare.BasePrepare moved to PIXI.BasePrepare"), e.BasePrepare
                    }
                },
                Prepare: {
                    get: function() {
                        return _e(0, "PIXI.prepare.Prepare moved to PIXI.Prepare"), e.Prepare
                    }
                },
                CanvasPrepare: {
                    get: function() {
                        return _e(0, "PIXI.prepare.CanvasPrepare moved to PIXI.CanvasPrepare"), e.CanvasPrepare
                    }
                }
            }), e.extract = {}, Object.defineProperties(e.extract, {
                Extract: {
                    get: function() {
                        return _e(0, "PIXI.extract.Extract moved to PIXI.Extract"), e.Extract
                    }
                },
                CanvasExtract: {
                    get: function() {
                        return _e(0, "PIXI.extract.CanvasExtract moved to PIXI.CanvasExtract"), e.CanvasExtract
                    }
                }
            }), e.extras = {}, Object.defineProperties(e.extras, {
                TilingSprite: {
                    get: function() {
                        return _e(0, "PIXI.extras.TilingSprite class has moved to PIXI.TilingSprite"), e.TilingSprite
                    }
                },
                TilingSpriteRenderer: {
                    get: function() {
                        return _e(0, "PIXI.extras.TilingSpriteRenderer class has moved to PIXI.TilingSpriteRenderer"), e.TilingSpriteRenderer
                    }
                },
                AnimatedSprite: {
                    get: function() {
                        return _e(0, "PIXI.extras.AnimatedSprite class has moved to PIXI.AnimatedSprite"), e.AnimatedSprite
                    }
                },
                BitmapText: {
                    get: function() {
                        return _e(0, "PIXI.extras.BitmapText class has moved to PIXI.BitmapText"), e.BitmapText
                    }
                }
            }), Object.defineProperties(e.utils, {
                getSvgSize: {
                    get: function() {
                        return _e(0, "PIXI.utils.getSvgSize function has moved to PIXI.resources.SVGResource.getSize"), e.SVGResource.getSize
                    }
                }
            }), e.mesh = {}, Object.defineProperties(e.mesh, {
                Mesh: {
                    get: function() {
                        return _e(0, "PIXI.mesh.Mesh class has moved to PIXI.SimpleMesh"), e.SimpleMesh
                    }
                },
                NineSlicePlane: {
                    get: function() {
                        return _e(0, "PIXI.mesh.NineSlicePlane class has moved to PIXI.NineSlicePlane"), e.NineSlicePlane
                    }
                },
                Plane: {
                    get: function() {
                        return _e(0, "PIXI.mesh.Plane class has moved to PIXI.SimplePlane"), e.SimplePlane
                    }
                },
                Rope: {
                    get: function() {
                        return _e(0, "PIXI.mesh.Rope class has moved to PIXI.SimpleRope"), e.SimpleRope
                    }
                },
                RawMesh: {
                    get: function() {
                        return _e(0, "PIXI.mesh.RawMesh class has moved to PIXI.Mesh"), e.Mesh
                    }
                },
                CanvasMeshRenderer: {
                    get: function() {
                        return _e(0, "PIXI.mesh.CanvasMeshRenderer class has moved to PIXI.CanvasMeshRenderer"), e.CanvasMeshRenderer
                    }
                },
                MeshRenderer: {
                    get: function() {
                        return _e(0, "PIXI.mesh.MeshRenderer class has moved to PIXI.MeshRenderer"), e.MeshRenderer
                    }
                }
            }), e.particles = {}, Object.defineProperties(e.particles, {
                ParticleContainer: {
                    get: function() {
                        return _e(0, "PIXI.particles.ParticleContainer class has moved to PIXI.ParticleContainer"), e.ParticleContainer
                    }
                },
                ParticleRenderer: {
                    get: function() {
                        return _e(0, "PIXI.particles.ParticleRenderer class has moved to PIXI.ParticleRenderer"), e.ParticleRenderer
                    }
                }
            }), e.ticker = {}, Object.defineProperties(e.ticker, {
                Ticker: {
                    get: function() {
                        return _e(0, "PIXI.ticker.Ticker class has moved to PIXI.Ticker"), e.Ticker
                    }
                },
                shared: {
                    get: function() {
                        return _e(0, "PIXI.ticker.shared instance has moved to PIXI.Ticker.shared"), e.Ticker.shared
                    }
                }
            }), e.loaders = {}, Object.defineProperties(e.loaders, {
                Loader: {
                    get: function() {
                        return _e(0, "PIXI.loaders.Loader class has moved to PIXI.Loader"), e.Loader
                    }
                },
                Resource: {
                    get: function() {
                        return _e(0, "PIXI.loaders.Resource class has moved to PIXI.LoaderResource"), e.LoaderResource
                    }
                },
                bitmapFontParser: {
                    get: function() {
                        return _e(0, "PIXI.loaders.bitmapFontParser function has moved to PIXI.BitmapFontLoader.use"), e.BitmapFontLoader.use
                    }
                },
                parseBitmapFontData: {
                    get: function() {
                        return _e(0, "PIXI.loaders.parseBitmapFontData function has moved to PIXI.BitmapFontLoader.parse"), e.BitmapFontLoader.parse
                    }
                },
                spritesheetParser: {
                    get: function() {
                        return _e(0, "PIXI.loaders.spritesheetParser function has moved to PIXI.SpritesheetLoader.use"), e.SpritesheetLoader.use
                    }
                },
                getResourcePath: {
                    get: function() {
                        return _e(0, "PIXI.loaders.getResourcePath property has moved to PIXI.SpritesheetLoader.getResourcePath"), e.SpritesheetLoader.getResourcePath
                    }
                }
            }), e.Loader.addPixiMiddleware = function(t) {
                return _e(0, "PIXI.loaders.Loader.addPixiMiddleware function is deprecated, use PIXI.loaders.Loader.registerPlugin"), e.loaders.Loader.registerPlugin({
                    use: t()
                })
            }, Object.defineProperty(e.extract, "WebGLExtract", {
                get: function() {
                    return _e(0, "PIXI.extract.WebGLExtract method has moved to PIXI.Extract"), e.Extract
                }
            }), Object.defineProperty(e.prepare, "WebGLPrepare", {
                get: function() {
                    return _e(0, "PIXI.prepare.WebGLPrepare class has moved to PIXI.Prepare"), e.Prepare
                }
            }), e.Container.prototype._renderWebGL = function(e) {
                _e(0, "PIXI.Container._renderWebGL method has moved to PIXI.Container._render"), this._render(e)
            }, e.Container.prototype.renderWebGL = function(e) {
                _e(0, "PIXI.Container.renderWebGL method has moved to PIXI.Container.render"), this.render(e)
            }, e.DisplayObject.prototype.renderWebGL = function(e) {
                _e(0, "PIXI.DisplayObject.renderWebGL method has moved to PIXI.DisplayObject.render"), this.render(e)
            }, e.Container.prototype.renderAdvancedWebGL = function(e) {
                _e(0, "PIXI.Container.renderAdvancedWebGL method has moved to PIXI.Container.renderAdvanced"), this.renderAdvanced(e)
            }, Object.defineProperties(e.settings, {
                TRANSFORM_MODE: {
                    get: function() {
                        return _e(0, "PIXI.settings.TRANSFORM_MODE property has been removed"), 0
                    },
                    set: function() {
                        _e(0, "PIXI.settings.TRANSFORM_MODE property has been removed")
                    }
                }
            });
            var t = e.BaseTexture;
            t.prototype.loadSource = function(t) {
                _e(0, "PIXI.BaseTexture.loadSource method has been deprecated");
                var i = e.resources.autoDetectResource(t);
                i.internal = !0, this.setResource(i), this.update()
            };
            var i = !1;
            Object.defineProperties(t.prototype, {
                hasLoaded: {
                    get: function() {
                        return _e(0, "PIXI.BaseTexture.hasLoaded property has been removed, use PIXI.BaseTexture.valid"), this.valid
                    }
                },
                imageUrl: {
                    get: function() {
                        return _e(0, "PIXI.BaseTexture.imageUrl property has been removed, use PIXI.BaseTexture.resource.url"), this.resource && this.resource.url
                    },
                    set: function(e) {
                        _e(0, "PIXI.BaseTexture.imageUrl property has been removed, use PIXI.BaseTexture.resource.url"), this.resource && (this.resource.url = e)
                    }
                },
                source: {
                    get: function() {
                        return _e(0, "PIXI.BaseTexture.source property has been moved, use `PIXI.BaseTexture.resource.source`"), this.resource && this.resource.source
                    },
                    set: function(e) {
                        _e(0, "PIXI.BaseTexture.source property has been moved, use `PIXI.BaseTexture.resource.source` if you want to set HTMLCanvasElement. Otherwise, create new BaseTexture."), this.resource && (this.resource.source = e)
                    }
                },
                premultiplyAlpha: {
                    get: function() {
                        return _e(0, "PIXI.BaseTexture.premultiplyAlpha property has been changed to `alphaMode`, see `PIXI.ALPHA_MODES`"), 0 !== this.alphaMode
                    },
                    set: function(e) {
                        _e(0, "PIXI.BaseTexture.premultiplyAlpha property has been changed to `alphaMode`, see `PIXI.ALPHA_MODES`"), this.alphaMode = Number(e)
                    }
                },
                _id: {
                    get: function() {
                        return i || (_e(0, "PIXI.BaseTexture._id batch local field has been changed to `_batchLocation`"), i = !0), this._batchLocation
                    },
                    set: function(e) {
                        this._batchLocation = e
                    }
                }
            }), t.fromImage = function(e, i, r, n) {
                _e(0, "PIXI.BaseTexture.fromImage method has been replaced with PIXI.BaseTexture.from");
                var a = {
                    scale: n,
                    crossorigin: i
                };
                return t.from(e, {
                    scaleMode: r,
                    resourceOptions: a
                })
            }, t.fromCanvas = function(e, i) {
                return _e(0, "PIXI.BaseTexture.fromCanvas method has been replaced with PIXI.BaseTexture.from"), t.from(e, {
                    scaleMode: i
                })
            }, t.fromSVG = function(e, i, r, n) {
                _e(0, "PIXI.BaseTexture.fromSVG method has been replaced with PIXI.BaseTexture.from");
                var a = {
                    scale: n,
                    crossorigin: i
                };
                return t.from(e, {
                    scaleMode: r,
                    resourceOptions: a
                })
            }, Object.defineProperties(e.resources.ImageResource.prototype, {
                premultiplyAlpha: {
                    get: function() {
                        return _e(0, "PIXI.resources.ImageResource.premultiplyAlpha property has been changed to `alphaMode`, see `PIXI.ALPHA_MODES`"), 0 !== this.alphaMode
                    },
                    set: function(e) {
                        _e(0, "PIXI.resources.ImageResource.premultiplyAlpha property has been changed to `alphaMode`, see `PIXI.ALPHA_MODES`"), this.alphaMode = Number(e)
                    }
                }
            }), e.Point.prototype.copy = function(e) {
                return _e(0, "PIXI.Point.copy method has been replaced with PIXI.Point.copyFrom"), this.copyFrom(e)
            }, e.ObservablePoint.prototype.copy = function(e) {
                return _e(0, "PIXI.ObservablePoint.copy method has been replaced with PIXI.ObservablePoint.copyFrom"), this.copyFrom(e)
            }, e.Rectangle.prototype.copy = function(e) {
                return _e(0, "PIXI.Rectangle.copy method has been replaced with PIXI.Rectangle.copyFrom"), this.copyFrom(e)
            }, e.Matrix.prototype.copy = function(e) {
                return _e(0, "PIXI.Matrix.copy method has been replaced with PIXI.Matrix.copyTo"), this.copyTo(e)
            }, e.systems.StateSystem.prototype.setState = function(e) {
                return _e(0, "StateSystem.setState has been renamed to StateSystem.set"), this.set(e)
            }, Object.assign(e.systems.FilterSystem.prototype, {
                getRenderTarget: function(e, t) {
                    return _e(0, "PIXI.FilterManager.getRenderTarget method has been replaced with PIXI.systems.FilterSystem#getFilterTexture"), this.getFilterTexture(t)
                },
                returnRenderTarget: function(e) {
                    _e(0, "PIXI.FilterManager.returnRenderTarget method has been replaced with PIXI.systems.FilterSystem.returnFilterTexture"), this.returnFilterTexture(e)
                },
                calculateScreenSpaceMatrix: function(e) {
                    _e(0, "PIXI.systems.FilterSystem.calculateScreenSpaceMatrix method is removed, use `(vTextureCoord * inputSize.xy) + outputFrame.xy` instead");
                    var t = e.identity(),
                        i = this.activeState,
                        r = i.sourceFrame,
                        n = i.destinationFrame;
                    return t.translate(r.x / n.width, r.y / n.height), t.scale(n.width, n.height), t
                },
                calculateNormalizedScreenSpaceMatrix: function(e) {
                    _e(0, "PIXI.systems.FilterManager.calculateNormalizedScreenSpaceMatrix method is removed, use `((vTextureCoord * inputSize.xy) + outputFrame.xy) / outputFrame.zw` instead.");
                    var t = this.activeState,
                        i = t.sourceFrame,
                        r = t.destinationFrame,
                        n = e.identity();
                    n.translate(i.x / r.width, i.y / r.height);
                    var a = r.width / i.width,
                        s = r.height / i.height;
                    return n.scale(a, s), n
                }
            }), Object.defineProperties(e.RenderTexture.prototype, {
                sourceFrame: {
                    get: function() {
                        return _e(0, "PIXI.RenderTexture.sourceFrame property has been removed"), this.filterFrame
                    }
                },
                size: {
                    get: function() {
                        return _e(0, "PIXI.RenderTexture.size property has been removed"), this._frame
                    }
                }
            });
            var r = function(e) {
                    function t(t, i, r, n) {
                        _e(0, "PIXI.filters.BlurXFilter class is deprecated, use PIXI.filters.BlurFilterPass"), e.call(this, !0, t, i, r, n)
                    }
                    return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
                }(e.filters.BlurFilterPass),
                n = function(e) {
                    function t(t, i, r, n) {
                        _e(0, "PIXI.filters.BlurYFilter class is deprecated, use PIXI.filters.BlurFilterPass"), e.call(this, !1, t, i, r, n)
                    }
                    return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t
                }(e.filters.BlurFilterPass);
            Object.assign(e.filters, {
                BlurXFilter: r,
                BlurYFilter: n
            });
            var a = e.Sprite,
                s = e.Texture,
                o = e.Graphics;

            function u(e, t, i, r) {
                return _e(0, "PIXI.Sprite." + e + " method is deprecated, use PIXI.Sprite.from"), a.from(t, {
                    resourceOptions: {
                        scale: r,
                        crossorigin: i
                    }
                })
            }

            function h(e, t, i, r) {
                return _e(0, "PIXI.Texture." + e + " method is deprecated, use PIXI.Texture.from"), s.from(t, {
                    resourceOptions: {
                        scale: r,
                        crossorigin: i
                    }
                })
            }
            o.prototype.generateCanvasTexture || (o.prototype.generateCanvasTexture = function() {
                _e(0, 'PIXI.Graphics.generateCanvasTexture method is only available in "pixi.js-legacy"')
            }), Object.defineProperty(e.Graphics.prototype, "graphicsData", {
                get: function() {
                    return _e(0, "PIXI.Graphics.graphicsData property is deprecated, use PIXI.Graphics.geometry.graphicsData"), this.geometry.graphicsData
                }
            }), Object.defineProperty(e.SimpleRope.prototype, "points", {
                get: function() {
                    return _e(0, "PIXI.SimpleRope.points property is deprecated, use PIXI.SimpleRope.geometry.points"), this.geometry.points
                },
                set: function(e) {
                    _e(0, "PIXI.SimpleRope.points property is deprecated, use PIXI.SimpleRope.geometry.points"), this.geometry.points = e
                }
            }), a.fromImage = u.bind(null, "fromImage"), a.fromSVG = u.bind(null, "fromSVG"), a.fromCanvas = u.bind(null, "fromCanvas"), a.fromVideo = u.bind(null, "fromVideo"), a.fromFrame = u.bind(null, "fromFrame"), s.fromImage = h.bind(null, "fromImage"), s.fromSVG = h.bind(null, "fromSVG"), s.fromCanvas = h.bind(null, "fromCanvas"), s.fromVideo = h.bind(null, "fromVideo"), s.fromFrame = h.bind(null, "fromFrame"), Object.defineProperty(e.AbstractRenderer.prototype, "autoResize", {
                get: function() {
                    return _e(0, "PIXI.AbstractRenderer.autoResize property is deprecated, use PIXI.AbstractRenderer.autoDensity"), this.autoDensity
                },
                set: function(e) {
                    _e(0, "PIXI.AbstractRenderer.autoResize property is deprecated, use PIXI.AbstractRenderer.autoDensity"), this.autoDensity = e
                }
            }), Object.defineProperty(e.Renderer.prototype, "textureManager", {
                get: function() {
                    return _e(0, "PIXI.Renderer.textureManager property is deprecated, use PIXI.Renderer.texture"), this.texture
                }
            }), e.utils.mixins = {
                mixin: function() {
                    _e(0, "PIXI.utils.mixins.mixin function is no longer available")
                },
                delayMixin: function() {
                    _e(0, "PIXI.utils.mixins.delayMixin function is no longer available")
                },
                performMixins: function() {
                    _e(0, "PIXI.utils.mixins.performMixins function is no longer available")
                }
            }
        }
        gr.registerPlugin("accessibility", rt), gr.registerPlugin("extract", Vr), gr.registerPlugin("interaction", mt), gr.registerPlugin("particle", bn), gr.registerPlugin("prepare", va), gr.registerPlugin("batch", Fr), gr.registerPlugin("tilingSprite", Ia), fn.registerPlugin(Ca), fn.registerPlugin(wa), Br.registerPlugin(st), Br.registerPlugin(cn);
        var ps = "5.2.4",
            vs = {
                AlphaFilter: Ra,
                BlurFilter: La,
                BlurFilterPass: Na,
                ColorMatrixFilter: Va,
                DisplacementFilter: Ga,
                FXAAFilter: Wa,
                NoiseFilter: za
            }
    }, function(e, t, i) {
        "use strict";
        (function(e, r) {
            i.d(t, "g", function() {
                return n
            }), i.d(t, "i", function() {
                return s
            }), i.d(t, "h", function() {
                return a
            }), i.d(t, "e", function() {
                return u
            }), i.d(t, "a", function() {
                return h
            }), i.d(t, "b", function() {
                return l
            }), i.d(t, "c", function() {
                return f
            }), i.d(t, "d", function() {
                return c
            }), i.d(t, "f", function() {
                return d
            });
            /*!
             * VERSION: 2.1.3
             * DATE: 2019-05-17
             * UPDATES AND DOCS AT: http://greensock.com
             *
             * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
             * This work is subject to the terms at http://greensock.com/standard-license or for
             * Club GreenSock members, the software agreement that was issued with your membership.
             *
             * @author: Jack Doyle, jack@greensock.com
             */
            var n = "undefined" != typeof window ? window : e.exports && void 0 !== r ? r : {},
                a = function(e) {
                    var t = {},
                        i = e.document,
                        r = e.GreenSockGlobals = e.GreenSockGlobals || e;
                    if (r.TweenLite) return r.TweenLite;
                    var n, a, s, o, u, h, l, f = function(e) {
                            var t, i = e.split("."),
                                n = r;
                            for (t = 0; t < i.length; t++) n[i[t]] = n = n[i[t]] || {};
                            return n
                        },
                        c = f("com.greensock"),
                        d = function(e) {
                            var t, i = [],
                                r = e.length;
                            for (t = 0; t !== r; i.push(e[t++]));
                            return i
                        },
                        p = function() {},
                        v = (h = Object.prototype.toString, l = h.call([]), function(e) {
                            return null != e && (e instanceof Array || "object" == typeof e && !!e.push && h.call(e) === l)
                        }),
                        m = {},
                        _ = function(e, i, n, a) {
                            this.sc = m[e] ? m[e].sc : [], m[e] = this, this.gsClass = null, this.func = n;
                            var s = [];
                            this.check = function(o) {
                                for (var u, h, l, c, d = i.length, p = d; --d > -1;)(u = m[i[d]] || new _(i[d], [])).gsClass ? (s[d] = u.gsClass, p--) : o && u.sc.push(this);
                                if (0 === p && n)
                                    for (l = (h = ("com.greensock." + e).split(".")).pop(), c = f(h.join("."))[l] = this.gsClass = n.apply(n, s), a && (r[l] = t[l] = c), d = 0; d < this.sc.length; d++) this.sc[d].check()
                            }, this.check(!0)
                        },
                        b = e._gsDefine = function(e, t, i, r) {
                            return new _(e, t, i, r)
                        },
                        g = c._class = function(e, t, i) {
                            return t = t || function() {}, b(e, [], function() {
                                return t
                            }, i), t
                        };
                    b.globals = r;
                    var y = [0, 0, 1, 1],
                        A = g("easing.Ease", function(e, t, i, r) {
                            this._func = e, this._type = i || 0, this._power = r || 0, this._params = t ? y.concat(t) : y
                        }, !0),
                        w = A.map = {},
                        x = A.register = function(e, t, i, r) {
                            for (var n, a, s, o, u = t.split(","), h = u.length, l = (i || "easeIn,easeOut,easeInOut").split(","); --h > -1;)
                                for (a = u[h], n = r ? g("easing." + a, null, !0) : c.easing[a] || {}, s = l.length; --s > -1;) o = l[s], w[a + "." + o] = w[o + a] = n[o] = e.getRatio ? e : e[o] || new e
                        };
                    for ((s = A.prototype)._calcEnd = !1, s.getRatio = function(e) {
                            if (this._func) return this._params[0] = e, this._func.apply(null, this._params);
                            var t = this._type,
                                i = this._power,
                                r = 1 === t ? 1 - e : 2 === t ? e : e < .5 ? 2 * e : 2 * (1 - e);
                            return 1 === i ? r *= r : 2 === i ? r *= r * r : 3 === i ? r *= r * r * r : 4 === i && (r *= r * r * r * r), 1 === t ? 1 - r : 2 === t ? r : e < .5 ? r / 2 : 1 - r / 2
                        }, a = (n = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"]).length; --a > -1;) s = n[a] + ",Power" + a, x(new A(null, null, 1, a), s, "easeOut", !0), x(new A(null, null, 2, a), s, "easeIn" + (0 === a ? ",easeNone" : "")), x(new A(null, null, 3, a), s, "easeInOut");
                    w.linear = c.easing.Linear.easeIn, w.swing = c.easing.Quad.easeInOut;
                    var k = g("events.EventDispatcher", function(e) {
                        this._listeners = {}, this._eventTarget = e || this
                    });
                    (s = k.prototype).addEventListener = function(e, t, i, r, n) {
                        n = n || 0;
                        var a, s, h = this._listeners[e],
                            l = 0;
                        for (this !== o || u || o.wake(), null == h && (this._listeners[e] = h = []), s = h.length; --s > -1;)(a = h[s]).c === t && a.s === i ? h.splice(s, 1) : 0 === l && a.pr < n && (l = s + 1);
                        h.splice(l, 0, {
                            c: t,
                            s: i,
                            up: r,
                            pr: n
                        })
                    }, s.removeEventListener = function(e, t) {
                        var i, r = this._listeners[e];
                        if (r)
                            for (i = r.length; --i > -1;)
                                if (r[i].c === t) return void r.splice(i, 1)
                    }, s.dispatchEvent = function(e) {
                        var t, i, r, n = this._listeners[e];
                        if (n)
                            for ((t = n.length) > 1 && (n = n.slice(0)), i = this._eventTarget; --t > -1;)(r = n[t]) && (r.up ? r.c.call(r.s || i, {
                                type: e,
                                target: i
                            }) : r.c.call(r.s || i))
                    };
                    var T = e.requestAnimationFrame,
                        E = e.cancelAnimationFrame,
                        S = Date.now || function() {
                            return (new Date).getTime()
                        },
                        P = S();
                    for (a = (n = ["ms", "moz", "webkit", "o"]).length; --a > -1 && !T;) T = e[n[a] + "RequestAnimationFrame"], E = e[n[a] + "CancelAnimationFrame"] || e[n[a] + "CancelRequestAnimationFrame"];
                    g("Ticker", function(e, t) {
                        var r, n, a, s, h, l = this,
                            f = S(),
                            c = !(!1 === t || !T) && "auto",
                            d = 500,
                            v = 33,
                            m = function(e) {
                                var t, i, o = S() - P;
                                o > d && (f += o - v), P += o, l.time = (P - f) / 1e3, t = l.time - h, (!r || t > 0 || !0 === e) && (l.frame++, h += t + (t >= s ? .004 : s - t), i = !0), !0 !== e && (a = n(m)), i && l.dispatchEvent("tick")
                            };
                        k.call(l), l.time = l.frame = 0, l.tick = function() {
                            m(!0)
                        }, l.lagSmoothing = function(e, t) {
                            if (!arguments.length) return d < 1e8;
                            d = e || 1e8, v = Math.min(t, d, 0)
                        }, l.sleep = function() {
                            null != a && (c && E ? E(a) : clearTimeout(a), n = p, a = null, l === o && (u = !1))
                        }, l.wake = function(e) {
                            null !== a ? l.sleep() : e ? f += -P + (P = S()) : l.frame > 10 && (P = S() - d + 5), n = 0 === r ? p : c && T ? T : function(e) {
                                return setTimeout(e, 1e3 * (h - l.time) + 1 | 0)
                            }, l === o && (u = !0), m(2)
                        }, l.fps = function(e) {
                            if (!arguments.length) return r;
                            s = 1 / ((r = e) || 60), h = this.time + s, l.wake()
                        }, l.useRAF = function(e) {
                            if (!arguments.length) return c;
                            l.sleep(), c = e, l.fps(r)
                        }, l.fps(e), setTimeout(function() {
                            "auto" === c && l.frame < 5 && "hidden" !== (i || {}).visibilityState && l.useRAF(!1)
                        }, 1500)
                    }), (s = c.Ticker.prototype = new c.events.EventDispatcher).constructor = c.Ticker;
                    var I = g("core.Animation", function(e, t) {
                        if (this.vars = t = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(t.delay) || 0, this._timeScale = 1, this._active = !!t.immediateRender, this.data = t.data, this._reversed = !!t.reversed, q) {
                            u || o.wake();
                            var i = this.vars.useFrames ? z : q;
                            i.add(this, i._time), this.vars.paused && this.paused(!0)
                        }
                    });
                    o = I.ticker = new c.Ticker, (s = I.prototype)._dirty = s._gc = s._initted = s._paused = !1, s._totalTime = s._time = 0, s._rawPrevTime = -1, s._next = s._last = s._onUpdate = s._timeline = s.timeline = null, s._paused = !1;
                    var M = function() {
                        u && S() - P > 2e3 && ("hidden" !== (i || {}).visibilityState || !o.lagSmoothing()) && o.wake();
                        var e = setTimeout(M, 2e3);
                        e.unref && e.unref()
                    };
                    M(), s.play = function(e, t) {
                        return null != e && this.seek(e, t), this.reversed(!1).paused(!1)
                    }, s.pause = function(e, t) {
                        return null != e && this.seek(e, t), this.paused(!0)
                    }, s.resume = function(e, t) {
                        return null != e && this.seek(e, t), this.paused(!1)
                    }, s.seek = function(e, t) {
                        return this.totalTime(Number(e), !1 !== t)
                    }, s.restart = function(e, t) {
                        return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, !1 !== t, !0)
                    }, s.reverse = function(e, t) {
                        return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
                    }, s.render = function(e, t, i) {}, s.invalidate = function() {
                        return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, !this._gc && this.timeline || this._enabled(!0), this
                    }, s.isActive = function() {
                        var e, t = this._timeline,
                            i = this._startTime;
                        return !t || !this._gc && !this._paused && t.isActive() && (e = t.rawTime(!0)) >= i && e < i + this.totalDuration() / this._timeScale - 1e-8
                    }, s._enabled = function(e, t) {
                        return u || o.wake(), this._gc = !e, this._active = this.isActive(), !0 !== t && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
                    }, s._kill = function(e, t) {
                        return this._enabled(!1, !1)
                    }, s.kill = function(e, t) {
                        return this._kill(e, t), this
                    }, s._uncache = function(e) {
                        for (var t = e ? this : this.timeline; t;) t._dirty = !0, t = t.timeline;
                        return this
                    }, s._swapSelfInParams = function(e) {
                        for (var t = e.length, i = e.concat(); --t > -1;) "{self}" === e[t] && (i[t] = this);
                        return i
                    }, s._callback = function(e) {
                        var t = this.vars,
                            i = t[e],
                            r = t[e + "Params"],
                            n = t[e + "Scope"] || t.callbackScope || this;
                        switch (r ? r.length : 0) {
                            case 0:
                                i.call(n);
                                break;
                            case 1:
                                i.call(n, r[0]);
                                break;
                            case 2:
                                i.call(n, r[0], r[1]);
                                break;
                            default:
                                i.apply(n, r)
                        }
                    }, s.eventCallback = function(e, t, i, r) {
                        if ("on" === (e || "").substr(0, 2)) {
                            var n = this.vars;
                            if (1 === arguments.length) return n[e];
                            null == t ? delete n[e] : (n[e] = t, n[e + "Params"] = v(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i, n[e + "Scope"] = r), "onUpdate" === e && (this._onUpdate = t)
                        }
                        return this
                    }, s.delay = function(e) {
                        return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
                    }, s.duration = function(e) {
                        return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
                    }, s.totalDuration = function(e) {
                        return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
                    }, s.time = function(e, t) {
                        return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
                    }, s.totalTime = function(e, t, i) {
                        if (u || o.wake(), !arguments.length) return this._totalTime;
                        if (this._timeline) {
                            if (e < 0 && !i && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
                                this._dirty && this.totalDuration();
                                var r = this._totalDuration,
                                    n = this._timeline;
                                if (e > r && !i && (e = r), this._startTime = (this._paused ? this._pauseTime : n._time) - (this._reversed ? r - e : e) / this._timeScale, n._dirty || this._uncache(!1), n._timeline)
                                    for (; n._timeline;) n._timeline._time !== (n._startTime + n._totalTime) / n._timeScale && n.totalTime(n._totalTime, !0), n = n._timeline
                            }
                            this._gc && this._enabled(!0, !1), this._totalTime === e && 0 !== this._duration || (D.length && Q(), this.render(e, t, !1), D.length && Q())
                        }
                        return this
                    }, s.progress = s.totalProgress = function(e, t) {
                        var i = this.duration();
                        return arguments.length ? this.totalTime(i * e, t) : i ? this._time / i : this.ratio
                    }, s.startTime = function(e) {
                        return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
                    }, s.endTime = function(e) {
                        return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale
                    }, s.timeScale = function(e) {
                        if (!arguments.length) return this._timeScale;
                        var t, i;
                        for (e = e || 1e-8, this._timeline && this._timeline.smoothChildTiming && (i = (t = this._pauseTime) || 0 === t ? t : this._timeline.totalTime(), this._startTime = i - (i - this._startTime) * this._timeScale / e), this._timeScale = e, i = this.timeline; i && i.timeline;) i._dirty = !0, i.totalDuration(), i = i.timeline;
                        return this
                    }, s.reversed = function(e) {
                        return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
                    }, s.paused = function(e) {
                        if (!arguments.length) return this._paused;
                        var t, i, r = this._timeline;
                        return e != this._paused && r && (u || e || o.wake(), i = (t = r.rawTime()) - this._pauseTime, !e && r.smoothChildTiming && (this._startTime += i, this._uncache(!1)), this._pauseTime = e ? t : null, this._paused = e, this._active = this.isActive(), !e && 0 !== i && this._initted && this.duration() && (t = r.smoothChildTiming ? this._totalTime : (t - this._startTime) / this._timeScale, this.render(t, t === this._totalTime, !0))), this._gc && !e && this._enabled(!0, !1), this
                    };
                    var C = g("core.SimpleTimeline", function(e) {
                        I.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
                    });
                    (s = C.prototype = new I).constructor = C, s.kill()._gc = !1, s._first = s._last = s._recent = null, s._sortChildren = !1, s.add = s.insert = function(e, t, i, r) {
                        var n, a;
                        if (e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = this.rawTime() - (e._timeline.rawTime() - e._pauseTime)), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), n = this._last, this._sortChildren)
                            for (a = e._startTime; n && n._startTime > a;) n = n._prev;
                        return n ? (e._next = n._next, n._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = n, this._recent = e, this._timeline && this._uncache(!0), this
                    }, s._remove = function(e, t) {
                        return e.timeline === this && (t || e._enabled(!1, !0), e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), e._next = e._prev = e.timeline = null, e === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
                    }, s.render = function(e, t, i) {
                        var r, n = this._first;
                        for (this._totalTime = this._time = this._rawPrevTime = e; n;) r = n._next, (n._active || e >= n._startTime && !n._paused && !n._gc) && (n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (e - n._startTime) * n._timeScale, t, i) : n.render((e - n._startTime) * n._timeScale, t, i)), n = r
                    }, s.rawTime = function() {
                        return u || o.wake(), this._totalTime
                    };
                    var O = g("TweenLite", function(t, i, r) {
                            if (I.call(this, i, r), this.render = O.prototype.render, null == t) throw "Cannot tween a null target.";
                            this.target = t = "string" != typeof t ? t : O.selector(t) || t;
                            var n, a, s, o = t.jquery || t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType),
                                u = this.vars.overwrite;
                            if (this._overwrite = u = null == u ? Y[O.defaultOverwrite] : "number" == typeof u ? u >> 0 : Y[u], (o || t instanceof Array || t.push && v(t)) && "number" != typeof t[0])
                                for (this._targets = s = d(t), this._propLookup = [], this._siblings = [], n = 0; n < s.length; n++)(a = s[n]) ? "string" != typeof a ? a.length && a !== e && a[0] && (a[0] === e || a[0].nodeType && a[0].style && !a.nodeType) ? (s.splice(n--, 1), this._targets = s = s.concat(d(a))) : (this._siblings[n] = Z(a, this, !1), 1 === u && this._siblings[n].length > 1 && ee(a, this, null, 1, this._siblings[n])) : "string" == typeof(a = s[n--] = O.selector(a)) && s.splice(n + 1, 1) : s.splice(n--, 1);
                            else this._propLookup = {}, this._siblings = Z(t, this, !1), 1 === u && this._siblings.length > 1 && ee(t, this, null, 1, this._siblings);
                            (this.vars.immediateRender || 0 === i && 0 === this._delay && !1 !== this.vars.immediateRender) && (this._time = -1e-8, this.render(Math.min(0, -this._delay)))
                        }, !0),
                        R = function(t) {
                            return t && t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType)
                        };
                    (s = O.prototype = new I).constructor = O, s.kill()._gc = !1, s.ratio = 0, s._firstPT = s._targets = s._overwrittenProps = s._startAt = null, s._notifyPluginsOfEnabled = s._lazy = !1, O.version = "2.1.3", O.defaultEase = s._ease = new A(null, null, 1, 1), O.defaultOverwrite = "auto", O.ticker = o, O.autoSleep = 120, O.lagSmoothing = function(e, t) {
                        o.lagSmoothing(e, t)
                    }, O.selector = e.$ || e.jQuery || function(t) {
                        var r = e.$ || e.jQuery;
                        return r ? (O.selector = r, r(t)) : (i || (i = e.document), i ? i.querySelectorAll ? i.querySelectorAll(t) : i.getElementById("#" === t.charAt(0) ? t.substr(1) : t) : t)
                    };
                    var D = [],
                        F = {},
                        B = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
                        N = /[\+-]=-?[\.\d]/,
                        L = function(e) {
                            for (var t, i = this._firstPT; i;) t = i.blob ? 1 === e && null != this.end ? this.end : e ? this.join("") : this.start : i.c * e + i.s, i.m ? t = i.m.call(this._tween, t, this._target || i.t, this._tween) : t < 1e-6 && t > -1e-6 && !i.blob && (t = 0), i.f ? i.fp ? i.t[i.p](i.fp, t) : i.t[i.p](t) : i.t[i.p] = t, i = i._next
                        },
                        U = function(e) {
                            return (1e3 * e | 0) / 1e3 + ""
                        },
                        V = function(e, t, i, r) {
                            var n, a, s, o, u, h, l, f = [],
                                c = 0,
                                d = "",
                                p = 0;
                            for (f.start = e, f.end = t, e = f[0] = e + "", t = f[1] = t + "", i && (i(f), e = f[0], t = f[1]), f.length = 0, n = e.match(B) || [], a = t.match(B) || [], r && (r._next = null, r.blob = 1, f._firstPT = f._applyPT = r), u = a.length, o = 0; o < u; o++) l = a[o], d += (h = t.substr(c, t.indexOf(l, c) - c)) || !o ? h : ",", c += h.length, p ? p = (p + 1) % 5 : "rgba(" === h.substr(-5) && (p = 1), l === n[o] || n.length <= o ? d += l : (d && (f.push(d), d = ""), s = parseFloat(n[o]), f.push(s), f._firstPT = {
                                _next: f._firstPT,
                                t: f,
                                p: f.length - 1,
                                s: s,
                                c: ("=" === l.charAt(1) ? parseInt(l.charAt(0) + "1", 10) * parseFloat(l.substr(2)) : parseFloat(l) - s) || 0,
                                f: 0,
                                m: p && p < 4 ? Math.round : U
                            }), c += l.length;
                            return (d += t.substr(c)) && f.push(d), f.setRatio = L, N.test(t) && (f.end = null), f
                        },
                        X = function(e, t, i, r, n, a, s, o, u) {
                            "function" == typeof r && (r = r(u || 0, e));
                            var h = typeof e[t],
                                l = "function" !== h ? "" : t.indexOf("set") || "function" != typeof e["get" + t.substr(3)] ? t : "get" + t.substr(3),
                                f = "get" !== i ? i : l ? s ? e[l](s) : e[l]() : e[t],
                                c = "string" == typeof r && "=" === r.charAt(1),
                                d = {
                                    t: e,
                                    p: t,
                                    s: f,
                                    f: "function" === h,
                                    pg: 0,
                                    n: n || t,
                                    m: a ? "function" == typeof a ? a : Math.round : 0,
                                    pr: 0,
                                    c: c ? parseInt(r.charAt(0) + "1", 10) * parseFloat(r.substr(2)) : parseFloat(r) - f || 0
                                };
                            if (("number" != typeof f || "number" != typeof r && !c) && (s || isNaN(f) || !c && isNaN(r) || "boolean" == typeof f || "boolean" == typeof r ? (d.fp = s, d = {
                                    t: V(f, c ? parseFloat(d.s) + d.c + (d.s + "").replace(/[0-9\-\.]/g, "") : r, o || O.defaultStringFilter, d),
                                    p: "setRatio",
                                    s: 0,
                                    c: 1,
                                    f: 2,
                                    pg: 0,
                                    n: n || t,
                                    pr: 0,
                                    m: 0
                                }) : (d.s = parseFloat(f), c || (d.c = parseFloat(r) - d.s || 0))), d.c) return (d._next = this._firstPT) && (d._next._prev = d), this._firstPT = d, d
                        },
                        j = O._internals = {
                            isArray: v,
                            isSelector: R,
                            lazyTweens: D,
                            blobDif: V
                        },
                        G = O._plugins = {},
                        $ = j.tweenLookup = {},
                        H = 0,
                        W = j.reservedProps = {
                            ease: 1,
                            delay: 1,
                            overwrite: 1,
                            onComplete: 1,
                            onCompleteParams: 1,
                            onCompleteScope: 1,
                            useFrames: 1,
                            runBackwards: 1,
                            startAt: 1,
                            onUpdate: 1,
                            onUpdateParams: 1,
                            onUpdateScope: 1,
                            onStart: 1,
                            onStartParams: 1,
                            onStartScope: 1,
                            onReverseComplete: 1,
                            onReverseCompleteParams: 1,
                            onReverseCompleteScope: 1,
                            onRepeat: 1,
                            onRepeatParams: 1,
                            onRepeatScope: 1,
                            easeParams: 1,
                            yoyo: 1,
                            immediateRender: 1,
                            repeat: 1,
                            repeatDelay: 1,
                            data: 1,
                            paused: 1,
                            reversed: 1,
                            autoCSS: 1,
                            lazy: 1,
                            onOverwrite: 1,
                            callbackScope: 1,
                            stringFilter: 1,
                            id: 1,
                            yoyoEase: 1,
                            stagger: 1
                        },
                        Y = {
                            none: 0,
                            all: 1,
                            auto: 2,
                            concurrent: 3,
                            allOnStart: 4,
                            preexisting: 5,
                            true: 1,
                            false: 0
                        },
                        z = I._rootFramesTimeline = new C,
                        q = I._rootTimeline = new C,
                        J = 30,
                        Q = j.lazyRender = function() {
                            var e, t, i = D.length;
                            for (F = {}, e = 0; e < i; e++)(t = D[e]) && !1 !== t._lazy && (t.render(t._lazy[0], t._lazy[1], !0), t._lazy = !1);
                            D.length = 0
                        };
                    q._startTime = o.time, z._startTime = o.frame, q._active = z._active = !0, setTimeout(Q, 1), I._updateRoot = O.render = function() {
                        var e, t, i;
                        if (D.length && Q(), q.render((o.time - q._startTime) * q._timeScale, !1, !1), z.render((o.frame - z._startTime) * z._timeScale, !1, !1), D.length && Q(), o.frame >= J) {
                            for (i in J = o.frame + (parseInt(O.autoSleep, 10) || 120), $) {
                                for (e = (t = $[i].tweens).length; --e > -1;) t[e]._gc && t.splice(e, 1);
                                0 === t.length && delete $[i]
                            }
                            if ((!(i = q._first) || i._paused) && O.autoSleep && !z._first && 1 === o._listeners.tick.length) {
                                for (; i && i._paused;) i = i._next;
                                i || o.sleep()
                            }
                        }
                    }, o.addEventListener("tick", I._updateRoot);
                    var Z = function(e, t, i) {
                            var r, n, a = e._gsTweenID;
                            if ($[a || (e._gsTweenID = a = "t" + H++)] || ($[a] = {
                                    target: e,
                                    tweens: []
                                }), t && ((r = $[a].tweens)[n = r.length] = t, i))
                                for (; --n > -1;) r[n] === t && r.splice(n, 1);
                            return $[a].tweens
                        },
                        K = function(e, t, i, r) {
                            var n, a, s = e.vars.onOverwrite;
                            return s && (n = s(e, t, i, r)), (s = O.onOverwrite) && (a = s(e, t, i, r)), !1 !== n && !1 !== a
                        },
                        ee = function(e, t, i, r, n) {
                            var a, s, o, u;
                            if (1 === r || r >= 4) {
                                for (u = n.length, a = 0; a < u; a++)
                                    if ((o = n[a]) !== t) o._gc || o._kill(null, e, t) && (s = !0);
                                    else if (5 === r) break;
                                return s
                            }
                            var h, l = t._startTime + 1e-8,
                                f = [],
                                c = 0,
                                d = 0 === t._duration;
                            for (a = n.length; --a > -1;)(o = n[a]) === t || o._gc || o._paused || (o._timeline !== t._timeline ? (h = h || te(t, 0, d), 0 === te(o, h, d) && (f[c++] = o)) : o._startTime <= l && o._startTime + o.totalDuration() / o._timeScale > l && ((d || !o._initted) && l - o._startTime <= 2e-8 || (f[c++] = o)));
                            for (a = c; --a > -1;)
                                if (u = (o = f[a])._firstPT, 2 === r && o._kill(i, e, t) && (s = !0), 2 !== r || !o._firstPT && o._initted && u) {
                                    if (2 !== r && !K(o, t)) continue;
                                    o._enabled(!1, !1) && (s = !0)
                                }
                            return s
                        },
                        te = function(e, t, i) {
                            for (var r = e._timeline, n = r._timeScale, a = e._startTime; r._timeline;) {
                                if (a += r._startTime, n *= r._timeScale, r._paused) return -100;
                                r = r._timeline
                            }
                            return (a /= n) > t ? a - t : i && a === t || !e._initted && a - t < 2e-8 ? 1e-8 : (a += e.totalDuration() / e._timeScale / n) > t + 1e-8 ? 0 : a - t - 1e-8
                        };
                    s._init = function() {
                        var e, t, i, r, n, a, s = this.vars,
                            o = this._overwrittenProps,
                            u = this._duration,
                            h = !!s.immediateRender,
                            l = s.ease,
                            f = this._startAt;
                        if (s.startAt) {
                            for (r in f && (f.render(-1, !0), f.kill()), n = {}, s.startAt) n[r] = s.startAt[r];
                            if (n.data = "isStart", n.overwrite = !1, n.immediateRender = !0, n.lazy = h && !1 !== s.lazy, n.startAt = n.delay = null, n.onUpdate = s.onUpdate, n.onUpdateParams = s.onUpdateParams, n.onUpdateScope = s.onUpdateScope || s.callbackScope || this, this._startAt = O.to(this.target || {}, 0, n), h)
                                if (this._time > 0) this._startAt = null;
                                else if (0 !== u) return
                        } else if (s.runBackwards && 0 !== u)
                            if (f) f.render(-1, !0), f.kill(), this._startAt = null;
                            else {
                                for (r in 0 !== this._time && (h = !1), i = {}, s) W[r] && "autoCSS" !== r || (i[r] = s[r]);
                                if (i.overwrite = 0, i.data = "isFromStart", i.lazy = h && !1 !== s.lazy, i.immediateRender = h, this._startAt = O.to(this.target, 0, i), h) {
                                    if (0 === this._time) return
                                } else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
                            }
                        if (this._ease = l = l ? l instanceof A ? l : "function" == typeof l ? new A(l, s.easeParams) : w[l] || O.defaultEase : O.defaultEase, s.easeParams instanceof Array && l.config && (this._ease = l.config.apply(l, s.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                            for (a = this._targets.length, e = 0; e < a; e++) this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], o ? o[e] : null, e) && (t = !0);
                        else t = this._initProps(this.target, this._propLookup, this._siblings, o, 0);
                        if (t && O._onPluginEvent("_onInitAllProps", this), o && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), s.runBackwards)
                            for (i = this._firstPT; i;) i.s += i.c, i.c = -i.c, i = i._next;
                        this._onUpdate = s.onUpdate, this._initted = !0
                    }, s._initProps = function(t, i, r, n, a) {
                        var s, o, u, h, l, f;
                        if (null == t) return !1;
                        for (s in F[t._gsTweenID] && Q(), this.vars.css || t.style && t !== e && t.nodeType && G.css && !1 !== this.vars.autoCSS && function(e, t) {
                                var i, r = {};
                                for (i in e) W[i] || i in t && "transform" !== i && "x" !== i && "y" !== i && "width" !== i && "height" !== i && "className" !== i && "border" !== i || !(!G[i] || G[i] && G[i]._autoCSS) || (r[i] = e[i], delete e[i]);
                                e.css = r
                            }(this.vars, t), this.vars)
                            if (f = this.vars[s], W[s]) f && (f instanceof Array || f.push && v(f)) && -1 !== f.join("").indexOf("{self}") && (this.vars[s] = f = this._swapSelfInParams(f, this));
                            else if (G[s] && (h = new G[s])._onInitTween(t, this.vars[s], this, a)) {
                            for (this._firstPT = l = {
                                    _next: this._firstPT,
                                    t: h,
                                    p: "setRatio",
                                    s: 0,
                                    c: 1,
                                    f: 1,
                                    n: s,
                                    pg: 1,
                                    pr: h._priority,
                                    m: 0
                                }, o = h._overwriteProps.length; --o > -1;) i[h._overwriteProps[o]] = this._firstPT;
                            (h._priority || h._onInitAllProps) && (u = !0), (h._onDisable || h._onEnable) && (this._notifyPluginsOfEnabled = !0), l._next && (l._next._prev = l)
                        } else i[s] = X.call(this, t, s, "get", f, s, 0, null, this.vars.stringFilter, a);
                        return n && this._kill(n, t) ? this._initProps(t, i, r, n, a) : this._overwrite > 1 && this._firstPT && r.length > 1 && ee(t, this, i, this._overwrite, r) ? (this._kill(i, t), this._initProps(t, i, r, n, a)) : (this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration) && (F[t._gsTweenID] = !0), u)
                    }, s.render = function(e, t, i) {
                        var r, n, a, s, o = this._time,
                            u = this._duration,
                            h = this._rawPrevTime;
                        if (e >= u - 1e-8 && e >= 0) this._totalTime = this._time = u, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (r = !0, n = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 === u && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (e = 0), (h < 0 || e <= 0 && e >= -1e-8 || 1e-8 === h && "isPause" !== this.data) && h !== e && (i = !0, h > 1e-8 && (n = "onReverseComplete")), this._rawPrevTime = s = !t || e || h === e ? e : 1e-8);
                        else if (e < 1e-8) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== o || 0 === u && h > 0) && (n = "onReverseComplete", r = this._reversed), e > -1e-8 ? e = 0 : e < 0 && (this._active = !1, 0 === u && (this._initted || !this.vars.lazy || i) && (h >= 0 && (1e-8 !== h || "isPause" !== this.data) && (i = !0), this._rawPrevTime = s = !t || e || h === e ? e : 1e-8)), (!this._initted || this._startAt && this._startAt.progress()) && (i = !0);
                        else if (this._totalTime = this._time = e, this._easeType) {
                            var l = e / u,
                                f = this._easeType,
                                c = this._easePower;
                            (1 === f || 3 === f && l >= .5) && (l = 1 - l), 3 === f && (l *= 2), 1 === c ? l *= l : 2 === c ? l *= l * l : 3 === c ? l *= l * l * l : 4 === c && (l *= l * l * l * l), this.ratio = 1 === f ? 1 - l : 2 === f ? l : e / u < .5 ? l / 2 : 1 - l / 2
                        } else this.ratio = this._ease.getRatio(e / u);
                        if (this._time !== o || i) {
                            if (!this._initted) {
                                if (this._init(), !this._initted || this._gc) return;
                                if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = o, this._rawPrevTime = h, D.push(this), void(this._lazy = [e, t]);
                                this._time && !r ? this.ratio = this._ease.getRatio(this._time / u) : r && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                            }
                            for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== o && e >= 0 && (this._active = !0), 0 === o && (this._startAt && (e >= 0 ? this._startAt.render(e, !0, i) : n || (n = "_dummyGS")), this.vars.onStart && (0 === this._time && 0 !== u || t || this._callback("onStart"))), a = this._firstPT; a;) a.f ? a.t[a.p](a.c * this.ratio + a.s) : a.t[a.p] = a.c * this.ratio + a.s, a = a._next;
                            this._onUpdate && (e < 0 && this._startAt && -1e-4 !== e && this._startAt.render(e, !0, i), t || (this._time !== o || r || i) && this._callback("onUpdate")), n && (this._gc && !i || (e < 0 && this._startAt && !this._onUpdate && -1e-4 !== e && this._startAt.render(e, !0, i), r && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[n] && this._callback(n), 0 === u && 1e-8 === this._rawPrevTime && 1e-8 !== s && (this._rawPrevTime = 0)))
                        }
                    }, s._kill = function(e, t, i) {
                        if ("all" === e && (e = null), null == e && (null == t || t === this.target)) return this._lazy = !1, this._enabled(!1, !1);
                        t = "string" != typeof t ? t || this._targets || this.target : O.selector(t) || t;
                        var r, n, a, s, o, u, h, l, f, c = i && this._time && i._startTime === this._startTime && this._timeline === i._timeline,
                            d = this._firstPT;
                        if ((v(t) || R(t)) && "number" != typeof t[0])
                            for (r = t.length; --r > -1;) this._kill(e, t[r], i) && (u = !0);
                        else {
                            if (this._targets) {
                                for (r = this._targets.length; --r > -1;)
                                    if (t === this._targets[r]) {
                                        o = this._propLookup[r] || {}, this._overwrittenProps = this._overwrittenProps || [], n = this._overwrittenProps[r] = e ? this._overwrittenProps[r] || {} : "all";
                                        break
                                    }
                            } else {
                                if (t !== this.target) return !1;
                                o = this._propLookup, n = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
                            }
                            if (o) {
                                if (h = e || o, l = e !== n && "all" !== n && e !== o && ("object" != typeof e || !e._tempKill), i && (O.onOverwrite || this.vars.onOverwrite)) {
                                    for (a in h) o[a] && (f || (f = []), f.push(a));
                                    if ((f || !e) && !K(this, i, t, f)) return !1
                                }
                                for (a in h)(s = o[a]) && (c && (s.f ? s.t[s.p](s.s) : s.t[s.p] = s.s, u = !0), s.pg && s.t._kill(h) && (u = !0), s.pg && 0 !== s.t._overwriteProps.length || (s._prev ? s._prev._next = s._next : s === this._firstPT && (this._firstPT = s._next), s._next && (s._next._prev = s._prev), s._next = s._prev = null), delete o[a]), l && (n[a] = 1);
                                !this._firstPT && this._initted && d && this._enabled(!1, !1)
                            }
                        }
                        return u
                    }, s.invalidate = function() {
                        this._notifyPluginsOfEnabled && O._onPluginEvent("_onDisable", this);
                        var e = this._time;
                        return this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], I.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -1e-8, this.render(e, !1, !1 !== this.vars.lazy)), this
                    }, s._enabled = function(e, t) {
                        if (u || o.wake(), e && this._gc) {
                            var i, r = this._targets;
                            if (r)
                                for (i = r.length; --i > -1;) this._siblings[i] = Z(r[i], this, !0);
                            else this._siblings = Z(this.target, this, !0)
                        }
                        return I.prototype._enabled.call(this, e, t), !(!this._notifyPluginsOfEnabled || !this._firstPT) && O._onPluginEvent(e ? "_onEnable" : "_onDisable", this)
                    }, O.to = function(e, t, i) {
                        return new O(e, t, i)
                    }, O.from = function(e, t, i) {
                        return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new O(e, t, i)
                    }, O.fromTo = function(e, t, i, r) {
                        return r.startAt = i, r.immediateRender = 0 != r.immediateRender && 0 != i.immediateRender, new O(e, t, r)
                    }, O.delayedCall = function(e, t, i, r, n) {
                        return new O(t, 0, {
                            delay: e,
                            onComplete: t,
                            onCompleteParams: i,
                            callbackScope: r,
                            onReverseComplete: t,
                            onReverseCompleteParams: i,
                            immediateRender: !1,
                            lazy: !1,
                            useFrames: n,
                            overwrite: 0
                        })
                    }, O.set = function(e, t) {
                        return new O(e, 0, t)
                    }, O.getTweensOf = function(e, t) {
                        if (null == e) return [];
                        var i, r, n, a;
                        if (e = "string" != typeof e ? e : O.selector(e) || e, (v(e) || R(e)) && "number" != typeof e[0]) {
                            for (i = e.length, r = []; --i > -1;) r = r.concat(O.getTweensOf(e[i], t));
                            for (i = r.length; --i > -1;)
                                for (a = r[i], n = i; --n > -1;) a === r[n] && r.splice(i, 1)
                        } else if (e._gsTweenID)
                            for (i = (r = Z(e).concat()).length; --i > -1;)(r[i]._gc || t && !r[i].isActive()) && r.splice(i, 1);
                        return r || []
                    }, O.killTweensOf = O.killDelayedCallsTo = function(e, t, i) {
                        "object" == typeof t && (i = t, t = !1);
                        for (var r = O.getTweensOf(e, t), n = r.length; --n > -1;) r[n]._kill(i, e)
                    };
                    var ie = g("plugins.TweenPlugin", function(e, t) {
                        this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = ie.prototype
                    }, !0);
                    if (s = ie.prototype, ie.version = "1.19.0", ie.API = 2, s._firstPT = null, s._addTween = X, s.setRatio = L, s._kill = function(e) {
                            var t, i = this._overwriteProps,
                                r = this._firstPT;
                            if (null != e[this._propName]) this._overwriteProps = [];
                            else
                                for (t = i.length; --t > -1;) null != e[i[t]] && i.splice(t, 1);
                            for (; r;) null != e[r.n] && (r._next && (r._next._prev = r._prev), r._prev ? (r._prev._next = r._next, r._prev = null) : this._firstPT === r && (this._firstPT = r._next)), r = r._next;
                            return !1
                        }, s._mod = s._roundProps = function(e) {
                            for (var t, i = this._firstPT; i;)(t = e[this._propName] || null != i.n && e[i.n.split(this._propName + "_").join("")]) && "function" == typeof t && (2 === i.f ? i.t._applyPT.m = t : i.m = t), i = i._next
                        }, O._onPluginEvent = function(e, t) {
                            var i, r, n, a, s, o = t._firstPT;
                            if ("_onInitAllProps" === e) {
                                for (; o;) {
                                    for (s = o._next, r = n; r && r.pr > o.pr;) r = r._next;
                                    (o._prev = r ? r._prev : a) ? o._prev._next = o: n = o, (o._next = r) ? r._prev = o : a = o, o = s
                                }
                                o = t._firstPT = n
                            }
                            for (; o;) o.pg && "function" == typeof o.t[e] && o.t[e]() && (i = !0), o = o._next;
                            return i
                        }, ie.activate = function(e) {
                            for (var t = e.length; --t > -1;) e[t].API === ie.API && (G[(new e[t])._propName] = e[t]);
                            return !0
                        }, b.plugin = function(e) {
                            if (!(e && e.propName && e.init && e.API)) throw "illegal plugin definition.";
                            var t, i = e.propName,
                                r = e.priority || 0,
                                n = e.overwriteProps,
                                a = {
                                    init: "_onInitTween",
                                    set: "setRatio",
                                    kill: "_kill",
                                    round: "_mod",
                                    mod: "_mod",
                                    initAll: "_onInitAllProps"
                                },
                                s = g("plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin", function() {
                                    ie.call(this, i, r), this._overwriteProps = n || []
                                }, !0 === e.global),
                                o = s.prototype = new ie(i);
                            for (t in o.constructor = s, s.API = e.API, a) "function" == typeof e[t] && (o[a[t]] = e[t]);
                            return s.version = e.version, ie.activate([s]), s
                        }, n = e._gsQueue) {
                        for (a = 0; a < n.length; a++) n[a]();
                        for (s in m) m[s].func || e.console.log("GSAP encountered missing dependency: " + s)
                    }
                    return u = !1, O
                }(n),
                s = n.GreenSockGlobals,
                o = s.com.greensock,
                u = o.core.SimpleTimeline,
                h = o.core.Animation,
                l = s.Ease,
                f = s.Linear,
                c = s.Power1,
                d = (s.Power2, s.Power3, s.Power4, s.TweenPlugin);
            o.events.EventDispatcher
        }).call(this, i(213)(e), i(54))
    }, , , function(e, t, i) {
        "use strict";
        var r = i(4),
            n = i(125);
        /*!
         * VERSION: 2.1.3
         * DATE: 2019-05-17
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         */
        r.g._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function() {
            var e, t, i, n, a = function() {
                    r.f.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = a.prototype.setRatio
                },
                s = r.g._gsDefine.globals,
                o = {},
                u = a.prototype = new r.f("css");
            u.constructor = a, a.version = "2.1.3", a.API = 2, a.defaultTransformPerspective = 0, a.defaultSkewType = "compensated", a.defaultSmoothOrigin = !0, u = "px", a.suffixMap = {
                top: u,
                right: u,
                bottom: u,
                left: u,
                width: u,
                height: u,
                fontSize: u,
                padding: u,
                margin: u,
                perspective: u,
                lineHeight: ""
            };
            var h, l, f, c, d, p, v, m, _ = /(?:\-|\.|\b)(\d|\.|e\-)+/g,
                b = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
                g = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
                y = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b),?/gi,
                A = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,
                w = /(?:\d|\-|\+|=|#|\.)*/g,
                x = /opacity *= *([^)]*)/i,
                k = /opacity:([^;]*)/i,
                T = /alpha\(opacity *=.+?\)/i,
                E = /^(rgb|hsl)/,
                S = /([A-Z])/g,
                P = /-([a-z])/gi,
                I = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
                M = function(e, t) {
                    return t.toUpperCase()
                },
                C = /(?:Left|Right|Width)/i,
                O = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
                R = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
                D = /,(?=[^\)]*(?:\(|$))/gi,
                F = /[\s,\(]/i,
                B = Math.PI / 180,
                N = 180 / Math.PI,
                L = {},
                U = {
                    style: {}
                },
                V = r.g.document || {
                    createElement: function() {
                        return U
                    }
                },
                X = function(e, t) {
                    var i = V.createElementNS ? V.createElementNS(t || "http://www.w3.org/1999/xhtml", e) : V.createElement(e);
                    return i.style ? i : V.createElement(e)
                },
                j = X("div"),
                G = X("img"),
                $ = a._internals = {
                    _specialProps: o
                },
                H = (r.g.navigator || {}).userAgent || "",
                W = function() {
                    var e = H.indexOf("Android"),
                        t = X("a");
                    return f = -1 !== H.indexOf("Safari") && -1 === H.indexOf("Chrome") && (-1 === e || parseFloat(H.substr(e + 8, 2)) > 3), d = f && parseFloat(H.substr(H.indexOf("Version/") + 8, 2)) < 6, c = -1 !== H.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(H) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(H)) && (p = parseFloat(RegExp.$1)), !!t && (t.style.cssText = "top:1px;opacity:.55;", /^0.55/.test(t.style.opacity))
                }(),
                Y = function(e) {
                    return x.test("string" == typeof e ? e : (e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
                },
                z = function(e) {
                    r.g.console
                },
                q = "",
                J = "",
                Q = function(e, t) {
                    var i, r, n = (t = t || j).style;
                    if (void 0 !== n[e]) return e;
                    for (e = e.charAt(0).toUpperCase() + e.substr(1), i = ["O", "Moz", "ms", "Ms", "Webkit"], r = 5; --r > -1 && void 0 === n[i[r] + e];);
                    return r >= 0 ? (q = "-" + (J = 3 === r ? "ms" : i[r]).toLowerCase() + "-", J + e) : null
                },
                Z = "undefined" != typeof window ? window : V.defaultView || {
                    getComputedStyle: function() {}
                },
                K = function(e) {
                    return Z.getComputedStyle(e)
                },
                ee = a.getStyle = function(e, t, i, r, n) {
                    var a;
                    return W || "opacity" !== t ? (!r && e.style[t] ? a = e.style[t] : (i = i || K(e)) ? a = i[t] || i.getPropertyValue(t) || i.getPropertyValue(t.replace(S, "-$1").toLowerCase()) : e.currentStyle && (a = e.currentStyle[t]), null == n || a && "none" !== a && "auto" !== a && "auto auto" !== a ? a : n) : Y(e)
                },
                te = $.convertToPixels = function(e, t, i, n, s) {
                    if ("px" === n || !n && "lineHeight" !== t) return i;
                    if ("auto" === n || !i) return 0;
                    var o, u, h, l = C.test(t),
                        f = e,
                        c = j.style,
                        d = i < 0,
                        p = 1 === i;
                    if (d && (i = -i), p && (i *= 100), "lineHeight" !== t || n)
                        if ("%" === n && -1 !== t.indexOf("border")) o = i / 100 * (l ? e.clientWidth : e.clientHeight);
                        else {
                            if (c.cssText = "border:0 solid red;position:" + ee(e, "position") + ";line-height:0;", "%" !== n && f.appendChild && "v" !== n.charAt(0) && "rem" !== n) c[l ? "borderLeftWidth" : "borderTopWidth"] = i + n;
                            else {
                                if (f = e.parentNode || V.body, -1 !== ee(f, "display").indexOf("flex") && (c.position = "absolute"), u = f._gsCache, h = r.h.ticker.frame, u && l && u.time === h) return u.width * i / 100;
                                c[l ? "width" : "height"] = i + n
                            }
                            f.appendChild(j), o = parseFloat(j[l ? "offsetWidth" : "offsetHeight"]), f.removeChild(j), l && "%" === n && !1 !== a.cacheWidths && ((u = f._gsCache = f._gsCache || {}).time = h, u.width = o / i * 100), 0 !== o || s || (o = te(e, t, i, n, !0))
                        }
                    else u = K(e).lineHeight, e.style.lineHeight = i, o = parseFloat(K(e).lineHeight), e.style.lineHeight = u;
                    return p && (o /= 100), d ? -o : o
                },
                ie = $.calculateOffset = function(e, t, i) {
                    if ("absolute" !== ee(e, "position", i)) return 0;
                    var r = "left" === t ? "Left" : "Top",
                        n = ee(e, "margin" + r, i);
                    return e["offset" + r] - (te(e, t, parseFloat(n), n.replace(w, "")) || 0)
                },
                re = function(e, t) {
                    var i, r, n, a = {};
                    if (t = t || K(e))
                        if (i = t.length)
                            for (; --i > -1;) - 1 !== (n = t[i]).indexOf("-transform") && De !== n || (a[n.replace(P, M)] = t.getPropertyValue(n));
                        else
                            for (i in t) - 1 !== i.indexOf("Transform") && Re !== i || (a[i] = t[i]);
                    else if (t = e.currentStyle || e.style)
                        for (i in t) "string" == typeof i && void 0 === a[i] && (a[i.replace(P, M)] = t[i]);
                    return W || (a.opacity = Y(e)), r = Ye(e, t, !1), a.rotation = r.rotation, a.skewX = r.skewX, a.scaleX = r.scaleX, a.scaleY = r.scaleY, a.x = r.x, a.y = r.y, Be && (a.z = r.z, a.rotationX = r.rotationX, a.rotationY = r.rotationY, a.scaleZ = r.scaleZ), a.filters && delete a.filters, a
                },
                ne = function(e, t, i, r, n) {
                    var a, s, o, u = {},
                        h = e.style;
                    for (s in i) "cssText" !== s && "length" !== s && isNaN(s) && (t[s] !== (a = i[s]) || n && n[s]) && -1 === s.indexOf("Origin") && ("number" != typeof a && "string" != typeof a || (u[s] = "auto" !== a || "left" !== s && "top" !== s ? "" !== a && "auto" !== a && "none" !== a || "string" != typeof t[s] || "" === t[s].replace(A, "") ? a : 0 : ie(e, s), void 0 !== h[s] && (o = new ge(h, s, h[s], o))));
                    if (r)
                        for (s in r) "className" !== s && (u[s] = r[s]);
                    return {
                        difs: u,
                        firstMPT: o
                    }
                },
                ae = {
                    width: ["Left", "Right"],
                    height: ["Top", "Bottom"]
                },
                se = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
                oe = function(e, t, i) {
                    if ("svg" === (e.nodeName + "").toLowerCase()) return (i || K(e))[t] || 0;
                    if (e.getCTM && $e(e)) return e.getBBox()[t] || 0;
                    var r = parseFloat("width" === t ? e.offsetWidth : e.offsetHeight),
                        n = ae[t],
                        a = n.length;
                    for (i = i || K(e); --a > -1;) r -= parseFloat(ee(e, "padding" + n[a], i, !0)) || 0, r -= parseFloat(ee(e, "border" + n[a] + "Width", i, !0)) || 0;
                    return r
                },
                ue = function(e, t) {
                    if ("contain" === e || "auto" === e || "auto auto" === e) return e + " ";
                    null != e && "" !== e || (e = "0 0");
                    var i, r = e.split(" "),
                        n = -1 !== e.indexOf("left") ? "0%" : -1 !== e.indexOf("right") ? "100%" : r[0],
                        a = -1 !== e.indexOf("top") ? "0%" : -1 !== e.indexOf("bottom") ? "100%" : r[1];
                    if (r.length > 3 && !t) {
                        for (r = e.split(", ").join(",").split(","), e = [], i = 0; i < r.length; i++) e.push(ue(r[i]));
                        return e.join(",")
                    }
                    return null == a ? a = "center" === n ? "50%" : "0" : "center" === a && (a = "50%"), ("center" === n || isNaN(parseFloat(n)) && -1 === (n + "").indexOf("=")) && (n = "50%"), e = n + " " + a + (r.length > 2 ? " " + r[2] : ""), t && (t.oxp = -1 !== n.indexOf("%"), t.oyp = -1 !== a.indexOf("%"), t.oxr = "=" === n.charAt(1), t.oyr = "=" === a.charAt(1), t.ox = parseFloat(n.replace(A, "")), t.oy = parseFloat(a.replace(A, "")), t.v = e), t || e
                },
                he = function(e, t) {
                    return "function" == typeof e && (e = e(m, v)), "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(t) || 0
                },
                le = function(e, t) {
                    "function" == typeof e && (e = e(m, v));
                    var i = "string" == typeof e && "=" === e.charAt(1);
                    return "string" == typeof e && "v" === e.charAt(e.length - 2) && (e = (i ? e.substr(0, 2) : 0) + window["inner" + ("vh" === e.substr(-2) ? "Height" : "Width")] * (parseFloat(i ? e.substr(2) : e) / 100)), null == e ? t : i ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) + t : parseFloat(e) || 0
                },
                fe = function(e, t, i, r) {
                    var n, a, s, o;
                    return "function" == typeof e && (e = e(m, v)), null == e ? s = t : "number" == typeof e ? s = e : (360, n = e.split("_"), a = ((o = "=" === e.charAt(1)) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(n[0].substr(2)) : parseFloat(n[0])) * (-1 === e.indexOf("rad") ? 1 : N) - (o ? 0 : t), n.length && (r && (r[i] = t + a), -1 !== e.indexOf("short") && (a %= 360) !== a % 180 && (a = a < 0 ? a + 360 : a - 360), -1 !== e.indexOf("_cw") && a < 0 ? a = (a + 3599999999640) % 360 - 360 * (a / 360 | 0) : -1 !== e.indexOf("ccw") && a > 0 && (a = (a - 3599999999640) % 360 - 360 * (a / 360 | 0))), s = t + a), s < 1e-6 && s > -1e-6 && (s = 0), s
                },
                ce = {
                    aqua: [0, 255, 255],
                    lime: [0, 255, 0],
                    silver: [192, 192, 192],
                    black: [0, 0, 0],
                    maroon: [128, 0, 0],
                    teal: [0, 128, 128],
                    blue: [0, 0, 255],
                    navy: [0, 0, 128],
                    white: [255, 255, 255],
                    fuchsia: [255, 0, 255],
                    olive: [128, 128, 0],
                    yellow: [255, 255, 0],
                    orange: [255, 165, 0],
                    gray: [128, 128, 128],
                    purple: [128, 0, 128],
                    green: [0, 128, 0],
                    red: [255, 0, 0],
                    pink: [255, 192, 203],
                    cyan: [0, 255, 255],
                    transparent: [255, 255, 255, 0]
                },
                de = function(e, t, i) {
                    return 255 * (6 * (e = e < 0 ? e + 1 : e > 1 ? e - 1 : e) < 1 ? t + (i - t) * e * 6 : e < .5 ? i : 3 * e < 2 ? t + (i - t) * (2 / 3 - e) * 6 : t) + .5 | 0
                },
                pe = a.parseColor = function(e, t) {
                    var i, r, n, a, s, o, u, h, l, f, c;
                    if (e)
                        if ("number" == typeof e) i = [e >> 16, e >> 8 & 255, 255 & e];
                        else {
                            if ("," === e.charAt(e.length - 1) && (e = e.substr(0, e.length - 1)), ce[e]) i = ce[e];
                            else if ("#" === e.charAt(0)) 4 === e.length && (r = e.charAt(1), n = e.charAt(2), a = e.charAt(3), e = "#" + r + r + n + n + a + a), i = [(e = parseInt(e.substr(1), 16)) >> 16, e >> 8 & 255, 255 & e];
                            else if ("hsl" === e.substr(0, 3))
                                if (i = c = e.match(_), t) {
                                    if (-1 !== e.indexOf("=")) return e.match(b)
                                } else s = Number(i[0]) % 360 / 360, o = Number(i[1]) / 100, r = 2 * (u = Number(i[2]) / 100) - (n = u <= .5 ? u * (o + 1) : u + o - u * o), i.length > 3 && (i[3] = Number(i[3])), i[0] = de(s + 1 / 3, r, n), i[1] = de(s, r, n), i[2] = de(s - 1 / 3, r, n);
                            else i = e.match(_) || ce.transparent;
                            i[0] = Number(i[0]), i[1] = Number(i[1]), i[2] = Number(i[2]), i.length > 3 && (i[3] = Number(i[3]))
                        }
                    else i = ce.black;
                    return t && !c && (r = i[0] / 255, n = i[1] / 255, a = i[2] / 255, u = ((h = Math.max(r, n, a)) + (l = Math.min(r, n, a))) / 2, h === l ? s = o = 0 : (f = h - l, o = u > .5 ? f / (2 - h - l) : f / (h + l), s = h === r ? (n - a) / f + (n < a ? 6 : 0) : h === n ? (a - r) / f + 2 : (r - n) / f + 4, s *= 60), i[0] = s + .5 | 0, i[1] = 100 * o + .5 | 0, i[2] = 100 * u + .5 | 0), i
                },
                ve = function(e, t) {
                    var i, r, n, a = e.match(me) || [],
                        s = 0,
                        o = "";
                    if (!a.length) return e;
                    for (i = 0; i < a.length; i++) r = a[i], s += (n = e.substr(s, e.indexOf(r, s) - s)).length + r.length, 3 === (r = pe(r, t)).length && r.push(1), o += n + (t ? "hsla(" + r[0] + "," + r[1] + "%," + r[2] + "%," + r[3] : "rgba(" + r.join(",")) + ")";
                    return o + e.substr(s)
                },
                me = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";
            for (u in ce) me += "|" + u + "\\b";
            me = new RegExp(me + ")", "gi"), a.colorStringFilter = function(e) {
                var t, i = e[0] + " " + e[1];
                me.test(i) && (t = -1 !== i.indexOf("hsl(") || -1 !== i.indexOf("hsla("), e[0] = ve(e[0], t), e[1] = ve(e[1], t)), me.lastIndex = 0
            }, r.h.defaultStringFilter || (r.h.defaultStringFilter = a.colorStringFilter);
            var _e = function(e, t, i, r) {
                    if (null == e) return function(e) {
                        return e
                    };
                    var n, a = t ? (e.match(me) || [""])[0] : "",
                        s = e.split(a).join("").match(g) || [],
                        o = e.substr(0, e.indexOf(s[0])),
                        u = ")" === e.charAt(e.length - 1) ? ")" : "",
                        h = -1 !== e.indexOf(" ") ? " " : ",",
                        l = s.length,
                        f = l > 0 ? s[0].replace(_, "") : "";
                    return l ? n = t ? function(e) {
                        var t, c, d, p;
                        if ("number" == typeof e) e += f;
                        else if (r && D.test(e)) {
                            for (p = e.replace(D, "|").split("|"), d = 0; d < p.length; d++) p[d] = n(p[d]);
                            return p.join(",")
                        }
                        if (t = (e.match(me) || [a])[0], d = (c = e.split(t).join("").match(g) || []).length, l > d--)
                            for (; ++d < l;) c[d] = i ? c[(d - 1) / 2 | 0] : s[d];
                        return o + c.join(h) + h + t + u + (-1 !== e.indexOf("inset") ? " inset" : "")
                    } : function(e) {
                        var t, a, c;
                        if ("number" == typeof e) e += f;
                        else if (r && D.test(e)) {
                            for (a = e.replace(D, "|").split("|"), c = 0; c < a.length; c++) a[c] = n(a[c]);
                            return a.join(",")
                        }
                        if (c = (t = e.match("," === h ? g : y) || []).length, l > c--)
                            for (; ++c < l;) t[c] = i ? t[(c - 1) / 2 | 0] : s[c];
                        return (o && "none" !== e && e.substr(0, e.indexOf(t[0])) || o) + t.join(h) + u
                    } : function(e) {
                        return e
                    }
                },
                be = function(e) {
                    return e = e.split(","),
                        function(t, i, r, n, a, s, o) {
                            var u, h = (i + "").split(" ");
                            for (o = {}, u = 0; u < 4; u++) o[e[u]] = h[u] = h[u] || h[(u - 1) / 2 >> 0];
                            return n.parse(t, o, a, s)
                        }
                },
                ge = ($._setPluginRatio = function(e) {
                    this.plugin.setRatio(e);
                    for (var t, i, r, n, a, s = this.data, o = s.proxy, u = s.firstMPT; u;) t = o[u.v], u.r ? t = u.r(t) : t < 1e-6 && t > -1e-6 && (t = 0), u.t[u.p] = t, u = u._next;
                    if (s.autoRotate && (s.autoRotate.rotation = s.mod ? s.mod.call(this._tween, o.rotation, this.t, this._tween) : o.rotation), 1 === e || 0 === e)
                        for (u = s.firstMPT, a = 1 === e ? "e" : "b"; u;) {
                            if ((i = u.t).type) {
                                if (1 === i.type) {
                                    for (n = i.xs0 + i.s + i.xs1, r = 1; r < i.l; r++) n += i["xn" + r] + i["xs" + (r + 1)];
                                    i[a] = n
                                }
                            } else i[a] = i.s + i.xs0;
                            u = u._next
                        }
                }, function(e, t, i, r, n) {
                    this.t = e, this.p = t, this.v = i, this.r = n, r && (r._prev = this, this._next = r)
                }),
                ye = ($._parseToProxy = function(e, t, i, r, n, a) {
                    var s, o, u, h, l, f = r,
                        c = {},
                        d = {},
                        p = i._transform,
                        v = L;
                    for (i._transform = null, L = t, r = l = i.parse(e, t, r, n), L = v, a && (i._transform = p, f && (f._prev = null, f._prev && (f._prev._next = null))); r && r !== f;) {
                        if (r.type <= 1 && (d[o = r.p] = r.s + r.c, c[o] = r.s, a || (h = new ge(r, "s", o, h, r.r), r.c = 0), 1 === r.type))
                            for (s = r.l; --s > 0;) u = "xn" + s, d[o = r.p + "_" + u] = r.data[u], c[o] = r[u], a || (h = new ge(r, u, o, h, r.rxp[u]));
                        r = r._next
                    }
                    return {
                        proxy: c,
                        end: d,
                        firstMPT: h,
                        pt: l
                    }
                }, $.CSSPropTween = function(t, i, r, a, s, o, u, h, l, f, c) {
                    this.t = t, this.p = i, this.s = r, this.c = a, this.n = u || i, t instanceof ye || n.push(this.n), this.r = h ? "function" == typeof h ? h : Math.round : h, this.type = o || 0, l && (this.pr = l, e = !0), this.b = void 0 === f ? r : f, this.e = void 0 === c ? r + a : c, s && (this._next = s, s._prev = this)
                }),
                Ae = function(e, t, i, r, n, a) {
                    var s = new ye(e, t, i, r - i, n, -1, a);
                    return s.b = i, s.e = s.xs0 = r, s
                },
                we = a.parseComplex = function(e, t, i, r, n, s, o, u, l, f) {
                    i = i || s || "", "function" == typeof r && (r = r(m, v)), o = new ye(e, t, 0, 0, o, f ? 2 : 1, null, !1, u, i, r), r += "", n && me.test(r + i) && (r = [i, r], a.colorStringFilter(r), i = r[0], r = r[1]);
                    var c, d, p, g, y, A, w, x, k, T, E, S, P, I = i.split(", ").join(",").split(" "),
                        M = r.split(", ").join(",").split(" "),
                        C = I.length,
                        O = !1 !== h;
                    for (-1 === r.indexOf(",") && -1 === i.indexOf(",") || (-1 !== (r + i).indexOf("rgb") || -1 !== (r + i).indexOf("hsl") ? (I = I.join(" ").replace(D, ", ").split(" "), M = M.join(" ").replace(D, ", ").split(" ")) : (I = I.join(" ").split(",").join(", ").split(" "), M = M.join(" ").split(",").join(", ").split(" ")), C = I.length), C !== M.length && (C = (I = (s || "").split(" ")).length), o.plugin = l, o.setRatio = f, me.lastIndex = 0, c = 0; c < C; c++)
                        if (g = I[c], y = M[c] + "", (x = parseFloat(g)) || 0 === x) o.appendXtra("", x, he(y, x), y.replace(b, ""), !(!O || -1 === y.indexOf("px")) && Math.round, !0);
                        else if (n && me.test(g)) S = ")" + ((S = y.indexOf(")") + 1) ? y.substr(S) : ""), P = -1 !== y.indexOf("hsl") && W, T = y, g = pe(g, P), y = pe(y, P), (k = g.length + y.length > 6) && !W && 0 === y[3] ? (o["xs" + o.l] += o.l ? " transparent" : "transparent", o.e = o.e.split(M[c]).join("transparent")) : (W || (k = !1), P ? o.appendXtra(T.substr(0, T.indexOf("hsl")) + (k ? "hsla(" : "hsl("), g[0], he(y[0], g[0]), ",", !1, !0).appendXtra("", g[1], he(y[1], g[1]), "%,", !1).appendXtra("", g[2], he(y[2], g[2]), k ? "%," : "%" + S, !1) : o.appendXtra(T.substr(0, T.indexOf("rgb")) + (k ? "rgba(" : "rgb("), g[0], y[0] - g[0], ",", Math.round, !0).appendXtra("", g[1], y[1] - g[1], ",", Math.round).appendXtra("", g[2], y[2] - g[2], k ? "," : S, Math.round), k && (g = g.length < 4 ? 1 : g[3], o.appendXtra("", g, (y.length < 4 ? 1 : y[3]) - g, S, !1))), me.lastIndex = 0;
                    else if (A = g.match(_)) {
                        if (!(w = y.match(b)) || w.length !== A.length) return o;
                        for (p = 0, d = 0; d < A.length; d++) E = A[d], T = g.indexOf(E, p), o.appendXtra(g.substr(p, T - p), Number(E), he(w[d], E), "", !(!O || "px" !== g.substr(T + E.length, 2)) && Math.round, 0 === d), p = T + E.length;
                        o["xs" + o.l] += g.substr(p)
                    } else o["xs" + o.l] += o.l || o["xs" + o.l] ? " " + y : y;
                    if (-1 !== r.indexOf("=") && o.data) {
                        for (S = o.xs0 + o.data.s, c = 1; c < o.l; c++) S += o["xs" + c] + o.data["xn" + c];
                        o.e = S + o["xs" + c]
                    }
                    return o.l || (o.type = -1, o.xs0 = o.e), o.xfirst || o
                },
                xe = 9;
            for ((u = ye.prototype).l = u.pr = 0; --xe > 0;) u["xn" + xe] = 0, u["xs" + xe] = "";
            u.xs0 = "", u._next = u._prev = u.xfirst = u.data = u.plugin = u.setRatio = u.rxp = null, u.appendXtra = function(e, t, i, r, n, a) {
                var s = this,
                    o = s.l;
                return s["xs" + o] += a && (o || s["xs" + o]) ? " " + e : e || "", i || 0 === o || s.plugin ? (s.l++, s.type = s.setRatio ? 2 : 1, s["xs" + s.l] = r || "", o > 0 ? (s.data["xn" + o] = t + i, s.rxp["xn" + o] = n, s["xn" + o] = t, s.plugin || (s.xfirst = new ye(s, "xn" + o, t, i, s.xfirst || s, 0, s.n, n, s.pr), s.xfirst.xs0 = 0), s) : (s.data = {
                    s: t + i
                }, s.rxp = {}, s.s = t, s.c = i, s.r = n, s)) : (s["xs" + o] += t + (r || ""), s)
            };
            var ke = function(e, t) {
                    t = t || {}, this.p = t.prefix && Q(e) || e, o[e] = o[this.p] = this, this.format = t.formatter || _e(t.defaultValue, t.color, t.collapsible, t.multi), t.parser && (this.parse = t.parser), this.clrs = t.color, this.multi = t.multi, this.keyword = t.keyword, this.dflt = t.defaultValue, this.allowFunc = t.allowFunc, this.pr = t.priority || 0
                },
                Te = $._registerComplexSpecialProp = function(e, t, i) {
                    "object" != typeof t && (t = {
                        parser: i
                    });
                    var r, n = e.split(","),
                        a = t.defaultValue;
                    for (i = i || [a], r = 0; r < n.length; r++) t.prefix = 0 === r && t.prefix, t.defaultValue = i[r] || a, new ke(n[r], t)
                },
                Ee = $._registerPluginProp = function(e) {
                    if (!o[e]) {
                        var t = e.charAt(0).toUpperCase() + e.substr(1) + "Plugin";
                        Te(e, {
                            parser: function(e, i, r, n, a, u, h) {
                                var l = s.com.greensock.plugins[t];
                                return l ? (l._cssRegister(), o[r].parse(e, i, r, n, a, u, h)) : (z(), a)
                            }
                        })
                    }
                };
            (u = ke.prototype).parseComplex = function(e, t, i, r, n, a) {
                var s, o, u, h, l, f, c = this.keyword;
                if (this.multi && (D.test(i) || D.test(t) ? (o = t.replace(D, "|").split("|"), u = i.replace(D, "|").split("|")) : c && (o = [t], u = [i])), u) {
                    for (h = u.length > o.length ? u.length : o.length, s = 0; s < h; s++) t = o[s] = o[s] || this.dflt, i = u[s] = u[s] || this.dflt, c && (l = t.indexOf(c)) !== (f = i.indexOf(c)) && (-1 === f ? o[s] = o[s].split(c).join("") : -1 === l && (o[s] += " " + c));
                    t = o.join(", "), i = u.join(", ")
                }
                return we(e, this.p, t, i, this.clrs, this.dflt, r, this.pr, n, a)
            }, u.parse = function(e, t, r, n, a, s, o) {
                return this.parseComplex(e.style, this.format(ee(e, this.p, i, !1, this.dflt)), this.format(t), a, s)
            }, a.registerSpecialProp = function(e, t, i) {
                Te(e, {
                    parser: function(e, r, n, a, s, o, u) {
                        var h = new ye(e, n, 0, 0, s, 2, n, !1, i);
                        return h.plugin = o, h.setRatio = t(e, r, a._tween, n), h
                    },
                    priority: i
                })
            }, a.useSVGTransformAttr = !0;
            var Se, Pe, Ie, Me, Ce, Oe = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),
                Re = Q("transform"),
                De = q + "transform",
                Fe = Q("transformOrigin"),
                Be = null !== Q("perspective"),
                Ne = $.Transform = function() {
                    this.perspective = parseFloat(a.defaultTransformPerspective) || 0, this.force3D = !(!1 === a.defaultForce3D || !Be) && (a.defaultForce3D || "auto")
                },
                Le = r.g.SVGElement,
                Ue = function(e, t, i) {
                    var r, n = V.createElementNS("http://www.w3.org/2000/svg", e),
                        a = /([a-z])([A-Z])/g;
                    for (r in i) n.setAttributeNS(null, r.replace(a, "$1-$2").toLowerCase(), i[r]);
                    return t.appendChild(n), n
                },
                Ve = V.documentElement || {},
                Xe = (Ce = p || /Android/i.test(H) && !r.g.chrome, V.createElementNS && Ve.appendChild && !Ce && (Pe = Ue("svg", Ve), Me = (Ie = Ue("rect", Pe, {
                    width: 100,
                    height: 50,
                    x: 100
                })).getBoundingClientRect().width, Ie.style[Fe] = "50% 50%", Ie.style[Re] = "scaleX(0.5)", Ce = Me === Ie.getBoundingClientRect().width && !(c && Be), Ve.removeChild(Pe)), Ce),
                je = function(e, t, i, r, n, s) {
                    var o, u, h, l, f, c, d, p, v, m, _, b, g, y, A = e._gsTransform,
                        w = We(e, !0);
                    A && (g = A.xOrigin, y = A.yOrigin), (!r || (o = r.split(" ")).length < 2) && (0 === (d = e.getBBox()).x && 0 === d.y && d.width + d.height === 0 && (d = {
                        x: parseFloat(e.hasAttribute("x") ? e.getAttribute("x") : e.hasAttribute("cx") ? e.getAttribute("cx") : 0) || 0,
                        y: parseFloat(e.hasAttribute("y") ? e.getAttribute("y") : e.hasAttribute("cy") ? e.getAttribute("cy") : 0) || 0,
                        width: 0,
                        height: 0
                    }), o = [(-1 !== (t = ue(t).split(" "))[0].indexOf("%") ? parseFloat(t[0]) / 100 * d.width : parseFloat(t[0])) + d.x, (-1 !== t[1].indexOf("%") ? parseFloat(t[1]) / 100 * d.height : parseFloat(t[1])) + d.y]), i.xOrigin = l = parseFloat(o[0]), i.yOrigin = f = parseFloat(o[1]), r && w !== He && (c = w[0], d = w[1], p = w[2], v = w[3], m = w[4], _ = w[5], (b = c * v - d * p) && (u = l * (v / b) + f * (-p / b) + (p * _ - v * m) / b, h = l * (-d / b) + f * (c / b) - (c * _ - d * m) / b, l = i.xOrigin = o[0] = u, f = i.yOrigin = o[1] = h)), A && (s && (i.xOffset = A.xOffset, i.yOffset = A.yOffset, A = i), n || !1 !== n && !1 !== a.defaultSmoothOrigin ? (u = l - g, h = f - y, A.xOffset += u * w[0] + h * w[2] - u, A.yOffset += u * w[1] + h * w[3] - h) : A.xOffset = A.yOffset = 0), s || e.setAttribute("data-svg-origin", o.join(" "))
                },
                Ge = function(e) {
                    var t, i = X("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"),
                        r = this.parentNode,
                        n = this.nextSibling,
                        a = this.style.cssText;
                    if (Ve.appendChild(i), i.appendChild(this), this.style.display = "block", e) try {
                        t = this.getBBox(), this._originalGetBBox = this.getBBox, this.getBBox = Ge
                    } catch (e) {} else this._originalGetBBox && (t = this._originalGetBBox());
                    return n ? r.insertBefore(this, n) : r.appendChild(this), Ve.removeChild(i), this.style.cssText = a, t
                },
                $e = function(e) {
                    return !(!Le || !e.getCTM || e.parentNode && !e.ownerSVGElement || ! function(e) {
                        try {
                            return e.getBBox()
                        } catch (t) {
                            return Ge.call(e, !0)
                        }
                    }(e))
                },
                He = [1, 0, 0, 1, 0, 0],
                We = function(e, t) {
                    var i, r, n, a, s, o, u, h = e._gsTransform || new Ne,
                        l = e.style;
                    if (Re ? r = ee(e, De, null, !0) : e.currentStyle && (r = (r = e.currentStyle.filter.match(O)) && 4 === r.length ? [r[0].substr(4), Number(r[2].substr(4)), Number(r[1].substr(4)), r[3].substr(4), h.x || 0, h.y || 0].join(",") : ""), i = !r || "none" === r || "matrix(1, 0, 0, 1, 0, 0)" === r, Re && i && !e.offsetParent && e !== Ve && (a = l.display, l.display = "block", (u = e.parentNode) && e.offsetParent || (s = 1, o = e.nextSibling, Ve.appendChild(e)), i = !(r = ee(e, De, null, !0)) || "none" === r || "matrix(1, 0, 0, 1, 0, 0)" === r, a ? l.display = a : Qe(l, "display"), s && (o ? u.insertBefore(e, o) : u ? u.appendChild(e) : Ve.removeChild(e))), (h.svg || e.getCTM && $e(e)) && (i && -1 !== (l[Re] + "").indexOf("matrix") && (r = l[Re], i = 0), n = e.getAttribute("transform"), i && n && (r = "matrix(" + (n = e.transform.baseVal.consolidate().matrix).a + "," + n.b + "," + n.c + "," + n.d + "," + n.e + "," + n.f + ")", i = 0)), i) return He;
                    for (n = (r || "").match(_) || [], xe = n.length; --xe > -1;) a = Number(n[xe]), n[xe] = (s = a - (a |= 0)) ? (1e5 * s + (s < 0 ? -.5 : .5) | 0) / 1e5 + a : a;
                    return t && n.length > 6 ? [n[0], n[1], n[4], n[5], n[12], n[13]] : n
                },
                Ye = $.getTransform = function(e, t, i, n) {
                    if (e._gsTransform && i && !n) return e._gsTransform;
                    var s, o, u, h, l, f, c = i && e._gsTransform || new Ne,
                        d = c.scaleX < 0,
                        p = Be && (parseFloat(ee(e, Fe, t, !1, "0 0 0").split(" ")[2]) || c.zOrigin) || 0,
                        v = parseFloat(a.defaultTransformPerspective) || 0;
                    if (c.svg = !(!e.getCTM || !$e(e)), c.svg && (je(e, ee(e, Fe, t, !1, "50% 50%") + "", c, e.getAttribute("data-svg-origin")), Se = a.useSVGTransformAttr || Xe), (s = We(e)) !== He) {
                        if (16 === s.length) {
                            var m, _, b, g, y, A = s[0],
                                w = s[1],
                                x = s[2],
                                k = s[3],
                                T = s[4],
                                E = s[5],
                                S = s[6],
                                P = s[7],
                                I = s[8],
                                M = s[9],
                                C = s[10],
                                O = s[12],
                                R = s[13],
                                D = s[14],
                                F = s[11],
                                B = Math.atan2(S, C);
                            c.zOrigin && (O = I * (D = -c.zOrigin) - s[12], R = M * D - s[13], D = C * D + c.zOrigin - s[14]), c.rotationX = B * N, B && (m = T * (g = Math.cos(-B)) + I * (y = Math.sin(-B)), _ = E * g + M * y, b = S * g + C * y, I = T * -y + I * g, M = E * -y + M * g, C = S * -y + C * g, F = P * -y + F * g, T = m, E = _, S = b), B = Math.atan2(-x, C), c.rotationY = B * N, B && (_ = w * (g = Math.cos(-B)) - M * (y = Math.sin(-B)), b = x * g - C * y, M = w * y + M * g, C = x * y + C * g, F = k * y + F * g, A = m = A * g - I * y, w = _, x = b), B = Math.atan2(w, A), c.rotation = B * N, B && (m = A * (g = Math.cos(B)) + w * (y = Math.sin(B)), _ = T * g + E * y, b = I * g + M * y, w = w * g - A * y, E = E * g - T * y, M = M * g - I * y, A = m, T = _, I = b), c.rotationX && Math.abs(c.rotationX) + Math.abs(c.rotation) > 359.9 && (c.rotationX = c.rotation = 0, c.rotationY = 180 - c.rotationY), B = Math.atan2(T, E), c.scaleX = (1e5 * Math.sqrt(A * A + w * w + x * x) + .5 | 0) / 1e5, c.scaleY = (1e5 * Math.sqrt(E * E + S * S) + .5 | 0) / 1e5, c.scaleZ = (1e5 * Math.sqrt(I * I + M * M + C * C) + .5 | 0) / 1e5, A /= c.scaleX, T /= c.scaleY, w /= c.scaleX, E /= c.scaleY, Math.abs(B) > 2e-5 ? (c.skewX = B * N, T = 0, "simple" !== c.skewType && (c.scaleY *= 1 / Math.cos(B))) : c.skewX = 0, c.perspective = F ? 1 / (F < 0 ? -F : F) : 0, c.x = O, c.y = R, c.z = D, c.svg && (c.x -= c.xOrigin - (c.xOrigin * A - c.yOrigin * T), c.y -= c.yOrigin - (c.yOrigin * w - c.xOrigin * E))
                        } else if (!Be || n || !s.length || c.x !== s[4] || c.y !== s[5] || !c.rotationX && !c.rotationY) {
                            var L = s.length >= 6,
                                U = L ? s[0] : 1,
                                V = s[1] || 0,
                                X = s[2] || 0,
                                j = L ? s[3] : 1;
                            c.x = s[4] || 0, c.y = s[5] || 0, u = Math.sqrt(U * U + V * V), h = Math.sqrt(j * j + X * X), l = U || V ? Math.atan2(V, U) * N : c.rotation || 0, f = X || j ? Math.atan2(X, j) * N + l : c.skewX || 0, c.scaleX = u, c.scaleY = h, c.rotation = l, c.skewX = f, Be && (c.rotationX = c.rotationY = c.z = 0, c.perspective = v, c.scaleZ = 1), c.svg && (c.x -= c.xOrigin - (c.xOrigin * U + c.yOrigin * X), c.y -= c.yOrigin - (c.xOrigin * V + c.yOrigin * j))
                        }
                        for (o in Math.abs(c.skewX) > 90 && Math.abs(c.skewX) < 270 && (d ? (c.scaleX *= -1, c.skewX += c.rotation <= 0 ? 180 : -180, c.rotation += c.rotation <= 0 ? 180 : -180) : (c.scaleY *= -1, c.skewX += c.skewX <= 0 ? 180 : -180)), c.zOrigin = p, c) c[o] < 2e-5 && c[o] > -2e-5 && (c[o] = 0)
                    }
                    return i && (e._gsTransform = c, c.svg && (Se && e.style[Re] ? r.h.delayedCall(.001, function() {
                        Qe(e.style, Re)
                    }) : !Se && e.getAttribute("transform") && r.h.delayedCall(.001, function() {
                        e.removeAttribute("transform")
                    }))), c
                },
                ze = function(e) {
                    var t, i, r = this.data,
                        n = -r.rotation * B,
                        a = n + r.skewX * B,
                        s = (Math.cos(n) * r.scaleX * 1e5 | 0) / 1e5,
                        o = (Math.sin(n) * r.scaleX * 1e5 | 0) / 1e5,
                        u = (Math.sin(a) * -r.scaleY * 1e5 | 0) / 1e5,
                        h = (Math.cos(a) * r.scaleY * 1e5 | 0) / 1e5,
                        l = this.t.style,
                        f = this.t.currentStyle;
                    if (f) {
                        i = o, o = -u, u = -i, t = f.filter, l.filter = "";
                        var c, d, v = this.t.offsetWidth,
                            m = this.t.offsetHeight,
                            _ = "absolute" !== f.position,
                            b = "progid:DXImageTransform.Microsoft.Matrix(M11=" + s + ", M12=" + o + ", M21=" + u + ", M22=" + h,
                            g = r.x + v * r.xPercent / 100,
                            y = r.y + m * r.yPercent / 100;
                        if (null != r.ox && (g += (c = (r.oxp ? v * r.ox * .01 : r.ox) - v / 2) - (c * s + (d = (r.oyp ? m * r.oy * .01 : r.oy) - m / 2) * o), y += d - (c * u + d * h)), b += _ ? ", Dx=" + ((c = v / 2) - (c * s + (d = m / 2) * o) + g) + ", Dy=" + (d - (c * u + d * h) + y) + ")" : ", sizingMethod='auto expand')", -1 !== t.indexOf("DXImageTransform.Microsoft.Matrix(") ? l.filter = t.replace(R, b) : l.filter = b + " " + t, 0 !== e && 1 !== e || 1 === s && 0 === o && 0 === u && 1 === h && (_ && -1 === b.indexOf("Dx=0, Dy=0") || x.test(t) && 100 !== parseFloat(RegExp.$1) || -1 === t.indexOf(t.indexOf("Alpha")) && l.removeAttribute("filter")), !_) {
                            var A, k, T, E = p < 8 ? 1 : -1;
                            for (c = r.ieOffsetX || 0, d = r.ieOffsetY || 0, r.ieOffsetX = Math.round((v - ((s < 0 ? -s : s) * v + (o < 0 ? -o : o) * m)) / 2 + g), r.ieOffsetY = Math.round((m - ((h < 0 ? -h : h) * m + (u < 0 ? -u : u) * v)) / 2 + y), xe = 0; xe < 4; xe++) T = (i = -1 !== (A = f[k = se[xe]]).indexOf("px") ? parseFloat(A) : te(this.t, k, parseFloat(A), A.replace(w, "")) || 0) !== r[k] ? xe < 2 ? -r.ieOffsetX : -r.ieOffsetY : xe < 2 ? c - r.ieOffsetX : d - r.ieOffsetY, l[k] = (r[k] = Math.round(i - T * (0 === xe || 2 === xe ? 1 : E))) + "px"
                        }
                    }
                },
                qe = $.set3DTransformRatio = $.setTransformRatio = function(e) {
                    var t, i, r, n, a, s, o, u, h, l, f, d, p, v, m, _, b, g, y, A, w = this.data,
                        x = this.t.style,
                        k = w.rotation,
                        T = w.rotationX,
                        E = w.rotationY,
                        S = w.scaleX,
                        P = w.scaleY,
                        I = w.scaleZ,
                        M = w.x,
                        C = w.y,
                        O = w.z,
                        R = w.svg,
                        D = w.perspective,
                        F = w.force3D,
                        N = w.skewY,
                        L = w.skewX;
                    if (N && (L += N, k += N), !((1 !== e && 0 !== e || "auto" !== F || this.tween._totalTime !== this.tween._totalDuration && this.tween._totalTime) && F || O || D || E || T || 1 !== I) || Se && R || !Be) k || L || R ? (k *= B, A = L * B, 1e5, i = Math.cos(k) * S, a = Math.sin(k) * S, r = Math.sin(k - A) * -P, s = Math.cos(k - A) * P, A && "simple" === w.skewType && (t = Math.tan(A - N * B), r *= t = Math.sqrt(1 + t * t), s *= t, N && (t = Math.tan(N * B), i *= t = Math.sqrt(1 + t * t), a *= t)), R && (M += w.xOrigin - (w.xOrigin * i + w.yOrigin * r) + w.xOffset, C += w.yOrigin - (w.xOrigin * a + w.yOrigin * s) + w.yOffset, Se && (w.xPercent || w.yPercent) && (m = this.t.getBBox(), M += .01 * w.xPercent * m.width, C += .01 * w.yPercent * m.height), M < (m = 1e-6) && M > -m && (M = 0), C < m && C > -m && (C = 0)), y = (1e5 * i | 0) / 1e5 + "," + (1e5 * a | 0) / 1e5 + "," + (1e5 * r | 0) / 1e5 + "," + (1e5 * s | 0) / 1e5 + "," + M + "," + C + ")", R && Se ? this.t.setAttribute("transform", "matrix(" + y) : x[Re] = (w.xPercent || w.yPercent ? "translate(" + w.xPercent + "%," + w.yPercent + "%) matrix(" : "matrix(") + y) : x[Re] = (w.xPercent || w.yPercent ? "translate(" + w.xPercent + "%," + w.yPercent + "%) matrix(" : "matrix(") + S + ",0,0," + P + "," + M + "," + C + ")";
                    else {
                        if (c && (S < (m = 1e-4) && S > -m && (S = I = 2e-5), P < m && P > -m && (P = I = 2e-5), !D || w.z || w.rotationX || w.rotationY || (D = 0)), k || L) k *= B, _ = i = Math.cos(k), b = a = Math.sin(k), L && (k -= L * B, _ = Math.cos(k), b = Math.sin(k), "simple" === w.skewType && (t = Math.tan((L - N) * B), _ *= t = Math.sqrt(1 + t * t), b *= t, w.skewY && (t = Math.tan(N * B), i *= t = Math.sqrt(1 + t * t), a *= t))), r = -b, s = _;
                        else {
                            if (!(E || T || 1 !== I || D || R)) return void(x[Re] = (w.xPercent || w.yPercent ? "translate(" + w.xPercent + "%," + w.yPercent + "%) translate3d(" : "translate3d(") + M + "px," + C + "px," + O + "px)" + (1 !== S || 1 !== P ? " scale(" + S + "," + P + ")" : ""));
                            i = s = 1, r = a = 0
                        }
                        l = 1, n = o = u = h = f = d = 0, p = D ? -1 / D : 0, v = w.zOrigin, m = 1e-6, ",", "0", (k = E * B) && (_ = Math.cos(k), u = -(b = Math.sin(k)), f = p * -b, n = i * b, o = a * b, l = _, p *= _, i *= _, a *= _), (k = T * B) && (t = r * (_ = Math.cos(k)) + n * (b = Math.sin(k)), g = s * _ + o * b, h = l * b, d = p * b, n = r * -b + n * _, o = s * -b + o * _, l *= _, p *= _, r = t, s = g), 1 !== I && (n *= I, o *= I, l *= I, p *= I), 1 !== P && (r *= P, s *= P, h *= P, d *= P), 1 !== S && (i *= S, a *= S, u *= S, f *= S), (v || R) && (v && (M += n * -v, C += o * -v, O += l * -v + v), R && (M += w.xOrigin - (w.xOrigin * i + w.yOrigin * r) + w.xOffset, C += w.yOrigin - (w.xOrigin * a + w.yOrigin * s) + w.yOffset), M < m && M > -m && (M = "0"), C < m && C > -m && (C = "0"), O < m && O > -m && (O = 0)), y = w.xPercent || w.yPercent ? "translate(" + w.xPercent + "%," + w.yPercent + "%) matrix3d(" : "matrix3d(", y += (i < m && i > -m ? "0" : i) + "," + (a < m && a > -m ? "0" : a) + "," + (u < m && u > -m ? "0" : u), y += "," + (f < m && f > -m ? "0" : f) + "," + (r < m && r > -m ? "0" : r) + "," + (s < m && s > -m ? "0" : s), T || E || 1 !== I ? (y += "," + (h < m && h > -m ? "0" : h) + "," + (d < m && d > -m ? "0" : d) + "," + (n < m && n > -m ? "0" : n), y += "," + (o < m && o > -m ? "0" : o) + "," + (l < m && l > -m ? "0" : l) + "," + (p < m && p > -m ? "0" : p) + ",") : y += ",0,0,0,0,1,0,", y += M + "," + C + "," + O + "," + (D ? 1 + -O / D : 1) + ")", x[Re] = y
                    }
                };
            (u = Ne.prototype).x = u.y = u.z = u.skewX = u.skewY = u.rotation = u.rotationX = u.rotationY = u.zOrigin = u.xPercent = u.yPercent = u.xOffset = u.yOffset = 0, u.scaleX = u.scaleY = u.scaleZ = 1, Te("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {
                parser: function(e, t, r, n, s, o, u) {
                    if (n._lastParsedTransform === u) return s;
                    n._lastParsedTransform = u;
                    var h = u.scale && "function" == typeof u.scale ? u.scale : 0;
                    h && (u.scale = h(m, e));
                    var l, f, c, d, p, _, b, g, y, A = e._gsTransform,
                        w = e.style,
                        x = Oe.length,
                        k = u,
                        T = {},
                        E = Ye(e, i, !0, k.parseTransform),
                        S = k.transform && ("function" == typeof k.transform ? k.transform(m, v) : k.transform);
                    if (E.skewType = k.skewType || E.skewType || a.defaultSkewType, n._transform = E, "rotationZ" in k && (k.rotation = k.rotationZ), S && "string" == typeof S && Re)(f = j.style)[Re] = S, f.display = "block", f.position = "absolute", -1 !== S.indexOf("%") && (f.width = ee(e, "width"), f.height = ee(e, "height")), V.body.appendChild(j), l = Ye(j, null, !1), "simple" === E.skewType && (l.scaleY *= Math.cos(l.skewX * B)), E.svg && (_ = E.xOrigin, b = E.yOrigin, l.x -= E.xOffset, l.y -= E.yOffset, (k.transformOrigin || k.svgOrigin) && (S = {}, je(e, ue(k.transformOrigin), S, k.svgOrigin, k.smoothOrigin, !0), _ = S.xOrigin, b = S.yOrigin, l.x -= S.xOffset - E.xOffset, l.y -= S.yOffset - E.yOffset), (_ || b) && (g = We(j, !0), l.x -= _ - (_ * g[0] + b * g[2]), l.y -= b - (_ * g[1] + b * g[3]))), V.body.removeChild(j), l.perspective || (l.perspective = E.perspective), null != k.xPercent && (l.xPercent = le(k.xPercent, E.xPercent)), null != k.yPercent && (l.yPercent = le(k.yPercent, E.yPercent));
                    else if ("object" == typeof k) {
                        if (l = {
                                scaleX: le(null != k.scaleX ? k.scaleX : k.scale, E.scaleX),
                                scaleY: le(null != k.scaleY ? k.scaleY : k.scale, E.scaleY),
                                scaleZ: le(k.scaleZ, E.scaleZ),
                                x: le(k.x, E.x),
                                y: le(k.y, E.y),
                                z: le(k.z, E.z),
                                xPercent: le(k.xPercent, E.xPercent),
                                yPercent: le(k.yPercent, E.yPercent),
                                perspective: le(k.transformPerspective, E.perspective)
                            }, null != (p = k.directionalRotation))
                            if ("object" == typeof p)
                                for (f in p) k[f] = p[f];
                            else k.rotation = p;
                        "string" == typeof k.x && -1 !== k.x.indexOf("%") && (l.x = 0, l.xPercent = le(k.x, E.xPercent)), "string" == typeof k.y && -1 !== k.y.indexOf("%") && (l.y = 0, l.yPercent = le(k.y, E.yPercent)), l.rotation = fe("rotation" in k ? k.rotation : "shortRotation" in k ? k.shortRotation + "_short" : E.rotation, E.rotation, "rotation", T), Be && (l.rotationX = fe("rotationX" in k ? k.rotationX : "shortRotationX" in k ? k.shortRotationX + "_short" : E.rotationX || 0, E.rotationX, "rotationX", T), l.rotationY = fe("rotationY" in k ? k.rotationY : "shortRotationY" in k ? k.shortRotationY + "_short" : E.rotationY || 0, E.rotationY, "rotationY", T)), l.skewX = fe(k.skewX, E.skewX), l.skewY = fe(k.skewY, E.skewY)
                    }
                    for (Be && null != k.force3D && (E.force3D = k.force3D, d = !0), (c = E.force3D || E.z || E.rotationX || E.rotationY || l.z || l.rotationX || l.rotationY || l.perspective) || null == k.scale || (l.scaleZ = 1); --x > -1;)((S = l[y = Oe[x]] - E[y]) > 1e-6 || S < -1e-6 || null != k[y] || null != L[y]) && (d = !0, s = new ye(E, y, E[y], S, s), y in T && (s.e = T[y]), s.xs0 = 0, s.plugin = o, n._overwriteProps.push(s.n));
                    return S = "function" == typeof k.transformOrigin ? k.transformOrigin(m, v) : k.transformOrigin, E.svg && (S || k.svgOrigin) && (_ = E.xOffset, b = E.yOffset, je(e, ue(S), l, k.svgOrigin, k.smoothOrigin), s = Ae(E, "xOrigin", (A ? E : l).xOrigin, l.xOrigin, s, "transformOrigin"), s = Ae(E, "yOrigin", (A ? E : l).yOrigin, l.yOrigin, s, "transformOrigin"), _ === E.xOffset && b === E.yOffset || (s = Ae(E, "xOffset", A ? _ : E.xOffset, E.xOffset, s, "transformOrigin"), s = Ae(E, "yOffset", A ? b : E.yOffset, E.yOffset, s, "transformOrigin")), S = "0px 0px"), (S || Be && c && E.zOrigin) && (Re ? (d = !0, y = Fe, S || (S = (S = (ee(e, y, i, !1, "50% 50%") + "").split(" "))[0] + " " + S[1] + " " + E.zOrigin + "px"), S += "", (s = new ye(w, y, 0, 0, s, -1, "transformOrigin")).b = w[y], s.plugin = o, Be ? (f = E.zOrigin, S = S.split(" "), E.zOrigin = (S.length > 2 ? parseFloat(S[2]) : f) || 0, s.xs0 = s.e = S[0] + " " + (S[1] || "50%") + " 0px", (s = new ye(E, "zOrigin", 0, 0, s, -1, s.n)).b = f, s.xs0 = s.e = E.zOrigin) : s.xs0 = s.e = S) : ue(S + "", E)), d && (n._transformType = E.svg && Se || !c && 3 !== this._transformType ? 2 : 3), h && (u.scale = h), s
                },
                allowFunc: !0,
                prefix: !0
            }), Te("boxShadow", {
                defaultValue: "0px 0px 0px 0px #999",
                prefix: !0,
                color: !0,
                multi: !0,
                keyword: "inset"
            }), Te("clipPath", {
                defaultValue: "inset(0%)",
                prefix: !0,
                multi: !0,
                formatter: _e("inset(0% 0% 0% 0%)", !1, !0)
            }), Te("borderRadius", {
                defaultValue: "0px",
                parser: function(e, r, n, a, s, o) {
                    r = this.format(r);
                    var u, h, l, f, c, d, p, v, m, _, b, g, y, A, w, x, k = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
                        T = e.style;
                    for (m = parseFloat(e.offsetWidth), _ = parseFloat(e.offsetHeight), u = r.split(" "), h = 0; h < k.length; h++) this.p.indexOf("border") && (k[h] = Q(k[h])), -1 !== (c = f = ee(e, k[h], i, !1, "0px")).indexOf(" ") && (f = c.split(" "), c = f[0], f = f[1]), d = l = u[h], p = parseFloat(c), g = c.substr((p + "").length), (y = "=" === d.charAt(1)) ? (v = parseInt(d.charAt(0) + "1", 10), d = d.substr(2), v *= parseFloat(d), b = d.substr((v + "").length - (v < 0 ? 1 : 0)) || "") : (v = parseFloat(d), b = d.substr((v + "").length)), "" === b && (b = t[n] || g), b !== g && (A = te(e, "borderLeft", p, g), w = te(e, "borderTop", p, g), "%" === b ? (c = A / m * 100 + "%", f = w / _ * 100 + "%") : "em" === b ? (c = A / (x = te(e, "borderLeft", 1, "em")) + "em", f = w / x + "em") : (c = A + "px", f = w + "px"), y && (d = parseFloat(c) + v + b, l = parseFloat(f) + v + b)), s = we(T, k[h], c + " " + f, d + " " + l, !1, "0px", s);
                    return s
                },
                prefix: !0,
                formatter: _e("0px 0px 0px 0px", !1, !0)
            }), Te("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius", {
                defaultValue: "0px",
                parser: function(e, t, r, n, a, s) {
                    return we(e.style, r, this.format(ee(e, r, i, !1, "0px 0px")), this.format(t), !1, "0px", a)
                },
                prefix: !0,
                formatter: _e("0px 0px", !1, !0)
            }), Te("backgroundPosition", {
                defaultValue: "0 0",
                parser: function(e, t, r, n, a, s) {
                    var o, u, h, l, f, c, d = "background-position",
                        v = i || K(e),
                        m = this.format((v ? p ? v.getPropertyValue(d + "-x") + " " + v.getPropertyValue(d + "-y") : v.getPropertyValue(d) : e.currentStyle.backgroundPositionX + " " + e.currentStyle.backgroundPositionY) || "0 0"),
                        _ = this.format(t);
                    if (-1 !== m.indexOf("%") != (-1 !== _.indexOf("%")) && _.split(",").length < 2 && (c = ee(e, "backgroundImage").replace(I, "")) && "none" !== c) {
                        for (o = m.split(" "), u = _.split(" "), G.setAttribute("src", c), h = 2; --h > -1;)(l = -1 !== (m = o[h]).indexOf("%")) !== (-1 !== u[h].indexOf("%")) && (f = 0 === h ? e.offsetWidth - G.width : e.offsetHeight - G.height, o[h] = l ? parseFloat(m) / 100 * f + "px" : parseFloat(m) / f * 100 + "%");
                        m = o.join(" ")
                    }
                    return this.parseComplex(e.style, m, _, a, s)
                },
                formatter: ue
            }), Te("backgroundSize", {
                defaultValue: "0 0",
                formatter: function(e) {
                    return "co" === (e += "").substr(0, 2) ? e : ue(-1 === e.indexOf(" ") ? e + " " + e : e)
                }
            }), Te("perspective", {
                defaultValue: "0px",
                prefix: !0
            }), Te("perspectiveOrigin", {
                defaultValue: "50% 50%",
                prefix: !0
            }), Te("transformStyle", {
                prefix: !0
            }), Te("backfaceVisibility", {
                prefix: !0
            }), Te("userSelect", {
                prefix: !0
            }), Te("margin", {
                parser: be("marginTop,marginRight,marginBottom,marginLeft")
            }), Te("padding", {
                parser: be("paddingTop,paddingRight,paddingBottom,paddingLeft")
            }), Te("clip", {
                defaultValue: "rect(0px,0px,0px,0px)",
                parser: function(e, t, r, n, a, s) {
                    var o, u, h;
                    return p < 9 ? (u = e.currentStyle, h = p < 8 ? " " : ",", o = "rect(" + u.clipTop + h + u.clipRight + h + u.clipBottom + h + u.clipLeft + ")", t = this.format(t).split(",").join(h)) : (o = this.format(ee(e, this.p, i, !1, this.dflt)), t = this.format(t)), this.parseComplex(e.style, o, t, a, s)
                }
            }), Te("textShadow", {
                defaultValue: "0px 0px 0px #999",
                color: !0,
                multi: !0
            }), Te("autoRound,strictUnits", {
                parser: function(e, t, i, r, n) {
                    return n
                }
            }), Te("border", {
                defaultValue: "0px solid #000",
                parser: function(e, t, r, n, a, s) {
                    var o = ee(e, "borderTopWidth", i, !1, "0px"),
                        u = this.format(t).split(" "),
                        h = u[0].replace(w, "");
                    return "px" !== h && (o = parseFloat(o) / te(e, "borderTopWidth", 1, h) + h), this.parseComplex(e.style, this.format(o + " " + ee(e, "borderTopStyle", i, !1, "solid") + " " + ee(e, "borderTopColor", i, !1, "#000")), u.join(" "), a, s)
                },
                color: !0,
                formatter: function(e) {
                    var t = e.split(" ");
                    return t[0] + " " + (t[1] || "solid") + " " + (e.match(me) || ["#000"])[0]
                }
            }), Te("borderWidth", {
                parser: be("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
            }), Te("float,cssFloat,styleFloat", {
                parser: function(e, t, i, r, n, a) {
                    var s = e.style,
                        o = "cssFloat" in s ? "cssFloat" : "styleFloat";
                    return new ye(s, o, 0, 0, n, -1, i, !1, 0, s[o], t)
                }
            });
            var Je = function(e) {
                var t, i = this.t,
                    r = i.filter || ee(this.data, "filter") || "",
                    n = this.s + this.c * e | 0;
                100 === n && (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(") && -1 === r.indexOf("oader(") ? (i.removeAttribute("filter"), t = !ee(this.data, "filter")) : (i.filter = r.replace(T, ""), t = !0)), t || (this.xn1 && (i.filter = r = r || "alpha(opacity=" + n + ")"), -1 === r.indexOf("pacity") ? 0 === n && this.xn1 || (i.filter = r + " alpha(opacity=" + n + ")") : i.filter = r.replace(x, "opacity=" + n))
            };
            Te("opacity,alpha,autoAlpha", {
                defaultValue: "1",
                parser: function(e, t, r, n, a, s) {
                    var o = parseFloat(ee(e, "opacity", i, !1, "1")),
                        u = e.style,
                        h = "autoAlpha" === r;
                    return "string" == typeof t && "=" === t.charAt(1) && (t = ("-" === t.charAt(0) ? -1 : 1) * parseFloat(t.substr(2)) + o), h && 1 === o && "hidden" === ee(e, "visibility", i) && 0 !== t && (o = 0), W ? a = new ye(u, "opacity", o, t - o, a) : ((a = new ye(u, "opacity", 100 * o, 100 * (t - o), a)).xn1 = h ? 1 : 0, u.zoom = 1, a.type = 2, a.b = "alpha(opacity=" + a.s + ")", a.e = "alpha(opacity=" + (a.s + a.c) + ")", a.data = e, a.plugin = s, a.setRatio = Je), h && ((a = new ye(u, "visibility", 0, 0, a, -1, null, !1, 0, 0 !== o ? "inherit" : "hidden", 0 === t ? "hidden" : "inherit")).xs0 = "inherit", n._overwriteProps.push(a.n), n._overwriteProps.push(r)), a
                }
            });
            var Qe = function(e, t) {
                    t && (e.removeProperty ? ("ms" !== t.substr(0, 2) && "webkit" !== t.substr(0, 6) || (t = "-" + t), e.removeProperty(t.replace(S, "-$1").toLowerCase())) : e.removeAttribute(t))
                },
                Ze = function(e) {
                    if (this.t._gsClassPT = this, 1 === e || 0 === e) {
                        this.t.setAttribute("class", 0 === e ? this.b : this.e);
                        for (var t = this.data, i = this.t.style; t;) t.v ? i[t.p] = t.v : Qe(i, t.p), t = t._next;
                        1 === e && this.t._gsClassPT === this && (this.t._gsClassPT = null)
                    } else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
                };
            Te("className", {
                parser: function(t, r, n, a, s, o, u) {
                    var h, l, f, c, d, p = t.getAttribute("class") || "",
                        v = t.style.cssText;
                    if ((s = a._classNamePT = new ye(t, n, 0, 0, s, 2)).setRatio = Ze, s.pr = -11, e = !0, s.b = p, l = re(t, i), f = t._gsClassPT) {
                        for (c = {}, d = f.data; d;) c[d.p] = 1, d = d._next;
                        f.setRatio(1)
                    }
                    return t._gsClassPT = s, s.e = "=" !== r.charAt(1) ? r : p.replace(new RegExp("(?:\\s|^)" + r.substr(2) + "(?![\\w-])"), "") + ("+" === r.charAt(0) ? " " + r.substr(2) : ""), t.setAttribute("class", s.e), h = ne(t, l, re(t), u, c), t.setAttribute("class", p), s.data = h.firstMPT, t.style.cssText !== v && (t.style.cssText = v), s = s.xfirst = a.parse(t, h.difs, s, o)
                }
            });
            var Ke = function(e) {
                if ((1 === e || 0 === e) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
                    var t, i, r, n, a, s = this.t.style,
                        u = o.transform.parse;
                    if ("all" === this.e) s.cssText = "", n = !0;
                    else
                        for (r = (t = this.e.split(" ").join("").split(",")).length; --r > -1;) i = t[r], o[i] && (o[i].parse === u ? n = !0 : i = "transformOrigin" === i ? Fe : o[i].p), Qe(s, i);
                    n && (Qe(s, Re), (a = this.t._gsTransform) && (a.svg && (this.t.removeAttribute("data-svg-origin"), this.t.removeAttribute("transform")), delete this.t._gsTransform))
                }
            };
            for (Te("clearProps", {
                    parser: function(t, i, r, n, a) {
                        return (a = new ye(t, r, 0, 0, a, 2)).setRatio = Ke, a.e = i, a.pr = -10, a.data = n._tween, e = !0, a
                    }
                }), u = "bezier,throwProps,physicsProps,physics2D".split(","), xe = u.length; xe--;) Ee(u[xe]);
            (u = a.prototype)._firstPT = u._lastParsedTransform = u._transform = null, u._onInitTween = function(r, s, u, c) {
                if (!r.nodeType) return !1;
                this._target = v = r, this._tween = u, this._vars = s, m = c, h = s.autoRound, e = !1, t = s.suffixMap || a.suffixMap, i = K(r), n = this._overwriteProps;
                var p, _, b, g, y, A, w, x, T, E = r.style;
                if (l && "" === E.zIndex && ("auto" !== (p = ee(r, "zIndex", i)) && "" !== p || this._addLazySet(E, "zIndex", 0)), "string" == typeof s && (g = E.cssText, p = re(r, i), E.cssText = g + ";" + s, p = ne(r, p, re(r)).difs, !W && k.test(s) && (p.opacity = parseFloat(RegExp.$1)), s = p, E.cssText = g), s.className ? this._firstPT = _ = o.className.parse(r, s.className, "className", this, null, null, s) : this._firstPT = _ = this.parse(r, s, null), this._transformType) {
                    for (T = 3 === this._transformType, Re ? f && (l = !0, "" === E.zIndex && ("auto" !== (w = ee(r, "zIndex", i)) && "" !== w || this._addLazySet(E, "zIndex", 0)), d && this._addLazySet(E, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (T ? "visible" : "hidden"))) : E.zoom = 1, b = _; b && b._next;) b = b._next;
                    x = new ye(r, "transform", 0, 0, null, 2), this._linkCSSP(x, null, b), x.setRatio = Re ? qe : ze, x.data = this._transform || Ye(r, i, !0), x.tween = u, x.pr = -1, n.pop()
                }
                if (e) {
                    for (; _;) {
                        for (A = _._next, b = g; b && b.pr > _.pr;) b = b._next;
                        (_._prev = b ? b._prev : y) ? _._prev._next = _: g = _, (_._next = b) ? b._prev = _ : y = _, _ = A
                    }
                    this._firstPT = g
                }
                return !0
            }, u.parse = function(e, r, n, a) {
                var s, u, l, f, c, d, p, _, b, g, y = e.style;
                for (s in r) {
                    if (d = r[s], u = o[s], "function" != typeof d || u && u.allowFunc || (d = d(m, v)), u) n = u.parse(e, d, s, this, n, a, r);
                    else {
                        if ("--" === s.substr(0, 2)) {
                            this._tween._propLookup[s] = this._addTween.call(this._tween, e.style, "setProperty", K(e).getPropertyValue(s) + "", d + "", s, !1, s);
                            continue
                        }
                        c = ee(e, s, i) + "", b = "string" == typeof d, "color" === s || "fill" === s || "stroke" === s || -1 !== s.indexOf("Color") || b && E.test(d) ? (b || (d = ((d = pe(d)).length > 3 ? "rgba(" : "rgb(") + d.join(",") + ")"), n = we(y, s, c, d, !0, "transparent", n, 0, a)) : b && F.test(d) ? n = we(y, s, c, d, !0, null, n, 0, a) : (p = (l = parseFloat(c)) || 0 === l ? c.substr((l + "").length) : "", "" !== c && "auto" !== c || ("width" === s || "height" === s ? (l = oe(e, s, i), p = "px") : "left" === s || "top" === s ? (l = ie(e, s, i), p = "px") : (l = "opacity" !== s ? 0 : 1, p = "")), (g = b && "=" === d.charAt(1)) ? (f = parseInt(d.charAt(0) + "1", 10), d = d.substr(2), f *= parseFloat(d), _ = d.replace(w, "")) : (f = parseFloat(d), _ = b ? d.replace(w, "") : ""), "" === _ && (_ = s in t ? t[s] : p), d = f || 0 === f ? (g ? f + l : f) + _ : r[s], p !== _ && ("" === _ && "lineHeight" !== s || (f || 0 === f) && l && (l = te(e, s, l, p), "%" === _ ? (l /= te(e, s, 100, "%") / 100, !0 !== r.strictUnits && (c = l + "%")) : "em" === _ || "rem" === _ || "vw" === _ || "vh" === _ ? l /= te(e, s, 1, _) : "px" !== _ && (f = te(e, s, f, _), _ = "px"), g && (f || 0 === f) && (d = f + l + _))), g && (f += l), !l && 0 !== l || !f && 0 !== f ? void 0 !== y[s] && (d || d + "" != "NaN" && null != d) ? (n = new ye(y, s, f || l || 0, 0, n, -1, s, !1, 0, c, d)).xs0 = "none" !== d || "display" !== s && -1 === s.indexOf("Style") ? d : c : z(r[s]) : (n = new ye(y, s, l, f - l, n, 0, s, !1 !== h && ("px" === _ || "zIndex" === s), 0, c, d)).xs0 = _)
                    }
                    a && n && !n.plugin && (n.plugin = a)
                }
                return n
            }, u.setRatio = function(e) {
                var t, i, r, n = this._firstPT;
                if (1 !== e || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
                    if (e || this._tween._time !== this._tween._duration && 0 !== this._tween._time || -1e-6 === this._tween._rawPrevTime)
                        for (; n;) {
                            if (t = n.c * e + n.s, n.r ? t = n.r(t) : t < 1e-6 && t > -1e-6 && (t = 0), n.type)
                                if (1 === n.type)
                                    if (2 === (r = n.l)) n.t[n.p] = n.xs0 + t + n.xs1 + n.xn1 + n.xs2;
                                    else if (3 === r) n.t[n.p] = n.xs0 + t + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3;
                            else if (4 === r) n.t[n.p] = n.xs0 + t + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3 + n.xn3 + n.xs4;
                            else if (5 === r) n.t[n.p] = n.xs0 + t + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3 + n.xn3 + n.xs4 + n.xn4 + n.xs5;
                            else {
                                for (i = n.xs0 + t + n.xs1, r = 1; r < n.l; r++) i += n["xn" + r] + n["xs" + (r + 1)];
                                n.t[n.p] = i
                            } else -1 === n.type ? n.t[n.p] = n.xs0 : n.setRatio && n.setRatio(e);
                            else n.t[n.p] = t + n.xs0;
                            n = n._next
                        } else
                            for (; n;) 2 !== n.type ? n.t[n.p] = n.b : n.setRatio(e), n = n._next;
                    else
                        for (; n;) {
                            if (2 !== n.type)
                                if (n.r && -1 !== n.type)
                                    if (t = n.r(n.s + n.c), n.type) {
                                        if (1 === n.type) {
                                            for (r = n.l, i = n.xs0 + t + n.xs1, r = 1; r < n.l; r++) i += n["xn" + r] + n["xs" + (r + 1)];
                                            n.t[n.p] = i
                                        }
                                    } else n.t[n.p] = t + n.xs0;
                            else n.t[n.p] = n.e;
                            else n.setRatio(e);
                            n = n._next
                        }
            }, u._enableTransforms = function(e) {
                this._transform = this._transform || Ye(this._target, i, !0), this._transformType = this._transform.svg && Se || !e && 3 !== this._transformType ? 2 : 3
            };
            var et = function(e) {
                this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0)
            };
            u._addLazySet = function(e, t, i) {
                var r = this._firstPT = new ye(e, t, 0, 0, this._firstPT, 2);
                r.e = i, r.setRatio = et, r.data = this
            }, u._linkCSSP = function(e, t, i, r) {
                return e && (t && (t._prev = e), e._next && (e._next._prev = e._prev), e._prev ? e._prev._next = e._next : this._firstPT === e && (this._firstPT = e._next, r = !0), i ? i._next = e : r || null !== this._firstPT || (this._firstPT = e), e._next = t, e._prev = i), e
            }, u._mod = function(e) {
                for (var t = this._firstPT; t;) "function" == typeof e[t.p] && (t.r = e[t.p]), t = t._next
            }, u._kill = function(e) {
                var t, i, n, a = e;
                if (e.autoAlpha || e.alpha) {
                    for (i in a = {}, e) a[i] = e[i];
                    a.opacity = 1, a.autoAlpha && (a.visibility = 1)
                }
                for (e.className && (t = this._classNamePT) && ((n = t.xfirst) && n._prev ? this._linkCSSP(n._prev, t._next, n._prev._prev) : n === this._firstPT && (this._firstPT = t._next), t._next && this._linkCSSP(t._next, t._next._next, n._prev), this._classNamePT = null), t = this._firstPT; t;) t.plugin && t.plugin !== i && t.plugin._kill && (t.plugin._kill(e), i = t.plugin), t = t._next;
                return r.f.prototype._kill.call(this, a)
            };
            var tt = function(e, t, i) {
                var r, n, a, s;
                if (e.slice)
                    for (n = e.length; --n > -1;) tt(e[n], t, i);
                else
                    for (n = (r = e.childNodes).length; --n > -1;) s = (a = r[n]).type, a.style && (t.push(re(a)), i && i.push(a)), 1 !== s && 9 !== s && 11 !== s || !a.childNodes.length || tt(a, t, i)
            };
            return a.cascadeTo = function(e, t, i) {
                var n, a, s, o, u = r.h.to(e, t, i),
                    h = [u],
                    l = [],
                    f = [],
                    c = [],
                    d = r.h._internals.reservedProps;
                for (e = u._targets || u.target, tt(e, l, c), u.render(t, !0, !0), tt(e, f), u.render(0, !0, !0), u._enabled(!0), n = c.length; --n > -1;)
                    if ((a = ne(c[n], l[n], f[n])).firstMPT) {
                        for (s in a = a.difs, i) d[s] && (a[s] = i[s]);
                        for (s in o = {}, a) o[s] = l[n][s];
                        h.push(r.h.fromTo(c[n], t, o, a))
                    }
                return h
            }, r.f.activate([a]), a
        }, !0);
        var a = r.i.CSSPlugin,
            s = r.g._gsDefine.plugin({
                propName: "attr",
                API: 2,
                version: "0.6.1",
                init: function(e, t, i, r) {
                    var n, a;
                    if ("function" != typeof e.setAttribute) return !1;
                    for (n in t) "function" == typeof(a = t[n]) && (a = a(r, e)), this._addTween(e, "setAttribute", e.getAttribute(n) + "", a + "", n, !1, n), this._overwriteProps.push(n);
                    return !0
                }
            }),
            o = r.g._gsDefine.plugin({
                propName: "roundProps",
                version: "1.7.0",
                priority: -1,
                API: 2,
                init: function(e, t, i) {
                    return this._tween = i, !0
                }
            }),
            u = function(e) {
                var t = e < 1 ? Math.pow(10, (e + "").length - 2) : 1;
                return function(i) {
                    return (Math.round(i / e) * e * t | 0) / t
                }
            },
            h = function(e, t) {
                for (; e;) e.f || e.blob || (e.m = t || Math.round), e = e._next
            },
            l = o.prototype;
        /*!
         * VERSION: 0.6.1
         * DATE: 2018-08-27
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         */
        l._onInitAllProps = function() {
            var e, t, i, r, n = this._tween,
                a = n.vars.roundProps,
                s = {},
                o = n._propLookup.roundProps;
            if ("object" != typeof a || a.push)
                for ("string" == typeof a && (a = a.split(",")), i = a.length; --i > -1;) s[a[i]] = Math.round;
            else
                for (r in a) s[r] = u(a[r]);
            for (r in s)
                for (e = n._firstPT; e;) t = e._next, e.pg ? e.t._mod(s) : e.n === r && (2 === e.f && e.t ? h(e.t._firstPT, s[r]) : (this._add(e.t, r, e.s, e.c, s[r]), t && (t._prev = e._prev), e._prev ? e._prev._next = t : n._firstPT === e && (n._firstPT = t), e._next = e._prev = null, n._propLookup[r] = o)), e = t;
            return !1
        }, l._add = function(e, t, i, r, n) {
            this._addTween(e, t, i, i + r, t, n || Math.round), this._overwriteProps.push(t)
        };
        /*!
         * VERSION: 0.3.1
         * DATE: 2018-08-27
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         **/
        var f = r.g._gsDefine.plugin({
            propName: "directionalRotation",
            version: "0.3.1",
            API: 2,
            init: function(e, t, i, r) {
                "object" != typeof t && (t = {
                    rotation: t
                }), this.finals = {};
                var n, a, s, o, u, h, l = !0 === t.useRadians ? 2 * Math.PI : 360;
                for (n in t) "useRadians" !== n && ("function" == typeof(o = t[n]) && (o = o(r, e)), a = (h = (o + "").split("_"))[0], s = parseFloat("function" != typeof e[n] ? e[n] : e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)]()), u = (o = this.finals[n] = "string" == typeof a && "=" === a.charAt(1) ? s + parseInt(a.charAt(0) + "1", 10) * Number(a.substr(2)) : Number(a) || 0) - s, h.length && (-1 !== (a = h.join("_")).indexOf("short") && (u %= l) !== u % (l / 2) && (u = u < 0 ? u + l : u - l), -1 !== a.indexOf("_cw") && u < 0 ? u = (u + 9999999999 * l) % l - (u / l | 0) * l : -1 !== a.indexOf("ccw") && u > 0 && (u = (u - 9999999999 * l) % l - (u / l | 0) * l)), (u > 1e-6 || u < -1e-6) && (this._addTween(e, n, s, s + u, n), this._overwriteProps.push(n)));
                return !0
            },
            set: function(e) {
                var t;
                if (1 !== e) this._super.setRatio.call(this, e);
                else
                    for (t = this._firstPT; t;) t.f ? t.t[t.p](this.finals[t.p]) : t.t[t.p] = this.finals[t.p], t = t._next
            }
        });
        f._autoCSS = !0,
            /*!
             * VERSION: 2.1.3
             * DATE: 2019-05-17
             * UPDATES AND DOCS AT: http://greensock.com
             *
             * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
             * This work is subject to the terms at http://greensock.com/standard-license or for
             * Club GreenSock members, the software agreement that was issued with your membership.
             * 
             * @author: Jack Doyle, jack@greensock.com
             */
            r.g._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function() {
                var e = function(e) {
                        r.e.call(this, e);
                        var t, i, n = this.vars;
                        for (i in this._labels = {}, this.autoRemoveChildren = !!n.autoRemoveChildren, this.smoothChildTiming = !!n.smoothChildTiming, this._sortChildren = !0, this._onUpdate = n.onUpdate, n) t = n[i], a(t) && -1 !== t.join("").indexOf("{self}") && (n[i] = this._swapSelfInParams(t));
                        a(n.tweens) && this.add(n.tweens, 0, n.align, n.stagger)
                    },
                    t = r.h._internals,
                    i = e._internals = {},
                    n = t.isSelector,
                    a = t.isArray,
                    s = t.lazyTweens,
                    o = t.lazyRender,
                    u = r.g._gsDefine.globals,
                    h = function(e) {
                        var t, i = {};
                        for (t in e) i[t] = e[t];
                        return i
                    },
                    l = function(e, t, i) {
                        var r, n, a = e.cycle;
                        for (r in a) n = a[r], e[r] = "function" == typeof n ? n(i, t[i], t) : n[i % n.length];
                        delete e.cycle
                    },
                    f = i.pauseCallback = function() {},
                    c = function(e, t, i, r) {
                        var n = "immediateRender";
                        return n in t || (t[n] = !(i && !1 === i[n] || r)), t
                    },
                    d = function(e) {
                        if ("function" == typeof e) return e;
                        var t = "object" == typeof e ? e : {
                                each: e
                            },
                            i = t.ease,
                            r = t.from || 0,
                            n = t.base || 0,
                            a = {},
                            s = isNaN(r),
                            o = t.axis,
                            u = {
                                center: .5,
                                end: 1
                            }[r] || 0;
                        return function(e, h, l) {
                            var f, c, d, p, v, m, _, b, g, y = (l || t).length,
                                A = a[y];
                            if (!A) {
                                if (!(g = "auto" === t.grid ? 0 : (t.grid || [1 / 0])[0])) {
                                    for (_ = -1 / 0; _ < (_ = l[g++].getBoundingClientRect().left) && g < y;);
                                    g--
                                }
                                for (A = a[y] = [], f = s ? Math.min(g, y) * u - .5 : r % g, c = s ? y * u / g - .5 : r / g | 0, _ = 0, b = 1 / 0, m = 0; m < y; m++) d = m % g - f, p = c - (m / g | 0), A[m] = v = o ? Math.abs("y" === o ? p : d) : Math.sqrt(d * d + p * p), v > _ && (_ = v), v < b && (b = v);
                                A.max = _ - b, A.min = b, A.v = y = t.amount || t.each * (g > y ? y - 1 : o ? "y" === o ? y / g : g : Math.max(g, y / g)) || 0, A.b = y < 0 ? n - y : n
                            }
                            return y = (A[e] - A.min) / A.max, A.b + (i ? i.getRatio(y) : y) * A.v
                        }
                    },
                    p = e.prototype = new r.e;
                return e.version = "2.1.3", e.distribute = d, p.constructor = e, p.kill()._gc = p._forcingPlayhead = p._hasPause = !1, p.to = function(e, t, i, n) {
                    var a = i.repeat && u.TweenMax || r.h;
                    return t ? this.add(new a(e, t, i), n) : this.set(e, i, n)
                }, p.from = function(e, t, i, n) {
                    return this.add((i.repeat && u.TweenMax || r.h).from(e, t, c(0, i)), n)
                }, p.fromTo = function(e, t, i, n, a) {
                    var s = n.repeat && u.TweenMax || r.h;
                    return n = c(0, n, i), t ? this.add(s.fromTo(e, t, i, n), a) : this.set(e, n, a)
                }, p.staggerTo = function(t, i, a, s, o, u, f, c) {
                    var p, v, m = new e({
                            onComplete: u,
                            onCompleteParams: f,
                            callbackScope: c,
                            smoothChildTiming: this.smoothChildTiming
                        }),
                        _ = d(a.stagger || s),
                        b = a.startAt,
                        g = a.cycle;
                    for ("string" == typeof t && (t = r.h.selector(t) || t), n(t = t || []) && (t = function(e) {
                            var t, i = [],
                                r = e.length;
                            for (t = 0; t !== r; i.push(e[t++]));
                            return i
                        }(t)), v = 0; v < t.length; v++) p = h(a), b && (p.startAt = h(b), b.cycle && l(p.startAt, t, v)), g && (l(p, t, v), null != p.duration && (i = p.duration, delete p.duration)), m.to(t[v], i, p, _(v, t[v], t));
                    return this.add(m, o)
                }, p.staggerFrom = function(e, t, i, r, n, a, s, o) {
                    return i.runBackwards = !0, this.staggerTo(e, t, c(0, i), r, n, a, s, o)
                }, p.staggerFromTo = function(e, t, i, r, n, a, s, o, u) {
                    return r.startAt = i, this.staggerTo(e, t, c(0, r, i), n, a, s, o, u)
                }, p.call = function(e, t, i, n) {
                    return this.add(r.h.delayedCall(0, e, t, i), n)
                }, p.set = function(e, t, i) {
                    return this.add(new r.h(e, 0, c(0, t, null, !0)), i)
                }, e.exportRoot = function(t, i) {
                    null == (t = t || {}).smoothChildTiming && (t.smoothChildTiming = !0);
                    var n, a, s, o, u = new e(t),
                        h = u._timeline;
                    for (null == i && (i = !0), h._remove(u, !0), u._startTime = 0, u._rawPrevTime = u._time = u._totalTime = h._time, s = h._first; s;) o = s._next, i && s instanceof r.h && s.target === s.vars.onComplete || ((a = s._startTime - s._delay) < 0 && (n = 1), u.add(s, a)), s = o;
                    return h.add(u, 0), n && u.totalDuration(), u
                }, p.add = function(t, i, n, s) {
                    var o, u, h, l, f, c;
                    if ("number" != typeof i && (i = this._parseTimeOrLabel(i, 0, !0, t)), !(t instanceof r.a)) {
                        if (t instanceof Array || t && t.push && a(t)) {
                            for (n = n || "normal", s = s || 0, o = i, u = t.length, h = 0; h < u; h++) a(l = t[h]) && (l = new e({
                                tweens: l
                            })), this.add(l, o), "string" != typeof l && "function" != typeof l && ("sequence" === n ? o = l._startTime + l.totalDuration() / l._timeScale : "start" === n && (l._startTime -= l.delay())), o += s;
                            return this._uncache(!0)
                        }
                        if ("string" == typeof t) return this.addLabel(t, i);
                        if ("function" != typeof t) throw "Cannot add " + t + " into the timeline; it is not a tween, timeline, function, or string.";
                        t = r.h.delayedCall(0, t)
                    }
                    if (r.e.prototype.add.call(this, t, i), (t._time || !t._duration && t._initted) && (o = (this.rawTime() - t._startTime) * t._timeScale, (!t._duration || Math.abs(Math.max(0, Math.min(t.totalDuration(), o))) - t._totalTime > 1e-5) && t.render(o, !1, !1)), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                        for (c = (f = this).rawTime() > t._startTime; f._timeline;) c && f._timeline.smoothChildTiming ? f.totalTime(f._totalTime, !0) : f._gc && f._enabled(!0, !1), f = f._timeline;
                    return this
                }, p.remove = function(e) {
                    if (e instanceof r.a) {
                        this._remove(e, !1);
                        var t = e._timeline = e.vars.useFrames ? r.a._rootFramesTimeline : r.a._rootTimeline;
                        return e._startTime = (e._paused ? e._pauseTime : t._time) - (e._reversed ? e.totalDuration() - e._totalTime : e._totalTime) / e._timeScale, this
                    }
                    if (e instanceof Array || e && e.push && a(e)) {
                        for (var i = e.length; --i > -1;) this.remove(e[i]);
                        return this
                    }
                    return "string" == typeof e ? this.removeLabel(e) : this.kill(null, e)
                }, p._remove = function(e, t) {
                    return r.e.prototype._remove.call(this, e, t), this._last ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
                }, p.append = function(e, t) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
                }, p.insert = p.insertMultiple = function(e, t, i, r) {
                    return this.add(e, t || 0, i, r)
                }, p.appendMultiple = function(e, t, i, r) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e), i, r)
                }, p.addLabel = function(e, t) {
                    return this._labels[e] = this._parseTimeOrLabel(t), this
                }, p.addPause = function(e, t, i, n) {
                    var a = r.h.delayedCall(0, f, i, n || this);
                    return a.vars.onComplete = a.vars.onReverseComplete = t, a.data = "isPause", this._hasPause = !0, this.add(a, e)
                }, p.removeLabel = function(e) {
                    return delete this._labels[e], this
                }, p.getLabelTime = function(e) {
                    return null != this._labels[e] ? this._labels[e] : -1
                }, p._parseTimeOrLabel = function(e, t, i, n) {
                    var s, o;
                    if (n instanceof r.a && n.timeline === this) this.remove(n);
                    else if (n && (n instanceof Array || n.push && a(n)))
                        for (o = n.length; --o > -1;) n[o] instanceof r.a && n[o].timeline === this && this.remove(n[o]);
                    if (s = "number" != typeof e || t ? this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration : 0, "string" == typeof t) return this._parseTimeOrLabel(t, i && "number" == typeof e && null == this._labels[t] ? e - s : 0, i);
                    if (t = t || 0, "string" != typeof e || !isNaN(e) && null == this._labels[e]) null == e && (e = s);
                    else {
                        if (-1 === (o = e.indexOf("="))) return null == this._labels[e] ? i ? this._labels[e] = s + t : t : this._labels[e] + t;
                        t = parseInt(e.charAt(o - 1) + "1", 10) * Number(e.substr(o + 1)), e = o > 1 ? this._parseTimeOrLabel(e.substr(0, o - 1), 0, i) : s
                    }
                    return Number(e) + t
                }, p.seek = function(e, t) {
                    return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), !1 !== t)
                }, p.stop = function() {
                    return this.paused(!0)
                }, p.gotoAndPlay = function(e, t) {
                    return this.play(e, t)
                }, p.gotoAndStop = function(e, t) {
                    return this.pause(e, t)
                }, p.render = function(e, t, i) {
                    this._gc && this._enabled(!0, !1);
                    var r, n, a, u, h, l, f, c, d = this._time,
                        p = this._dirty ? this.totalDuration() : this._totalDuration,
                        v = this._startTime,
                        m = this._timeScale,
                        _ = this._paused;
                    if (d !== this._time && (e += this._time - d), this._hasPause && !this._forcingPlayhead && !t) {
                        if (e > d)
                            for (r = this._first; r && r._startTime <= e && !l;) r._duration || "isPause" !== r.data || r.ratio || 0 === r._startTime && 0 === this._rawPrevTime || (l = r), r = r._next;
                        else
                            for (r = this._last; r && r._startTime >= e && !l;) r._duration || "isPause" === r.data && r._rawPrevTime > 0 && (l = r), r = r._prev;
                        l && (this._time = this._totalTime = e = l._startTime, c = this._startTime + (this._reversed ? this._duration - e : e) / this._timeScale)
                    }
                    if (e >= p - 1e-8 && e >= 0) this._totalTime = this._time = p, this._reversed || this._hasPausedChild() || (n = !0, u = "onComplete", h = !!this._timeline.autoRemoveChildren, 0 === this._duration && (e <= 0 && e >= -1e-8 || this._rawPrevTime < 0 || 1e-8 === this._rawPrevTime) && this._rawPrevTime !== e && this._first && (h = !0, this._rawPrevTime > 1e-8 && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-8, e = p + 1e-4;
                    else if (e < 1e-8)
                        if (this._totalTime = this._time = 0, e > -1e-8 && (e = 0), (0 !== d || 0 === this._duration && 1e-8 !== this._rawPrevTime && (this._rawPrevTime > 0 || e < 0 && this._rawPrevTime >= 0)) && (u = "onReverseComplete", n = this._reversed), e < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (h = n = !0, u = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (h = !0), this._rawPrevTime = e;
                        else {
                            if (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-8, 0 === e && n)
                                for (r = this._first; r && 0 === r._startTime;) r._duration || (n = !1), r = r._next;
                            e = 0, this._initted || (h = !0)
                        }
                    else this._totalTime = this._time = this._rawPrevTime = e;
                    if (this._time !== d && this._first || i || h || l) {
                        if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== d && e > 0 && (this._active = !0), 0 === d && this.vars.onStart && (0 === this._time && this._duration || t || this._callback("onStart")), (f = this._time) >= d)
                            for (r = this._first; r && (a = r._next, f === this._time && (!this._paused || _));)(r._active || r._startTime <= f && !r._paused && !r._gc) && (l === r && (this.pause(), this._pauseTime = c), r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, i) : r.render((e - r._startTime) * r._timeScale, t, i)), r = a;
                        else
                            for (r = this._last; r && (a = r._prev, f === this._time && (!this._paused || _));) {
                                if (r._active || r._startTime <= d && !r._paused && !r._gc) {
                                    if (l === r) {
                                        for (l = r._prev; l && l.endTime() > this._time;) l.render(l._reversed ? l.totalDuration() - (e - l._startTime) * l._timeScale : (e - l._startTime) * l._timeScale, t, i), l = l._prev;
                                        l = null, this.pause(), this._pauseTime = c
                                    }
                                    r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, i) : r.render((e - r._startTime) * r._timeScale, t, i)
                                }
                                r = a
                            }
                        this._onUpdate && (t || (s.length && o(), this._callback("onUpdate"))), u && (this._gc || v !== this._startTime && m === this._timeScale || (0 === this._time || p >= this.totalDuration()) && (n && (s.length && o(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this._callback(u)))
                    }
                }, p._hasPausedChild = function() {
                    for (var t = this._first; t;) {
                        if (t._paused || t instanceof e && t._hasPausedChild()) return !0;
                        t = t._next
                    }
                    return !1
                }, p.getChildren = function(e, t, i, n) {
                    n = n || -9999999999;
                    for (var a = [], s = this._first, o = 0; s;) s._startTime < n || (s instanceof r.h ? !1 !== t && (a[o++] = s) : (!1 !== i && (a[o++] = s), !1 !== e && (o = (a = a.concat(s.getChildren(!0, t, i))).length))), s = s._next;
                    return a
                }, p.getTweensOf = function(e, t) {
                    var i, n, a = this._gc,
                        s = [],
                        o = 0;
                    for (a && this._enabled(!0, !0), n = (i = r.h.getTweensOf(e)).length; --n > -1;)(i[n].timeline === this || t && this._contains(i[n])) && (s[o++] = i[n]);
                    return a && this._enabled(!1, !0), s
                }, p.recent = function() {
                    return this._recent
                }, p._contains = function(e) {
                    for (var t = e.timeline; t;) {
                        if (t === this) return !0;
                        t = t.timeline
                    }
                    return !1
                }, p.shiftChildren = function(e, t, i) {
                    i = i || 0;
                    for (var r, n = this._first, a = this._labels; n;) n._startTime >= i && (n._startTime += e), n = n._next;
                    if (t)
                        for (r in a) a[r] >= i && (a[r] += e);
                    return this._uncache(!0)
                }, p._kill = function(e, t) {
                    if (!e && !t) return this._enabled(!1, !1);
                    for (var i = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), r = i.length, n = !1; --r > -1;) i[r]._kill(e, t) && (n = !0);
                    return n
                }, p.clear = function(e) {
                    var t = this.getChildren(!1, !0, !0),
                        i = t.length;
                    for (this._time = this._totalTime = 0; --i > -1;) t[i]._enabled(!1, !1);
                    return !1 !== e && (this._labels = {}), this._uncache(!0)
                }, p.invalidate = function() {
                    for (var e = this._first; e;) e.invalidate(), e = e._next;
                    return r.a.prototype.invalidate.call(this)
                }, p._enabled = function(e, t) {
                    if (e === this._gc)
                        for (var i = this._first; i;) i._enabled(e, !0), i = i._next;
                    return r.e.prototype._enabled.call(this, e, t)
                }, p.totalTime = function(e, t, i) {
                    this._forcingPlayhead = !0;
                    var n = r.a.prototype.totalTime.apply(this, arguments);
                    return this._forcingPlayhead = !1, n
                }, p.duration = function(e) {
                    return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
                }, p.totalDuration = function(e) {
                    if (!arguments.length) {
                        if (this._dirty) {
                            for (var t, i, r = 0, n = this, a = n._last, s = 999999999999; a;) t = a._prev, a._dirty && a.totalDuration(), a._startTime > s && n._sortChildren && !a._paused && !n._calculatingDuration ? (n._calculatingDuration = 1, n.add(a, a._startTime - a._delay), n._calculatingDuration = 0) : s = a._startTime, a._startTime < 0 && !a._paused && (r -= a._startTime, n._timeline.smoothChildTiming && (n._startTime += a._startTime / n._timeScale, n._time -= a._startTime, n._totalTime -= a._startTime, n._rawPrevTime -= a._startTime), n.shiftChildren(-a._startTime, !1, -9999999999), s = 0), (i = a._startTime + a._totalDuration / a._timeScale) > r && (r = i), a = t;
                            n._duration = n._totalDuration = r, n._dirty = !1
                        }
                        return this._totalDuration
                    }
                    return e && this.totalDuration() ? this.timeScale(this._totalDuration / e) : this
                }, p.paused = function(e) {
                    if (!1 === e && this._paused)
                        for (var t = this._first; t;) t._startTime === this._time && "isPause" === t.data && (t._rawPrevTime = 0), t = t._next;
                    return r.a.prototype.paused.apply(this, arguments)
                }, p.usesFrames = function() {
                    for (var e = this._timeline; e._timeline;) e = e._timeline;
                    return e === r.a._rootFramesTimeline
                }, p.rawTime = function(e) {
                    return e && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(e) - this._startTime) * this._timeScale
                }, e
            }, !0);
        var c = r.i.TimelineLite;
        /*!
         * VERSION: 2.1.3
         * DATE: 2019-05-17
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         */
        r.g._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function() {
            var e = function(e) {
                    c.call(this, e), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = !!this.vars.yoyo, this._dirty = !0
                },
                t = r.h._internals,
                i = t.lazyTweens,
                n = t.lazyRender,
                a = r.g._gsDefine.globals,
                s = new r.b(null, null, 1, 0),
                o = e.prototype = new c;
            return o.constructor = e, o.kill()._gc = !1, e.version = "2.1.3", o.invalidate = function() {
                return this._yoyo = !!this.vars.yoyo, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), c.prototype.invalidate.call(this)
            }, o.addCallback = function(e, t, i, n) {
                return this.add(r.h.delayedCall(0, e, i, n), t)
            }, o.removeCallback = function(e, t) {
                if (e)
                    if (null == t) this._kill(null, e);
                    else
                        for (var i = this.getTweensOf(e, !1), r = i.length, n = this._parseTimeOrLabel(t); --r > -1;) i[r]._startTime === n && i[r]._enabled(!1, !1);
                return this
            }, o.removePause = function(e) {
                return this.removeCallback(c._internals.pauseCallback, e)
            }, o.tweenTo = function(e, t) {
                t = t || {};
                var i, n, o, u = {
                        ease: s,
                        useFrames: this.usesFrames(),
                        immediateRender: !1,
                        lazy: !1
                    },
                    h = t.repeat && a.TweenMax || r.h;
                for (n in t) u[n] = t[n];
                return u.time = this._parseTimeOrLabel(e), i = Math.abs(Number(u.time) - this._time) / this._timeScale || .001, o = new h(this, i, u), u.onStart = function() {
                    o.target.paused(!0), o.vars.time === o.target.time() || i !== o.duration() || o.isFromTo || o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale).render(o.time(), !0, !0), t.onStart && t.onStart.apply(t.onStartScope || t.callbackScope || o, t.onStartParams || [])
                }, o
            }, o.tweenFromTo = function(e, t, i) {
                i = i || {}, e = this._parseTimeOrLabel(e), i.startAt = {
                    onComplete: this.seek,
                    onCompleteParams: [e],
                    callbackScope: this
                }, i.immediateRender = !1 !== i.immediateRender;
                var r = this.tweenTo(t, i);
                return r.isFromTo = 1, r.duration(Math.abs(r.vars.time - e) / this._timeScale || .001)
            }, o.render = function(e, t, r) {
                this._gc && this._enabled(!0, !1);
                var a, s, o, u, h, l, f, c, d, p = this._time,
                    v = this._dirty ? this.totalDuration() : this._totalDuration,
                    m = this._duration,
                    _ = this._totalTime,
                    b = this._startTime,
                    g = this._timeScale,
                    y = this._rawPrevTime,
                    A = this._paused,
                    w = this._cycle;
                if (p !== this._time && (e += this._time - p), e >= v - 1e-8 && e >= 0) this._locked || (this._totalTime = v, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (s = !0, u = "onComplete", h = !!this._timeline.autoRemoveChildren, 0 === this._duration && (e <= 0 && e >= -1e-8 || y < 0 || 1e-8 === y) && y !== e && this._first && (h = !0, y > 1e-8 && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : 1e-8, this._yoyo && 1 & this._cycle ? this._time = e = 0 : (this._time = m, e = m + 1e-4);
                else if (e < 1e-8)
                    if (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, e > -1e-8 && (e = 0), (0 !== p || 0 === m && 1e-8 !== y && (y > 0 || e < 0 && y >= 0) && !this._locked) && (u = "onReverseComplete", s = this._reversed), e < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (h = s = !0, u = "onReverseComplete") : y >= 0 && this._first && (h = !0), this._rawPrevTime = e;
                    else {
                        if (this._rawPrevTime = m || !t || e || this._rawPrevTime === e ? e : 1e-8, 0 === e && s)
                            for (a = this._first; a && 0 === a._startTime;) a._duration || (s = !1), a = a._next;
                        e = 0, this._initted || (h = !0)
                    }
                else 0 === m && y < 0 && (h = !0), this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (l = m + this._repeatDelay, this._cycle = this._totalTime / l >> 0, this._cycle && this._cycle === this._totalTime / l && _ <= e && this._cycle--, this._time = this._totalTime - this._cycle * l, this._yoyo && 1 & this._cycle && (this._time = m - this._time), this._time > m ? (this._time = m, e = m + 1e-4) : this._time < 0 ? this._time = e = 0 : e = this._time));
                if (this._hasPause && !this._forcingPlayhead && !t) {
                    if ((e = this._time) > p || this._repeat && w !== this._cycle)
                        for (a = this._first; a && a._startTime <= e && !f;) a._duration || "isPause" !== a.data || a.ratio || 0 === a._startTime && 0 === this._rawPrevTime || (f = a), a = a._next;
                    else
                        for (a = this._last; a && a._startTime >= e && !f;) a._duration || "isPause" === a.data && a._rawPrevTime > 0 && (f = a), a = a._prev;
                    f && (d = this._startTime + (this._reversed ? this._duration - f._startTime : f._startTime) / this._timeScale, f._startTime < m && (this._time = this._rawPrevTime = e = f._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay)))
                }
                if (this._cycle !== w && !this._locked) {
                    var x = this._yoyo && 0 != (1 & w),
                        k = x === (this._yoyo && 0 != (1 & this._cycle)),
                        T = this._totalTime,
                        E = this._cycle,
                        S = this._rawPrevTime,
                        P = this._time;
                    if (this._totalTime = w * m, this._cycle < w ? x = !x : this._totalTime += m, this._time = p, this._rawPrevTime = 0 === m ? y - 1e-4 : y, this._cycle = w, this._locked = !0, p = x ? 0 : m, this.render(p, t, 0 === m), t || this._gc || this.vars.onRepeat && (this._cycle = E, this._locked = !1, this._callback("onRepeat")), p !== this._time) return;
                    if (k && (this._cycle = w, this._locked = !0, p = x ? m + 1e-4 : -1e-4, this.render(p, !0, !1)), this._locked = !1, this._paused && !A) return;
                    this._time = P, this._totalTime = T, this._cycle = E, this._rawPrevTime = S
                }
                if (this._time !== p && this._first || r || h || f) {
                    if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== _ && e > 0 && (this._active = !0), 0 === _ && this.vars.onStart && (0 === this._totalTime && this._totalDuration || t || this._callback("onStart")), (c = this._time) >= p)
                        for (a = this._first; a && (o = a._next, c === this._time && (!this._paused || A));)(a._active || a._startTime <= this._time && !a._paused && !a._gc) && (f === a && (this.pause(), this._pauseTime = d), a._reversed ? a.render((a._dirty ? a.totalDuration() : a._totalDuration) - (e - a._startTime) * a._timeScale, t, r) : a.render((e - a._startTime) * a._timeScale, t, r)), a = o;
                    else
                        for (a = this._last; a && (o = a._prev, c === this._time && (!this._paused || A));) {
                            if (a._active || a._startTime <= p && !a._paused && !a._gc) {
                                if (f === a) {
                                    for (f = a._prev; f && f.endTime() > this._time;) f.render(f._reversed ? f.totalDuration() - (e - f._startTime) * f._timeScale : (e - f._startTime) * f._timeScale, t, r), f = f._prev;
                                    f = null, this.pause(), this._pauseTime = d
                                }
                                a._reversed ? a.render((a._dirty ? a.totalDuration() : a._totalDuration) - (e - a._startTime) * a._timeScale, t, r) : a.render((e - a._startTime) * a._timeScale, t, r)
                            }
                            a = o
                        }
                    this._onUpdate && (t || (i.length && n(), this._callback("onUpdate"))), u && (this._locked || this._gc || b !== this._startTime && g === this._timeScale || (0 === this._time || v >= this.totalDuration()) && (s && (i.length && n(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this._callback(u)))
                } else _ !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate"))
            }, o.getActive = function(e, t, i) {
                var r, n, a = [],
                    s = this.getChildren(e || null == e, t || null == e, !!i),
                    o = 0,
                    u = s.length;
                for (r = 0; r < u; r++)(n = s[r]).isActive() && (a[o++] = n);
                return a
            }, o.getLabelAfter = function(e) {
                e || 0 !== e && (e = this._time);
                var t, i = this.getLabelsArray(),
                    r = i.length;
                for (t = 0; t < r; t++)
                    if (i[t].time > e) return i[t].name;
                return null
            }, o.getLabelBefore = function(e) {
                null == e && (e = this._time);
                for (var t = this.getLabelsArray(), i = t.length; --i > -1;)
                    if (t[i].time < e) return t[i].name;
                return null
            }, o.getLabelsArray = function() {
                var e, t = [],
                    i = 0;
                for (e in this._labels) t[i++] = {
                    time: this._labels[e],
                    name: e
                };
                return t.sort(function(e, t) {
                    return e.time - t.time
                }), t
            }, o.invalidate = function() {
                return this._locked = !1, c.prototype.invalidate.call(this)
            }, o.progress = function(e, t) {
                return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration() || 0
            }, o.totalProgress = function(e, t) {
                return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration() || 0
            }, o.totalDuration = function(e) {
                return arguments.length ? -1 !== this._repeat && e ? this.timeScale(this.totalDuration() / e) : this : (this._dirty && (c.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
            }, o.time = function(e, t) {
                if (!arguments.length) return this._time;
                this._dirty && this.totalDuration();
                var i = this._duration,
                    r = this._cycle,
                    n = r * (i + this._repeatDelay);
                return e > i && (e = i), this.totalTime(this._yoyo && 1 & r ? i - e + n : this._repeat ? e + n : e, t)
            }, o.repeat = function(e) {
                return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
            }, o.repeatDelay = function(e) {
                return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
            }, o.yoyo = function(e) {
                return arguments.length ? (this._yoyo = e, this) : this._yoyo
            }, o.currentLabel = function(e) {
                return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
            }, e
        }, !0);
        var d = r.i.TimelineMax,
            p = 180 / Math.PI,
            v = [],
            m = [],
            _ = [],
            b = {},
            g = r.g._gsDefine.globals,
            y = function(e, t, i, r) {
                i === r && (i = r - (r - t) / 1e6), e === t && (t = e + (i - e) / 1e6), this.a = e, this.b = t, this.c = i, this.d = r, this.da = r - e, this.ca = i - e, this.ba = t - e
            },
            A = function(e, t, i, r) {
                var n = {
                        a: e
                    },
                    a = {},
                    s = {},
                    o = {
                        c: r
                    },
                    u = (e + t) / 2,
                    h = (t + i) / 2,
                    l = (i + r) / 2,
                    f = (u + h) / 2,
                    c = (h + l) / 2,
                    d = (c - f) / 8;
                return n.b = u + (e - u) / 4, a.b = f + d, n.c = a.a = (n.b + a.b) / 2, a.c = s.a = (f + c) / 2, s.b = c - d, o.b = l + (r - l) / 4, s.c = o.a = (s.b + o.b) / 2, [n, a, s, o]
            },
            w = function(e, t, i, r, n) {
                var a, s, o, u, h, l, f, c, d, p, b, g, y, w = e.length - 1,
                    x = 0,
                    k = e[0].a;
                for (a = 0; a < w; a++) s = (h = e[x]).a, o = h.d, u = e[x + 1].d, n ? (b = v[a], y = ((g = m[a]) + b) * t * .25 / (r ? .5 : _[a] || .5), c = o - ((l = o - (o - s) * (r ? .5 * t : 0 !== b ? y / b : 0)) + (((f = o + (u - o) * (r ? .5 * t : 0 !== g ? y / g : 0)) - l) * (3 * b / (b + g) + .5) / 4 || 0))) : c = o - ((l = o - (o - s) * t * .5) + (f = o + (u - o) * t * .5)) / 2, l += c, f += c, h.c = d = l, h.b = 0 !== a ? k : k = h.a + .6 * (h.c - h.a), h.da = o - s, h.ca = d - s, h.ba = k - s, i ? (p = A(s, k, d, o), e.splice(x, 1, p[0], p[1], p[2], p[3]), x += 4) : x++, k = f;
                (h = e[x]).b = k, h.c = k + .4 * (h.d - k), h.da = h.d - h.a, h.ca = h.c - h.a, h.ba = k - h.a, i && (p = A(h.a, k, h.c, h.d), e.splice(x, 1, p[0], p[1], p[2], p[3]))
            },
            x = function(e, t, i, r) {
                var n, a, s, o, u, h, l = [];
                if (r)
                    for (a = (e = [r].concat(e)).length; --a > -1;) "string" == typeof(h = e[a][t]) && "=" === h.charAt(1) && (e[a][t] = r[t] + Number(h.charAt(0) + h.substr(2)));
                if ((n = e.length - 2) < 0) return l[0] = new y(e[0][t], 0, 0, e[0][t]), l;
                for (a = 0; a < n; a++) s = e[a][t], o = e[a + 1][t], l[a] = new y(s, 0, 0, o), i && (u = e[a + 2][t], v[a] = (v[a] || 0) + (o - s) * (o - s), m[a] = (m[a] || 0) + (u - o) * (u - o));
                return l[a] = new y(e[a][t], 0, 0, e[a + 1][t]), l
            },
            k = function(e, t, i, r, n, a) {
                var s, o, u, h, l, f, c, d, p = {},
                    g = [],
                    y = a || e[0];
                for (o in n = "string" == typeof n ? "," + n + "," : ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", null == t && (t = 1), e[0]) g.push(o);
                if (e.length > 1) {
                    for (d = e[e.length - 1], c = !0, s = g.length; --s > -1;)
                        if (o = g[s], Math.abs(y[o] - d[o]) > .05) {
                            c = !1;
                            break
                        }
                    c && (e = e.concat(), a && e.unshift(a), e.push(e[1]), a = e[e.length - 3])
                }
                for (v.length = m.length = _.length = 0, s = g.length; --s > -1;) o = g[s], b[o] = -1 !== n.indexOf("," + o + ","), p[o] = x(e, o, b[o], a);
                for (s = v.length; --s > -1;) v[s] = Math.sqrt(v[s]), m[s] = Math.sqrt(m[s]);
                if (!r) {
                    for (s = g.length; --s > -1;)
                        if (b[o])
                            for (f = (u = p[g[s]]).length - 1, h = 0; h < f; h++) l = u[h + 1].da / m[h] + u[h].da / v[h] || 0, _[h] = (_[h] || 0) + l * l;
                    for (s = _.length; --s > -1;) _[s] = Math.sqrt(_[s])
                }
                for (s = g.length, h = i ? 4 : 1; --s > -1;) u = p[o = g[s]], w(u, t, i, r, b[o]), c && (u.splice(0, h), u.splice(u.length - h, h));
                return p
            },
            T = function(e, t, i) {
                for (var r, n, a, s, o, u, h, l, f, c, d, p = 1 / i, v = e.length; --v > -1;)
                    for (a = (c = e[v]).a, s = c.d - a, o = c.c - a, u = c.b - a, r = n = 0, l = 1; l <= i; l++) r = n - (n = ((h = p * l) * h * s + 3 * (f = 1 - h) * (h * o + f * u)) * h), t[d = v * i + l - 1] = (t[d] || 0) + r * r
            },
            E = r.g._gsDefine.plugin({
                propName: "bezier",
                priority: -1,
                version: "1.3.9",
                API: 2,
                global: !0,
                init: function(e, t, i) {
                    this._target = e, t instanceof Array && (t = {
                        values: t
                    }), this._func = {}, this._mod = {}, this._props = [], this._timeRes = null == t.timeResolution ? 6 : parseInt(t.timeResolution, 10);
                    var r, n, a, s, o, u = t.values || [],
                        h = {},
                        l = u[0],
                        f = t.autoRotate || i.vars.orientToBezier;
                    for (r in this._autoRotate = f ? f instanceof Array ? f : [
                            ["x", "y", "rotation", !0 === f ? 0 : Number(f) || 0]
                        ] : null, l) this._props.push(r);
                    for (a = this._props.length; --a > -1;) r = this._props[a], this._overwriteProps.push(r), n = this._func[r] = "function" == typeof e[r], h[r] = n ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)]() : parseFloat(e[r]), o || h[r] !== u[0][r] && (o = h);
                    if (this._beziers = "cubic" !== t.type && "quadratic" !== t.type && "soft" !== t.type ? k(u, isNaN(t.curviness) ? 1 : t.curviness, !1, "thruBasic" === t.type, t.correlate, o) : function(e, t, i) {
                            var r, n, a, s, o, u, h, l, f, c, d, p = {},
                                v = "cubic" === (t = t || "soft") ? 3 : 2,
                                m = "soft" === t,
                                _ = [];
                            if (m && i && (e = [i].concat(e)), null == e || e.length < v + 1) throw "invalid Bezier data";
                            for (f in e[0]) _.push(f);
                            for (u = _.length; --u > -1;) {
                                for (p[f = _[u]] = o = [], c = 0, l = e.length, h = 0; h < l; h++) r = null == i ? e[h][f] : "string" == typeof(d = e[h][f]) && "=" === d.charAt(1) ? i[f] + Number(d.charAt(0) + d.substr(2)) : Number(d), m && h > 1 && h < l - 1 && (o[c++] = (r + o[c - 2]) / 2), o[c++] = r;
                                for (l = c - v + 1, c = 0, h = 0; h < l; h += v) r = o[h], n = o[h + 1], a = o[h + 2], s = 2 === v ? 0 : o[h + 3], o[c++] = d = 3 === v ? new y(r, n, a, s) : new y(r, (2 * n + r) / 3, (2 * n + a) / 3, a);
                                o.length = c
                            }
                            return p
                        }(u, t.type, h), this._segCount = this._beziers[r].length, this._timeRes) {
                        var c = function(e, t) {
                            var i, r, n, a, s = [],
                                o = [],
                                u = 0,
                                h = 0,
                                l = (t = t >> 0 || 6) - 1,
                                f = [],
                                c = [];
                            for (i in e) T(e[i], s, t);
                            for (n = s.length, r = 0; r < n; r++) u += Math.sqrt(s[r]), c[a = r % t] = u, a === l && (h += u, f[a = r / t >> 0] = c, o[a] = h, u = 0, c = []);
                            return {
                                length: h,
                                lengths: o,
                                segments: f
                            }
                        }(this._beziers, this._timeRes);
                        this._length = c.length, this._lengths = c.lengths, this._segments = c.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
                    }
                    if (f = this._autoRotate)
                        for (this._initialRotations = [], f[0] instanceof Array || (this._autoRotate = f = [f]), a = f.length; --a > -1;) {
                            for (s = 0; s < 3; s++) r = f[a][s], this._func[r] = "function" == typeof e[r] && e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)];
                            r = f[a][2], this._initialRotations[a] = (this._func[r] ? this._func[r].call(this._target) : this._target[r]) || 0, this._overwriteProps.push(r)
                        }
                    return this._startRatio = i.vars.runBackwards ? 1 : 0, !0
                },
                set: function(e) {
                    var t, i, r, n, a, s, o, u, h, l, f, c = this._segCount,
                        d = this._func,
                        v = this._target,
                        m = e !== this._startRatio;
                    if (this._timeRes) {
                        if (h = this._lengths, l = this._curSeg, f = e * this._length, r = this._li, f > this._l2 && r < c - 1) {
                            for (u = c - 1; r < u && (this._l2 = h[++r]) <= f;);
                            this._l1 = h[r - 1], this._li = r, this._curSeg = l = this._segments[r], this._s2 = l[this._s1 = this._si = 0]
                        } else if (f < this._l1 && r > 0) {
                            for (; r > 0 && (this._l1 = h[--r]) >= f;);
                            0 === r && f < this._l1 ? this._l1 = 0 : r++, this._l2 = h[r], this._li = r, this._curSeg = l = this._segments[r], this._s1 = l[(this._si = l.length - 1) - 1] || 0, this._s2 = l[this._si]
                        }
                        if (t = r, f -= this._l1, r = this._si, f > this._s2 && r < l.length - 1) {
                            for (u = l.length - 1; r < u && (this._s2 = l[++r]) <= f;);
                            this._s1 = l[r - 1], this._si = r
                        } else if (f < this._s1 && r > 0) {
                            for (; r > 0 && (this._s1 = l[--r]) >= f;);
                            0 === r && f < this._s1 ? this._s1 = 0 : r++, this._s2 = l[r], this._si = r
                        }
                        s = 1 === e ? 1 : (r + (f - this._s1) / (this._s2 - this._s1)) * this._prec || 0
                    } else s = (e - (t = e < 0 ? 0 : e >= 1 ? c - 1 : c * e >> 0) * (1 / c)) * c;
                    for (i = 1 - s, r = this._props.length; --r > -1;) n = this._props[r], o = (s * s * (a = this._beziers[n][t]).da + 3 * i * (s * a.ca + i * a.ba)) * s + a.a, this._mod[n] && (o = this._mod[n](o, v)), d[n] ? v[n](o) : v[n] = o;
                    if (this._autoRotate) {
                        var _, b, g, y, A, w, x, k = this._autoRotate;
                        for (r = k.length; --r > -1;) n = k[r][2], w = k[r][3] || 0, x = !0 === k[r][4] ? 1 : p, a = this._beziers[k[r][0]], _ = this._beziers[k[r][1]], a && _ && (a = a[t], _ = _[t], b = a.a + (a.b - a.a) * s, b += ((y = a.b + (a.c - a.b) * s) - b) * s, y += (a.c + (a.d - a.c) * s - y) * s, g = _.a + (_.b - _.a) * s, g += ((A = _.b + (_.c - _.b) * s) - g) * s, A += (_.c + (_.d - _.c) * s - A) * s, o = m ? Math.atan2(A - g, y - b) * x + w : this._initialRotations[r], this._mod[n] && (o = this._mod[n](o, v)), d[n] ? v[n](o) : v[n] = o)
                    }
                }
            }),
            S = E.prototype;
        /*!
         * VERSION: 1.3.9
         * DATE: 2019-05-17
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         **/
        E.bezierThrough = k, E.cubicToQuadratic = A, E._autoCSS = !0, E.quadraticToCubic = function(e, t, i) {
            return new y(e, (2 * t + e) / 3, (2 * t + i) / 3, i)
        }, E._cssRegister = function() {
            var e = g.CSSPlugin;
            if (e) {
                var t = e._internals,
                    i = t._parseToProxy,
                    r = t._setPluginRatio,
                    n = t.CSSPropTween;
                t._registerComplexSpecialProp("bezier", {
                    parser: function(e, t, a, s, o, u) {
                        t instanceof Array && (t = {
                            values: t
                        }), u = new E;
                        var h, l, f, c = t.values,
                            d = c.length - 1,
                            p = [],
                            v = {};
                        if (d < 0) return o;
                        for (h = 0; h <= d; h++) f = i(e, c[h], s, o, u, d !== h), p[h] = f.end;
                        for (l in t) v[l] = t[l];
                        return v.values = p, (o = new n(e, "bezier", 0, 0, f.pt, 2)).data = f, o.plugin = u, o.setRatio = r, 0 === v.autoRotate && (v.autoRotate = !0), !v.autoRotate || v.autoRotate instanceof Array || (h = !0 === v.autoRotate ? 0 : Number(v.autoRotate), v.autoRotate = null != f.end.left ? [
                            ["left", "top", "rotation", h, !1]
                        ] : null != f.end.x && [
                            ["x", "y", "rotation", h, !1]
                        ]), v.autoRotate && (s._transform || s._enableTransforms(!1), f.autoRotate = s._target._gsTransform, f.proxy.rotation = f.autoRotate.rotation || 0, s._overwriteProps.push("rotation")), u._onInitTween(f.proxy, v, s._tween), o
                    }
                })
            }
        }, S._mod = function(e) {
            for (var t, i = this._overwriteProps, r = i.length; --r > -1;)(t = e[i[r]]) && "function" == typeof t && (this._mod[i[r]] = t)
        }, S._kill = function(e) {
            var t, i, r = this._props;
            for (t in this._beziers)
                if (t in e)
                    for (delete this._beziers[t], delete this._func[t], i = r.length; --i > -1;) r[i] === t && r.splice(i, 1);
            if (r = this._autoRotate)
                for (i = r.length; --i > -1;) e[r[i][2]] && r.splice(i, 1);
            return this._super._kill.call(this, e)
        };
        var P = i(13),
            I = n.a;
        /*!
         * VERSION: 2.1.3
         * DATE: 2019-05-17
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         **/
        I._autoActivated = [c, d, a, s, E, o, f, P.a, P.d, P.b, P.g, P.i, P.j, P.c, P.e, P.h, P.f], i.d(t, "c", function() {
            return r.h
        }), i.d(t, "d", function() {
            return I
        }), i.d(t, "b", function() {
            return r.c
        }), i.d(t, "a", function() {
            return P.a
        })
    }, , , , , , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return n
        }), i.d(t, "d", function() {
            return a
        }), i.d(t, "b", function() {
            return s
        }), i.d(t, "g", function() {
            return o
        }), i.d(t, "i", function() {
            return u
        }), i.d(t, "j", function() {
            return h
        }), i.d(t, "c", function() {
            return l
        }), i.d(t, "e", function() {
            return f
        }), i.d(t, "h", function() {
            return c
        }), i.d(t, "f", function() {
            return d
        });
        var r = i(4);
        /*!
         * VERSION: 1.16.1
         * DATE: 2018-08-27
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         **/
        r.g._gsDefine("easing.Back", ["easing.Ease"], function() {
            var e, t, i, n, a = r.g.GreenSockGlobals || r.g,
                s = a.com.greensock,
                o = 2 * Math.PI,
                u = Math.PI / 2,
                h = s._class,
                l = function(e, t) {
                    var i = h("easing." + e, function() {}, !0),
                        n = i.prototype = new r.b;
                    return n.constructor = i, n.getRatio = t, i
                },
                f = r.b.register || function() {},
                c = function(e, t, i, r, n) {
                    var a = h("easing." + e, {
                        easeOut: new t,
                        easeIn: new i,
                        easeInOut: new r
                    }, !0);
                    return f(a, e), a
                },
                d = function(e, t, i) {
                    this.t = e, this.v = t, i && (this.next = i, i.prev = this, this.c = i.v - t, this.gap = i.t - e)
                },
                p = function(e, t) {
                    var i = h("easing." + e, function(e) {
                            this._p1 = e || 0 === e ? e : 1.70158, this._p2 = 1.525 * this._p1
                        }, !0),
                        n = i.prototype = new r.b;
                    return n.constructor = i, n.getRatio = t, n.config = function(e) {
                        return new i(e)
                    }, i
                },
                v = c("Back", p("BackOut", function(e) {
                    return (e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1
                }), p("BackIn", function(e) {
                    return e * e * ((this._p1 + 1) * e - this._p1)
                }), p("BackInOut", function(e) {
                    return (e *= 2) < 1 ? .5 * e * e * ((this._p2 + 1) * e - this._p2) : .5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2)
                })),
                m = h("easing.SlowMo", function(e, t, i) {
                    t = t || 0 === t ? t : .7, null == e ? e = .7 : e > 1 && (e = 1), this._p = 1 !== e ? t : 0, this._p1 = (1 - e) / 2, this._p2 = e, this._p3 = this._p1 + this._p2, this._calcEnd = !0 === i
                }, !0),
                _ = m.prototype = new r.b;
            return _.constructor = m, _.getRatio = function(e) {
                var t = e + (.5 - e) * this._p;
                return e < this._p1 ? this._calcEnd ? 1 - (e = 1 - e / this._p1) * e : t - (e = 1 - e / this._p1) * e * e * e * t : e > this._p3 ? this._calcEnd ? 1 === e ? 0 : 1 - (e = (e - this._p3) / this._p1) * e : t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e : this._calcEnd ? 1 : t
            }, m.ease = new m(.7, .7), _.config = m.config = function(e, t, i) {
                return new m(e, t, i)
            }, (_ = (e = h("easing.SteppedEase", function(e, t) {
                e = e || 1, this._p1 = 1 / e, this._p2 = e + (t ? 0 : 1), this._p3 = t ? 1 : 0
            }, !0)).prototype = new r.b).constructor = e, _.getRatio = function(e) {
                return e < 0 ? e = 0 : e >= 1 && (e = .999999999), ((this._p2 * e | 0) + this._p3) * this._p1
            }, _.config = e.config = function(t, i) {
                return new e(t, i)
            }, (_ = (t = h("easing.ExpoScaleEase", function(e, t, i) {
                this._p1 = Math.log(t / e), this._p2 = t - e, this._p3 = e, this._ease = i
            }, !0)).prototype = new r.b).constructor = t, _.getRatio = function(e) {
                return this._ease && (e = this._ease.getRatio(e)), (this._p3 * Math.exp(this._p1 * e) - this._p3) / this._p2
            }, _.config = t.config = function(e, i, r) {
                return new t(e, i, r)
            }, (_ = (i = h("easing.RoughEase", function(e) {
                for (var t, i, n, a, s, o, u = (e = e || {}).taper || "none", h = [], l = 0, f = 0 | (e.points || 20), c = f, p = !1 !== e.randomize, v = !0 === e.clamp, m = e.template instanceof r.b ? e.template : null, _ = "number" == typeof e.strength ? .4 * e.strength : .4; --c > -1;) t = p ? Math.random() : 1 / f * c, i = m ? m.getRatio(t) : t, n = "none" === u ? _ : "out" === u ? (a = 1 - t) * a * _ : "in" === u ? t * t * _ : t < .5 ? (a = 2 * t) * a * .5 * _ : (a = 2 * (1 - t)) * a * .5 * _, p ? i += Math.random() * n - .5 * n : c % 2 ? i += .5 * n : i -= .5 * n, v && (i > 1 ? i = 1 : i < 0 && (i = 0)), h[l++] = {
                    x: t,
                    y: i
                };
                for (h.sort(function(e, t) {
                        return e.x - t.x
                    }), o = new d(1, 1, null), c = f; --c > -1;) s = h[c], o = new d(s.x, s.y, o);
                this._prev = new d(0, 0, 0 !== o.t ? o : o.next)
            }, !0)).prototype = new r.b).constructor = i, _.getRatio = function(e) {
                var t = this._prev;
                if (e > t.t) {
                    for (; t.next && e >= t.t;) t = t.next;
                    t = t.prev
                } else
                    for (; t.prev && e <= t.t;) t = t.prev;
                return this._prev = t, t.v + (e - t.t) / t.gap * t.c
            }, _.config = function(e) {
                return new i(e)
            }, i.ease = new i, c("Bounce", l("BounceOut", function(e) {
                return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
            }), l("BounceIn", function(e) {
                return (e = 1 - e) < 1 / 2.75 ? 1 - 7.5625 * e * e : e < 2 / 2.75 ? 1 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : e < 2.5 / 2.75 ? 1 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 1 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375)
            }), l("BounceInOut", function(e) {
                var t = e < .5;
                return (e = t ? 1 - 2 * e : 2 * e - 1) < 1 / 2.75 ? e *= 7.5625 * e : e = e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375, t ? .5 * (1 - e) : .5 * e + .5
            })), c("Circ", l("CircOut", function(e) {
                return Math.sqrt(1 - (e -= 1) * e)
            }), l("CircIn", function(e) {
                return -(Math.sqrt(1 - e * e) - 1)
            }), l("CircInOut", function(e) {
                return (e *= 2) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
            })), c("Elastic", (n = function(e, t, i) {
                var n = h("easing." + e, function(e, t) {
                        this._p1 = e >= 1 ? e : 1, this._p2 = (t || i) / (e < 1 ? e : 1), this._p3 = this._p2 / o * (Math.asin(1 / this._p1) || 0), this._p2 = o / this._p2
                    }, !0),
                    a = n.prototype = new r.b;
                return a.constructor = n, a.getRatio = t, a.config = function(e, t) {
                    return new n(e, t)
                }, n
            })("ElasticOut", function(e) {
                return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * this._p2) + 1
            }, .3), n("ElasticIn", function(e) {
                return -this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2)
            }, .3), n("ElasticInOut", function(e) {
                return (e *= 2) < 1 ? this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * -.5 : this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * .5 + 1
            }, .45)), c("Expo", l("ExpoOut", function(e) {
                return 1 - Math.pow(2, -10 * e)
            }), l("ExpoIn", function(e) {
                return Math.pow(2, 10 * (e - 1)) - .001
            }), l("ExpoInOut", function(e) {
                return (e *= 2) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * (e - 1)))
            })), c("Sine", l("SineOut", function(e) {
                return Math.sin(e * u)
            }), l("SineIn", function(e) {
                return 1 - Math.cos(e * u)
            }), l("SineInOut", function(e) {
                return -.5 * (Math.cos(Math.PI * e) - 1)
            })), h("easing.EaseLookup", {
                find: function(e) {
                    return r.b.map[e]
                }
            }, !0), f(a.SlowMo, "SlowMo", "ease,"), f(i, "RoughEase", "ease,"), f(e, "SteppedEase", "ease,"), v
        }, !0);
        var n = r.i.Back,
            a = r.i.Elastic,
            s = r.i.Bounce,
            o = r.i.RoughEase,
            u = r.i.SlowMo,
            h = r.i.SteppedEase,
            l = r.i.Circ,
            f = r.i.Expo,
            c = r.i.Sine,
            d = r.i.ExpoScaleEase
    }, , , , , , , , , , function(e, t, i) {
        "use strict";
        var r = i(27);
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const n = new class {
            handleAttributeExpressions(e, t, i, n) {
                const a = t[0];
                if ("." === a) {
                    return new r.e(e, t.slice(1), i).parts
                }
                return "@" === a ? [new r.c(e, t.slice(1), n.eventContext)] : "?" === a ? [new r.b(e, t.slice(1), i)] : new r.a(e, t, i).parts
            }
            handleTextExpression(e) {
                return new r.d(e)
            }
        };
        var a = i(60),
            s = i(57),
            o = i(42),
            u = (i(32), i(25));
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        function h(e) {
            let t = l.get(e.type);
            void 0 === t && (t = {
                stringsArray: new WeakMap,
                keyString: new Map
            }, l.set(e.type, t));
            let i = t.stringsArray.get(e.strings);
            if (void 0 !== i) return i;
            const r = e.strings.join(u.f);
            return void 0 === (i = t.keyString.get(r)) && (i = new u.a(e, e.getTemplateElement()), t.keyString.set(r, i)), t.stringsArray.set(e.strings, i), i
        }
        const l = new Map,
            f = new WeakMap,
            c = (e, t, i) => {
                let n = f.get(t);
                void 0 === n && (Object(o.b)(t, t.firstChild), f.set(t, n = new r.d(Object.assign({
                    templateFactory: h
                }, i))), n.appendInto(t)), n.setValue(e), n.commit()
            };
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        i(80);
        i.d(t, "d", function() {
                return d
            }), i.d(t, "c", function() {
                return s.a
            }), i.d(t, "a", function() {
                return r.d
            }), i.d(t, "e", function() {
                return c
            }), i.d(t, "b", function() {
                return a.b
            }),
            /**
             * @license
             * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
             * This code may only be used under the BSD style license found at
             * http://polymer.github.io/LICENSE.txt
             * The complete set of authors may be found at
             * http://polymer.github.io/AUTHORS.txt
             * The complete set of contributors may be found at
             * http://polymer.github.io/CONTRIBUTORS.txt
             * Code distributed by Google as part of the polymer project is also
             * subject to an additional IP rights grant found at
             * http://polymer.github.io/PATENTS.txt
             */
            (window.litHtmlVersions || (window.litHtmlVersions = [])).push("1.1.2");
        const d = (e, ...t) => new a.b(e, t, "html", n)
    }, , function(e, t, i) {
        "use strict";
        i.d(t, "f", function() {
            return r
        }), i.d(t, "g", function() {
            return n
        }), i.d(t, "b", function() {
            return s
        }), i.d(t, "a", function() {
            return o
        }), i.d(t, "d", function() {
            return h
        }), i.d(t, "c", function() {
            return l
        }), i.d(t, "e", function() {
            return f
        });
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const r = `{{lit-${String(Math.random()).slice(2)}}}`,
            n = `\x3c!--${r}--\x3e`,
            a = new RegExp(`${r}|${n}`),
            s = "$lit$";
        class o {
            constructor(e, t) {
                this.parts = [], this.element = t;
                const i = [],
                    n = [],
                    o = document.createTreeWalker(t.content, 133, null, !1);
                let h = 0,
                    c = -1,
                    d = 0;
                const {
                    strings: p,
                    values: {
                        length: v
                    }
                } = e;
                for (; d < v;) {
                    const e = o.nextNode();
                    if (null !== e) {
                        if (c++, 1 === e.nodeType) {
                            if (e.hasAttributes()) {
                                const t = e.attributes,
                                    {
                                        length: i
                                    } = t;
                                let r = 0;
                                for (let e = 0; e < i; e++) u(t[e].name, s) && r++;
                                for (; r-- > 0;) {
                                    const t = p[d],
                                        i = f.exec(t)[2],
                                        r = i.toLowerCase() + s,
                                        n = e.getAttribute(r);
                                    e.removeAttribute(r);
                                    const o = n.split(a);
                                    this.parts.push({
                                        type: "attribute",
                                        index: c,
                                        name: i,
                                        strings: o
                                    }), d += o.length - 1
                                }
                            }
                            "TEMPLATE" === e.tagName && (n.push(e), o.currentNode = e.content)
                        } else if (3 === e.nodeType) {
                            const t = e.data;
                            if (t.indexOf(r) >= 0) {
                                const r = e.parentNode,
                                    n = t.split(a),
                                    o = n.length - 1;
                                for (let t = 0; t < o; t++) {
                                    let i, a = n[t];
                                    if ("" === a) i = l();
                                    else {
                                        const e = f.exec(a);
                                        null !== e && u(e[2], s) && (a = a.slice(0, e.index) + e[1] + e[2].slice(0, -s.length) + e[3]), i = document.createTextNode(a)
                                    }
                                    r.insertBefore(i, e), this.parts.push({
                                        type: "node",
                                        index: ++c
                                    })
                                }
                                "" === n[o] ? (r.insertBefore(l(), e), i.push(e)) : e.data = n[o], d += o
                            }
                        } else if (8 === e.nodeType)
                            if (e.data === r) {
                                const t = e.parentNode;
                                null !== e.previousSibling && c !== h || (c++, t.insertBefore(l(), e)), h = c, this.parts.push({
                                    type: "node",
                                    index: c
                                }), null === e.nextSibling ? e.data = "" : (i.push(e), c--), d++
                            } else {
                                let t = -1;
                                for (; - 1 !== (t = e.data.indexOf(r, t + 1));) this.parts.push({
                                    type: "node",
                                    index: -1
                                }), d++
                            }
                    } else o.currentNode = n.pop()
                }
                for (const e of i) e.parentNode.removeChild(e)
            }
        }
        const u = (e, t) => {
                const i = e.length - t.length;
                return i >= 0 && e.slice(i) === t
            },
            h = e => -1 !== e.index,
            l = () => document.createComment(""),
            f = /([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/
    }, , function(e, t, i) {
        "use strict";
        i.d(t, "f", function() {
            return h
        }), i.d(t, "a", function() {
            return f
        }), i.d(t, "d", function() {
            return d
        }), i.d(t, "b", function() {
            return p
        }), i.d(t, "e", function() {
            return v
        }), i.d(t, "c", function() {
            return b
        });
        var r = i(57),
            n = i(42),
            a = i(32),
            s = i(80),
            o = i(60),
            u = i(25);
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const h = e => null === e || !("object" == typeof e || "function" == typeof e),
            l = e => Array.isArray(e) || !(!e || !e[Symbol.iterator]);
        class f {
            constructor(e, t, i) {
                this.dirty = !0, this.element = e, this.name = t, this.strings = i, this.parts = [];
                for (let e = 0; e < i.length - 1; e++) this.parts[e] = this._createPart()
            }
            _createPart() {
                return new c(this)
            }
            _getValue() {
                const e = this.strings,
                    t = e.length - 1;
                let i = "";
                for (let r = 0; r < t; r++) {
                    i += e[r];
                    const t = this.parts[r];
                    if (void 0 !== t) {
                        const e = t.value;
                        if (h(e) || !l(e)) i += "string" == typeof e ? e : String(e);
                        else
                            for (const t of e) i += "string" == typeof t ? t : String(t)
                    }
                }
                return i += e[t]
            }
            commit() {
                this.dirty && (this.dirty = !1, this.element.setAttribute(this.name, this._getValue()))
            }
        }
        class c {
            constructor(e) {
                this.value = void 0, this.committer = e
            }
            setValue(e) {
                e === a.a || h(e) && e === this.value || (this.value = e, Object(r.b)(e) || (this.committer.dirty = !0))
            }
            commit() {
                for (; Object(r.b)(this.value);) {
                    const e = this.value;
                    this.value = a.a, e(this)
                }
                this.value !== a.a && this.committer.commit()
            }
        }
        class d {
            constructor(e) {
                this.value = void 0, this.__pendingValue = void 0, this.options = e
            }
            appendInto(e) {
                this.startNode = e.appendChild(Object(u.c)()), this.endNode = e.appendChild(Object(u.c)())
            }
            insertAfterNode(e) {
                this.startNode = e, this.endNode = e.nextSibling
            }
            appendIntoPart(e) {
                e.__insert(this.startNode = Object(u.c)()), e.__insert(this.endNode = Object(u.c)())
            }
            insertAfterPart(e) {
                e.__insert(this.startNode = Object(u.c)()), this.endNode = e.endNode, e.endNode = this.startNode
            }
            setValue(e) {
                this.__pendingValue = e
            }
            commit() {
                for (; Object(r.b)(this.__pendingValue);) {
                    const e = this.__pendingValue;
                    this.__pendingValue = a.a, e(this)
                }
                const e = this.__pendingValue;
                e !== a.a && (h(e) ? e !== this.value && this.__commitText(e) : e instanceof o.b ? this.__commitTemplateResult(e) : e instanceof Node ? this.__commitNode(e) : l(e) ? this.__commitIterable(e) : e === a.b ? (this.value = a.b, this.clear()) : this.__commitText(e))
            }
            __insert(e) {
                this.endNode.parentNode.insertBefore(e, this.endNode)
            }
            __commitNode(e) {
                this.value !== e && (this.clear(), this.__insert(e), this.value = e)
            }
            __commitText(e) {
                const t = this.startNode.nextSibling,
                    i = "string" == typeof(e = null == e ? "" : e) ? e : String(e);
                t === this.endNode.previousSibling && 3 === t.nodeType ? t.data = i : this.__commitNode(document.createTextNode(i)), this.value = e
            }
            __commitTemplateResult(e) {
                const t = this.options.templateFactory(e);
                if (this.value instanceof s.a && this.value.template === t) this.value.update(e.values);
                else {
                    const i = new s.a(t, e.processor, this.options),
                        r = i._clone();
                    i.update(e.values), this.__commitNode(r), this.value = i
                }
            }
            __commitIterable(e) {
                Array.isArray(this.value) || (this.value = [], this.clear());
                const t = this.value;
                let i, r = 0;
                for (const n of e) void 0 === (i = t[r]) && (i = new d(this.options), t.push(i), 0 === r ? i.appendIntoPart(this) : i.insertAfterPart(t[r - 1])), i.setValue(n), i.commit(), r++;
                r < t.length && (t.length = r, this.clear(i && i.endNode))
            }
            clear(e = this.startNode) {
                Object(n.b)(this.startNode.parentNode, e.nextSibling, this.endNode)
            }
        }
        class p {
            constructor(e, t, i) {
                if (this.value = void 0, this.__pendingValue = void 0, 2 !== i.length || "" !== i[0] || "" !== i[1]) throw new Error("Boolean attributes can only contain a single expression");
                this.element = e, this.name = t, this.strings = i
            }
            setValue(e) {
                this.__pendingValue = e
            }
            commit() {
                for (; Object(r.b)(this.__pendingValue);) {
                    const e = this.__pendingValue;
                    this.__pendingValue = a.a, e(this)
                }
                if (this.__pendingValue === a.a) return;
                const e = !!this.__pendingValue;
                this.value !== e && (e ? this.element.setAttribute(this.name, "") : this.element.removeAttribute(this.name), this.value = e), this.__pendingValue = a.a
            }
        }
        class v extends f {
            constructor(e, t, i) {
                super(e, t, i), this.single = 2 === i.length && "" === i[0] && "" === i[1]
            }
            _createPart() {
                return new m(this)
            }
            _getValue() {
                return this.single ? this.parts[0].value : super._getValue()
            }
            commit() {
                this.dirty && (this.dirty = !1, this.element[this.name] = this._getValue())
            }
        }
        class m extends c {}
        let _ = !1;
        try {
            const e = {
                get capture() {
                    return _ = !0, !1
                }
            };
            window.addEventListener("test", e, e), window.removeEventListener("test", e, e)
        } catch (e) {}
        class b {
            constructor(e, t, i) {
                this.value = void 0, this.__pendingValue = void 0, this.element = e, this.eventName = t, this.eventContext = i, this.__boundHandleEvent = e => this.handleEvent(e)
            }
            setValue(e) {
                this.__pendingValue = e
            }
            commit() {
                for (; Object(r.b)(this.__pendingValue);) {
                    const e = this.__pendingValue;
                    this.__pendingValue = a.a, e(this)
                }
                if (this.__pendingValue === a.a) return;
                const e = this.__pendingValue,
                    t = this.value,
                    i = null == e || null != t && (e.capture !== t.capture || e.once !== t.once || e.passive !== t.passive),
                    n = null != e && (null == t || i);
                i && this.element.removeEventListener(this.eventName, this.__boundHandleEvent, this.__options), n && (this.__options = g(e), this.element.addEventListener(this.eventName, this.__boundHandleEvent, this.__options)), this.value = e, this.__pendingValue = a.a
            }
            handleEvent(e) {
                "function" == typeof this.value ? this.value.call(this.eventContext || this.element, e) : this.value.handleEvent(e)
            }
        }
        const g = e => e && (_ ? {
            capture: e.capture,
            passive: e.passive,
            once: e.once
        } : e.capture)
    }, , , , , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return r
        }), i.d(t, "b", function() {
            return n
        });
        /**
         * @license
         * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const r = {},
            n = {}
    }, , , , , , , , , function(e, t) {
        e.exports = function() {
            throw new Error("define cannot be used indirect")
        }
    }, function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return r
        }), i.d(t, "c", function() {
            return n
        }), i.d(t, "b", function() {
            return a
        });
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const r = void 0 !== window.customElements && void 0 !== window.customElements.polyfillWrapFlushCallback,
            n = (e, t, i = null, r = null) => {
                for (; t !== i;) {
                    const i = t.nextSibling;
                    e.insertBefore(t, r), t = i
                }
            },
            a = (e, t, i = null) => {
                for (; t !== i;) {
                    const i = t.nextSibling;
                    e.removeChild(t), t = i
                }
            }
    }, , , , , , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return s
        });
        var r = i(27),
            n = i(23);
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const a = new WeakMap,
            s = Object(n.c)(e => t => {
                if (!(t instanceof n.a)) throw new Error("unsafeHTML can only be used in text bindings");
                const i = a.get(t);
                if (void 0 !== i && Object(r.f)(e) && e === i.value && t.value === i.fragment) return;
                const s = document.createElement("template");
                s.innerHTML = e;
                const o = document.importNode(s.content, !0);
                t.setValue(o), a.set(t, {
                    value: e,
                    fragment: o
                })
            })
    }, , , function(e, t, i) {
        var r = function(e) {
                var t;

                function i(e) {
                    a(!m);
                    var t = v;
                    return v = v + e + 15 & -16, t
                }

                function r(e) {
                    var t;
                    return t || (t = 16), Math.ceil(e / t) * t
                }
                e = e || {}, t || (t = void 0 !== e ? e : {}), t.thisProgram = "criadx2js", t.quit = function() {};
                var n = 0;

                function a(e, t) {
                    e || vt("Assertion failed:" + t)
                }

                function s(e, t, i) {
                    switch ("*" === (i = i || "i8").charAt(i.length - 1) && (i = "i32"), i) {
                        case "i1":
                        case "i8":
                            u[e >> 0] = t;
                            break;
                        case "i16":
                            l[e >> 1] = t;
                            break;
                        case "i32":
                            f[e >> 2] = t;
                            break;
                        case "i64":
                            tempI64 = [t >>> 0, (tempDouble = t, 1 <= +F(tempDouble) ? 0 < tempDouble ? (0 | L(+N(tempDouble / 4294967296), 4294967295)) >>> 0 : ~~+B((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], f[e >> 2] = tempI64[0], f[e + 4 >> 2] = tempI64[1];
                            break;
                        case "float":
                            d[e >> 2] = t;
                            break;
                        case "double":
                            p[e >> 3] = t;
                            break;
                        default:
                            vt("invalid type for setValue:" + i)
                    }
                }
                var o, u, h, l, f, c, d, p, v, m, _, b, g, y, A, w = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0;

                function x(e) {
                    for (var t = h, i = e; t[i];) ++i;
                    if (16 < i - e && t.subarray && w) return w.decode(t.subarray(e, i));
                    for (i = "";;) {
                        var r = t[e++];
                        if (!r) return i;
                        if (128 & r) {
                            var n = 63 & t[e++];
                            if (192 == (224 & r)) i += String.fromCharCode((31 & r) << 6 | n);
                            else {
                                var a = 63 & t[e++];
                                if (224 == (240 & r)) r = (15 & r) << 12 | n << 6 | a;
                                else {
                                    var s = 63 & t[e++];
                                    if (240 == (248 & r)) r = (7 & r) << 18 | n << 12 | a << 6 | s;
                                    else {
                                        var o = 63 & t[e++];
                                        if (248 == (252 & r)) r = (3 & r) << 24 | n << 18 | a << 12 | s << 6 | o;
                                        else r = (1 & r) << 30 | n << 24 | a << 18 | s << 12 | o << 6 | 63 & t[e++]
                                    }
                                }
                                65536 > r ? i += String.fromCharCode(r) : (r -= 65536, i += String.fromCharCode(55296 | r >> 10, 56320 | 1023 & r))
                            }
                        } else i += String.fromCharCode(r)
                    }
                }

                function k(e) {
                    for (var t = 0, i = 0; i < e.length; ++i) {
                        var r = e.charCodeAt(i);
                        55296 <= r && 57343 >= r && (r = 65536 + ((1023 & r) << 10) | 1023 & e.charCodeAt(++i)), 127 >= r ? ++t : t = 2047 >= r ? t + 2 : 65535 >= r ? t + 3 : 2097151 >= r ? t + 4 : 67108863 >= r ? t + 5 : t + 6
                    }
                    var n = t + 1;
                    if (t = it(n), i = u, r = t, 0 < n) {
                        n = r + n - 1;
                        for (var a = 0; a < e.length; ++a) {
                            var s = e.charCodeAt(a);
                            if (55296 <= s && 57343 >= s && (s = 65536 + ((1023 & s) << 10) | 1023 & e.charCodeAt(++a)), 127 >= s) {
                                if (r >= n) break;
                                i[r++] = s
                            } else {
                                if (2047 >= s) {
                                    if (r + 1 >= n) break;
                                    i[r++] = 192 | s >> 6
                                } else {
                                    if (65535 >= s) {
                                        if (r + 2 >= n) break;
                                        i[r++] = 224 | s >> 12
                                    } else {
                                        if (2097151 >= s) {
                                            if (r + 3 >= n) break;
                                            i[r++] = 240 | s >> 18
                                        } else {
                                            if (67108863 >= s) {
                                                if (r + 4 >= n) break;
                                                i[r++] = 248 | s >> 24
                                            } else {
                                                if (r + 5 >= n) break;
                                                i[r++] = 252 | s >> 30, i[r++] = 128 | s >> 24 & 63
                                            }
                                            i[r++] = 128 | s >> 18 & 63
                                        }
                                        i[r++] = 128 | s >> 12 & 63
                                    }
                                    i[r++] = 128 | s >> 6 & 63
                                }
                                i[r++] = 128 | 63 & s
                            }
                        }
                        i[r] = 0
                    }
                    return t
                }
                "undefined" != typeof TextDecoder && new TextDecoder("utf-16le"), v = b = A = 0, m = !1;
                var T = t.TOTAL_STACK || 131072,
                    E = t.TOTAL_MEMORY || 33554432;
                if (E < T && t.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK,was " + E + "!(TOTAL_STACK=" + T + ")"), t.buffer ? o = t.buffer : (o = new ArrayBuffer(E), t.buffer = o), t.HEAP8 = u = new Int8Array(o), t.HEAP16 = l = new Int16Array(o), t.HEAP32 = f = new Int32Array(o), t.HEAPU8 = h = new Uint8Array(o), t.HEAPU16 = new Uint16Array(o), t.HEAPU32 = c = new Uint32Array(o), t.HEAPF32 = d = new Float32Array(o), t.HEAPF64 = p = new Float64Array(o), f[0] = 1668509029, l[1] = 25459, 115 !== h[2] || 99 !== h[3]) throw "Runtime error:expected the system to be little-endian!";

                function S(e) {
                    for (; 0 < e.length;) {
                        var i = e.shift();
                        if ("function" == typeof i) i();
                        else {
                            var r = i.lb;
                            "number" == typeof r ? void 0 === i.oa ? t.dynCall_v(r) : t.dynCall_vi(r, i.oa) : r(void 0 === i.oa ? null : i.oa)
                        }
                    }
                }
                var P = [],
                    I = [],
                    M = [],
                    C = [],
                    O = [],
                    R = !1;

                function D() {
                    var e = t.preRun.shift();
                    P.unshift(e)
                }
                Math.imul && -5 === Math.imul(4294967295, 5) || (Math.imul = function(e, t) {
                    var i = 65535 & e,
                        r = 65535 & t;
                    return i * r + ((e >>> 16) * r + i * (t >>> 16) << 16) | 0
                }), Math.imul = Math.imul, Math.clz32 || (Math.clz32 = function(e) {
                    e >>>= 0;
                    for (var t = 0; 32 > t; t++)
                        if (e & 1 << 31 - t) return t;
                    return 32
                }), Math.clz32 = Math.clz32, Math.trunc || (Math.trunc = function(e) {
                    return 0 > e ? Math.ceil(e) : Math.floor(e)
                }), Math.trunc = Math.trunc;
                var F = Math.abs,
                    B = Math.ceil,
                    N = Math.floor,
                    L = Math.min,
                    U = 0,
                    V = null,
                    X = null;
                t.preloadedImages = {}, t.preloadedAudios = {};
                var j = null;

                function G(e) {
                    return String.prototype.startsWith ? e.startsWith("data:application/octet-stream;base64,") : 0 === e.indexOf("data:application/octet-stream;base64,")
                }
                var $ = [function(e) {
                    t.onErrorEvent(x(e))
                }, function() {
                    t.onAudioProcess()
                }, function(e) {
                    t.onSequenceEvent(e)
                }, function(e) {
                    t.onBeatSync(e)
                }, function(e) {
                    t.onTrackTransition(e)
                }, function(e) {
                    t.onBlockTransition(e)
                }, function() {
                    return h.length
                }, function() {
                    return c[A >> 2]
                }, function(e, t) {
                    return setInterval(function() {
                        at(e)
                    }, t)
                }, function(e) {
                    return clearInterval(e)
                }, function(e, t, i) {
                    var r = "";
                    i = c[i >> 2] >> 2;
                    e: for (var n = "";;) {
                        var a = u[t++ >> 0];
                        if (!a) {
                            t = n;
                            break e
                        }
                        n += String.fromCharCode(a)
                    }
                    for (var s, o = a = 0, h = 0, l = 0, d = 0, v = 0; v < t.length; v++)
                        if ("%" != (n = t[v])) r += n;
                        else
                            for (v++;;)
                                if ("+" == (n = t[v])) a = 1, ++v;
                                else if ("-" == n) o = 1, ++v;
                    else if ("0" == n) h = 1, ++v;
                    else if ("." == n) d = parseInt(t[v + 1]), v += 2;
                    else {
                        if (isNaN(s = parseInt(n))) {
                            switch (n) {
                                case "l":
                                    0, v++;
                                    continue;
                                case "d":
                                    s = f[i], i += 1;
                                    break;
                                case "u":
                                    s = c[i], i += 1;
                                    break;
                                case "x":
                                    s = c[i].toString(16), i += 1;
                                    break;
                                case "X":
                                    s = c[i].toString(16).toUpperCase(), i += 1;
                                    break;
                                case "f":
                                    s = p[i >> 1], i += 2, d && (s = s.toFixed(d));
                                    break;
                                case "s":
                                    s = x(c[i]), i += 1;
                                    break;
                                case "c":
                                case "%":
                                    s = "%"
                            }
                            a && 0 <= s && (s = "+" + s), o ? s = (s + "         ").slice(l) : l && h ? s = ("0000000000" + s).slice(-l) : l && (s = ("         " + s).slice(-l)), r += s;
                            break
                        }
                        l = s, ++v
                    }
                    for (i = r, t = 0; t < i.length; ++t) u[e++ >> 0] = i.charCodeAt(t);
                    return u[e >> 0] = 0, r.length
                }, function(e, t, i) {
                    d[e >> 2] = Math.pow(t, i)
                }, function(e, t) {
                    d[e >> 2] = Math.exp(t)
                }, function(e, t) {
                    d[e >> 2] = Math.pow(2, t)
                }];
                v = 11368, I.push(), j = "data:application/octet-stream;base64, ";
                var H = v;
                v += 16;
                var W, Y, z, q, J, Q, Z, K, ee, te, ie, re, ne, ae, se, oe, ue, he, le, fe = null,
                    ce = [null],
                    de = [],
                    pe = {},
                    ve = 0,
                    me = {},
                    _e = {},
                    be = 0,
                    ge = null,
                    ye = null,
                    Ae = !1,
                    we = !1,
                    xe = [null],
                    ke = [],
                    Te = null,
                    Ee = null;

                function Se() {
                    function e(e, t) {
                        v ? e.value = t : (e.cancelScheduledValues(0), e.setValueAtTime(t, 0), e.va = t)
                    }

                    function t(t, i, r) {
                        var n = fe.sampleRate / 2;
                        (i = Math.min(Math.max(i, 20), n)) > (r = Math.min(Math.max(r, 20), n)) - 10 && (i = r - 10), n = i * Math.pow(2, Math.log(r / i) / Math.log(2) / 2), e(t.frequency, n), e(t.Q, n / (r - i))
                    }

                    function i(e) {
                        e |= 0;
                        var t = new Float32Array(e),
                            i = 0,
                            r = 0;
                        this.process = function(n, a) {
                            for (var s = n.length, o = 0; o < s; o++) {
                                var u = t[i];
                                t[r] = n[o], a[o] = u, ++i >= e && (i = 0), ++r >= e && (r = 0)
                            }
                        }, this.read = function(r) {
                            for (var n = r.length, a = 0; a < n; a++) r[a] = t[i], ++i >= e && (i = 0)
                        }, this.write = function(i) {
                            for (var n = i.length, a = 0; a < n; a++) t[r] = i[a], ++r >= e && (r = 0)
                        }
                    }

                    function r(e, t) {
                        e |= 0;
                        var i = new Float32Array(e),
                            r = 0,
                            n = 1 - t * t;
                        this.process = function(a, s) {
                            for (var o = a.length, u = 0; u < o; u++) {
                                var h = a[u],
                                    l = i[r];
                                i[r] = h + l * t, s[u] = h * -t + l * n, ++r >= e && (r = 0)
                            }
                        }
                    }

                    function n(e, t, i, r, n) {
                        e |= 0;
                        var a = new Float32Array(e),
                            s = 0,
                            o = function(e, t, i) {
                                function r(e, t) {
                                    return {
                                        f: e,
                                        h: t
                                    }
                                }

                                function n(e, t) {
                                    var i = 1 / (t.f * t.f + t.h * t.h);
                                    return {
                                        f: (e.f * t.f + e.h * t.h) * i,
                                        h: (-e.f * t.h + e.h * t.f) * i
                                    }
                                }

                                function a(e, t) {
                                    return {
                                        f: e.f * t.f - e.h * t.h,
                                        h: e.f * t.h + e.h * t.f
                                    }
                                }

                                function s(e, t) {
                                    for (var i = [r(1, 0), r(0, 0), r(0, 0)], n = 1; 2 >= n; n++)
                                        for (var s = n; 0 < s; s--) {
                                            var o = e[n - 1],
                                                u = i[s];
                                            o = a(i[s - 1], {
                                                f: -1 * o.f,
                                                h: -1 * o.h
                                            }), i[s] = {
                                                f: u.f + o.f,
                                                h: u.h + o.h
                                            }
                                        }
                                    return [i[0].f * t, i[1].f * t, i[2].f * t]
                                }
                                var o = Math.PI;
                                t = 1 / (o * (e = 1 / e)) * o * 2 * Math.tan(o * e * t), o = 1 / (o * e) * o * 2 * Math.tan(o * e * i), i = Math.sqrt(t * o);
                                var u = o - t;
                                i = u * u - 4 * i * i, o = Array(2), t = Array(2), 0 < i ? (o[0] = r((-u + Math.sqrt(i)) / 2, 0), o[1] = r((-u - Math.sqrt(i)) / 2, 0)) : (o[0] = r(-u / 2, Math.sqrt(-i) / 2), o[1] = r(-u / 2, -Math.sqrt(-i) / 2)), t[0] = {
                                    f: 0,
                                    h: 0
                                };
                                var h = Array(3);
                                i = Array(3);
                                for (var l = r(u, 0), f = r(e, 0), c = 0; 2 > c; c++) {
                                    u = r(2 - o[c].f * e, -o[c].h * e);
                                    var d = n(f, u);
                                    l = a(l, d), d = r(2 + o[c].f * e, o[c].h * e), h[c] = n(d, u)
                                }
                                for (c = 0; 1 > c; c++) u = r(2 - t[c].f * e, -t[c].h * e), d = n(u, f), l = a(l, d), d = r(2 + t[c].f * e, t[c].h * e), i[c] = n(d, u);
                                return e = l.f, i[1] = r(-1, 0), o = s(h, 1), u = s(i, e), {
                                    I: o,
                                    J: u
                                }
                            }(i, r, n),
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        this.process = function(i, r) {
                            var n = i.length,
                                p = o.I[0],
                                v = o.J[0] / p,
                                m = o.J[1] / p,
                                _ = o.J[2] / p,
                                b = o.I[1] / p;
                            p = o.I[2] / p;
                            for (var g = 0; g < n; g++) u = a[s], f = v * u + m * h + _ * l - b * c - p * d, l = h, h = u, d = c, c = f, a[s] = i[g] + f * t, r[g] = u, ++s >= e && (s = 0)
                        }
                    }

                    function a(e) {
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            a = 0,
                            s = 0;
                        this.process = function(o, u) {
                            var h = o.length,
                                l = e.I[0],
                                f = e.J[0] / l,
                                c = e.J[1] / l,
                                d = e.J[2] / l,
                                p = e.I[1] / l;
                            l = e.I[2] / l;
                            for (var v = 0; v < h; v++) t = o[v], n = f * t + c * i + d * r - p * a - l * s, r = i, i = t, s = a, a = n, u[v] = n
                        }
                    }

                    function u(e, t, i) {
                        var r = Math.max(.8, .001);
                        return t = Math.min(Math.max(t, 10), e / 2 - 100), t = 2 * Math.PI * t / e, e = Math.cos(t), {
                            J: [(i = Math.sqrt(Math.max(i, 1 / 65536))) * (i + 1 - (i - 1) * e + (r = Math.sin(t) / (2 * r) * Math.sqrt(i) * 2)), 2 * i * (i - 1 - (i + 1) * e), i * (i + 1 - (i - 1) * e - r)],
                            I: [i + 1 + (i - 1) * e + r, -2 * (i - 1 + (i + 1) * e), i + 1 + (i - 1) * e - r]
                        }
                    }

                    function h(e, t, i, r) {
                        return i = Math.max(i, .001), t = Math.min(Math.max(t, 10), e / 2 - 100), t = 2 * Math.PI * t / e, e = Math.cos(t), {
                            J: [(r = Math.sqrt(Math.max(r, 1 / 65536))) * (r + 1 + (r - 1) * e + (i = Math.sin(t) / (2 * i) * Math.sqrt(r) * 2)), -2 * r * (r - 1 + (r + 1) * e), r * (r + 1 + (r - 1) * e - i)],
                            I: [r + 1 - (r - 1) * e + i, 2 * (r - 1 - (r + 1) * e), r + 1 - (r - 1) * e - i]
                        }
                    }

                    function l(e, t) {
                        function a(t) {
                            for (var i = (t = t * e / 1e3 | 0) / 2 + 1, r = 3; r < i; r += 2) 0 == t % r && (r = 3, i = ++t / 2 + 1);
                            return t
                        }
                        var s = t[0],
                            o = t[1],
                            u = t[3],
                            h = t[4],
                            l = new i(t[2] * e / 1e3),
                            f = [7.8, 1.31, 6.53, 9.52, 3.75],
                            c = Array(5);
                        for (t = 0; 5 > t; t++) c[t] = new r(f[t] * e / 1e3, .61);
                        f = [1.02410692, .644141894, .700349738, .783537347, .913939545, 1.165750687, 1.397327005, 1.278166375, 1.09268049];
                        var d = [.752851711, 1.02661597, .855513308, 1 + .368821293, .992395437, 1.129277567, 1 - .076045627, .787072243, 1.163498099];
                        o = o / 334 * 1e3;
                        var p = Array(9);
                        for (t = 0; 9 > t; t++) {
                            var v = a(o * f[t]);
                            p[t] = new n(v, Math.pow(.001, 1e3 * v / e / s), e, u * d[t], h * d[t])
                        }
                        var m = new Float32Array(1024);
                        this.process = function(e, t, i) {
                            var r = e.length;
                            l.process(e, e);
                            for (var n = 0; 5 > n; n++) c[n].process(e, e);
                            var a = [1.6, -1.3, 1, -1 / 1.3, .625, 1.4, 1 / 1.4, 1.8, 1 / 1.8],
                                s = [.625, 1 / 1.3, 1, 1.3, 1.6, 1 / 1.4, 1.4, 1 / 1.8, 1.8];
                            for (n = 0; 9 > n; n++) {
                                p[n].process(e, m);
                                for (var o = a[n], u = s[n], h = 0; h < r; h++) t[h] += m[h] * o, i[h] += m[h] * u
                            }
                        }
                    }

                    function f(e, t) {
                        function n(e) {
                            return -1e4 >= e ? 0 : 0 <= e ? 1 : Math.pow(10, .01 * e / 20)
                        }
                        var s = t[0],
                            o = t[2],
                            l = t[3],
                            f = t[4],
                            c = t[6],
                            d = t[7],
                            p = t[8],
                            v = t[9],
                            m = t[10],
                            _ = new a(h(e, m, 1, n(t[1]))),
                            b = new i(t[5] * e),
                            g = [new i(d * e), new i(d * e)];
                        d = [5.43216, 8.45346, 12.4367, 21.5463, 34.3876];
                        var y = [-.83216, .75346, -.6367, -.8763, .7876],
                            A = Array(5);
                        for (t = 0; 5 > t; t++) A[t] = new i(d[t] * e / 1e3);
                        y[0] = .01 * y[0] * p, y[1] = .01 * y[1] * p, p = [60, 71.9345, 86.7545, 95.945];
                        var w = Array(4);
                        for (t = 0; 4 > t; t++) w[t] = new i(p[t] * e / 1e3);
                        p = [7.8, 1.31, 6.53, 3.75];
                        var x = Array(4);
                        for (t = 0; 4 > t; t++) x[t] = new r(p[t] * e / 1e3, .81 * v * .01);
                        v = [.952851711, .870722433, .973384027, .855513308];
                        var k = Array(4);
                        for (t = 0; 4 > t; t++) k[t] = new a(1 > l ? h(e, m, .8, v[t] * l) : u(e, m, v[t] / l));
                        var T = .5 * Math.pow(.001, .1 / o),
                            E = n(s + f),
                            S = n(s + c),
                            P = new Float32Array(1024),
                            I = Array(4);
                        for (t = 0; 4 > t; t++) I[t] = new Float32Array(1024);
                        this.process = function(e, t, i) {
                            var r = e.length;
                            _.process(e, e), b.process(e, e);
                            for (var n = 0; 1024 > n; n++) P[n] = 0;
                            e = [e, P.subarray(0, r)];
                            var a = Array(4);
                            for (n = 0; 4 > n; n++) a[n] = I[n].subarray(0, r);
                            for (n = 0; 5 > n; n++) {
                                for (var s = e[0], o = e[1], u = y[n], h = s.length, l = 0; l < h; l++) {
                                    var f = s[l],
                                        c = o[l];
                                    s[l] = f + c, o[l] = (f - c) * u
                                }
                                A[n].process(e[1], e[1])
                            }
                            for (n = 0; 2 > n; n++) g[n].process(e[n], e[n]);
                            for (n = 0; 4 > n; n++) w[n].read(a[n]);
                            for (n = a[0], s = a[1], o = a[2], u = a[3], h = n.length, l = 0; l < h; l++) {
                                var d = n[l],
                                    p = s[l];
                                c = o[l];
                                var v = u[l];
                                f = d + p, d -= p, p = c + v, c -= v, n[l] = f + p, s[l] = d + c, o[l] = f - p, u[l] = d - c
                            }
                            for (n = 0; 4 > n; n++)
                                for (k[n].process(a[n], a[n]), x[n].process(a[n], a[n]), s = 0; s < r; s++) a[n][s] *= T;
                            for (t = [t, i], n = 0; 2 > n; n++)
                                for (s = 0; s < r; s++) t[n][s] = a[n][s] * S + e[n][s] * E, a[n][s] += e[n][s];
                            for (n = 0; 4 > n; n++) w[n].write(a[n])
                        }
                    }

                    function p(e, t, i) {
                        var r = fe;
                        if (0 == e) e = new l(r.sampleRate, i);
                        else {
                            if (1 != e) return null;
                            e = new f(r.sampleRate, i)
                        }(i = new Float32Array(t))[0] = 1;
                        for (var n = (r = r.createBuffer(2, t, r.sampleRate)).getChannelData(0), a = r.getChannelData(1), s = 0; s < t; s += 1024) {
                            var o = Math.min(t - s, 1024);
                            e.process(i.subarray(s, s + o), n.subarray(s, s + o), a.subarray(s, s + o))
                        }
                        return r
                    }
                    var v = "edge" == ge;
                    W = function() {
                        var e = fe;
                        Ae && e.suspend && "running" === e.state && e.suspend().then(W).catch(Y), !Ae && e.resume && "suspended" === e.state && e.resume().then(W).catch(Y)
                    }, Y = function() {
                        setTimeout(W, 100)
                    }, z = function() {
                        for (var e = fe.currentTime, t = 0; t < ke.length; t++) ke[t].update(e)
                    }, (q = function(e, t) {
                        var i = fe.createAnalyser();
                        i.smoothingTimeConstant = 0, i.fftSize = 1024, this.node = i, this.Aa = 0, this.Za = e / 1e3, this.Ea = 0, this.ib = t / 1e3, this.fa = this.ia = this.K = this.$ = this.Ha = 0
                    }).prototype = {
                        update: function(e) {
                            var t = this.node.fftSize,
                                i = 0,
                                r = 0,
                                n = nt(),
                                a = new Float32Array(o, it(4 * t), t);
                            this.hb(a);
                            for (var s = 0; s < t; s++) {
                                var u = a[s];
                                i += u *= u, u > r && (r = u)
                            }
                            rt(n), this.fa = Math.max(this.fa, r), this.ia += i, (t = e - this.Aa) >= this.Za && (this.$ = Math.sqrt(this.fa), this.Ha = Math.sqrt(this.ia / (t * fe.sampleRate)), this.Aa = e, this.$ > this.K && (this.K = this.$, this.Ea = e), this.ia = this.fa = 0), (t = e - this.Ea) >= this.ib && (this.K += (this.$ - this.K) / 12, 1e-6 > this.K && (this.K = 0))
                        },
                        hb: function(e) {
                            var t = this.node;
                            if (t.getFloatTimeDomainData) t.getFloatTimeDomainData(e);
                            else {
                                var i = t.fftSize,
                                    r = nt(),
                                    n = new Uint8Array(e, it(i), i);
                                for (t.getByteTimeDomainData(n), t = 0; t < i; t++) e[t] = (n[t] - 128) / 128;
                                rt(r)
                            }
                        }
                    };
                    var m = "lowpass highpass notch lowshelf highshelf peaking".split(" ");
                    (J = function(e, t, i) {
                        this.sa = null, this.l = this.i = this.o = !1, this.na = this.F = this.P = this.W = this.U = this.O = this.da = 0, this.C = !1, this.v = this.m = this.u = this.j = 0, this.g = 1, this.D = this.b = this.source = null, this.w = 0, this.c = {
                            node: null,
                            ra: 0,
                            qa: 24e3
                        }, this.a = {
                            node: null,
                            type: 0,
                            T: 0,
                            Q: 1,
                            gain: 1
                        }, this.A = e.createGain(), this.N = new Q(e, t, i), this.ka = new Z(0, 8), this.L()
                    }).prototype = {
                        setData: function(e) {
                            this.b = e
                        },
                        Va: function(e, t, i) {
                            this.U = e, this.w = t, this.D = i, this.source && this.L()
                        },
                        L: function() {
                            this.source && (this.source.disconnect(), this.source = this.source.onended = null), this.a.node && (this.a.node.disconnect(), this.a.node = null), this.c.node && (this.c.node.disconnect(), this.c.node = null), this.D && (this.D.node && (this.D.node.disconnect(), this.D.node = null), this.D = null), this.A.gain.cancelScheduledValues(0), this.A.disconnect(), this.A.next = null, this.N.c(), this.ka.b(this.N.b), this.b = null, this.i = this.o = !1
                        },
                        Ua: function(e) {
                            this.da = e, this.za()
                        },
                        za: function() {
                            this.b && e(this.source.playbackRate, this.l ? 1e-8 : +this.da / this.b.M)
                        },
                        start: function() {
                            if (!this.o) {
                                var e = this.b,
                                    t = this.U,
                                    i = this.source = fe.createBufferSource();
                                i.buffer = e.buffer;
                                var r = this.w;
                                switch (r) {
                                    case -1:
                                        r = e.Z ? Number.POSITIVE_INFINITY : 0;
                                        break;
                                    case -2:
                                        r = 0;
                                        break;
                                    case -3:
                                        r = Number.POSITIVE_INFINITY
                                }
                                0 < r && (i.loop = !0, i.loopStart = e.loopStart, i.loopEnd = e.loopEnd, t >= e.loopEnd && (t = e.loopStart + (t - e.loopStart) % (e.loopEnd - e.loopStart))), this.w = r, t += e.offset, i.onended = function() {
                                    this.L()
                                }.bind(this), r = i, this.D && (r.connect(this.D.node), r = this.D.node), r.connect(this.A), this.ya(), this.za();
                                var n = r = fe.currentTime + this.O,
                                    a = this.A.gain;
                                this.W = 0, this.i = !1, this.o = !0, this.F = this.na = n, this.C ? (0 < this.j ? (a.setValueAtTime(0, r), r += this.j, a.linearRampToValueAtTime(1, r)) : a.setValueAtTime(1, r), 0 < this.u && (r += this.u), 0 < this.m && (a.setValueAtTime(1, r), r += this.m, a.linearRampToValueAtTime(this.g, r))) : a.setValueAtTime(1, n), i.loop ? i.start(n, t) : i.start(n, t, e.duration)
                            }
                        },
                        stop: function() {
                            this.o && (this.l || this.i ? (this.ha(!1), this.l = !1) : this.ha(this.C))
                        },
                        ha: function(e) {
                            var t = fe.currentTime;
                            this.A.gain.cancelScheduledValues(0), this.A.gain.setValueAtTime(this.gb(), t), this.na = t, t += e ? this.v : .02, this.A.gain.linearRampToValueAtTime(0, t), this.source.stop(t), this.P = t, e ? this.i = !0 : this.o = !1
                        },
                        update: function() {
                            var e = fe.currentTime;
                            if (this.o && !this.l) {
                                var t = this.b,
                                    i = e - this.F;
                                0 <= i && (this.W += i * this.da), this.source && this.source.loop && ((this.W / t.M - t.loopStart) / (t.loopEnd - t.loopStart) | 0) >= this.w && (this.source.loop = !1)
                            }
                            this.F = e, this.i && e >= this.P && this.L()
                        },
                        gb: function() {
                            var e = Math.max(0, fe.currentTime - this.na);
                            return this.l ? 0 : this.i ? e < this.v ? this.g * (1 - e / this.v) : 0 : e < this.j ? e / this.j : (e -= this.j) < this.u ? 1 : (e -= this.u) < this.m ? 1 - (1 - this.g) * e / this.m : this.g
                        },
                        pause: function(e) {
                            if (this.o && e != this.l)
                                if (this.i) this.ha(!1);
                                else {
                                    this.l = e;
                                    var t = this.A.gain;
                                    if (e) {
                                        e = this.g;
                                        var i = 0
                                    } else e = 0, i = this.g;
                                    var r = fe.currentTime;
                                    t.cancelScheduledValues(0), t.setValueAtTime(e, r), t.linearRampToValueAtTime(i, r + .02), this.za()
                                }
                        },
                        getTime: function(e, t) {
                            this.b && (s(e, this.W, "i64"), s(t, this.b.M, "i32"))
                        },
                        Sa: function(t, i, r) {
                            var n = this.o,
                                a = this.N.a;
                            t = 0 | Math.min(t, a.length / 2), i = 0 | Math.min(i, 2);
                            for (var s = fe.currentTime + .01, o = 0; o < t; o++)
                                for (var u = c[(r >> 2) + o], h = 0; h < i; h++) {
                                    var l = d[(u >> 2) + h],
                                        f = a[2 * o + h].gain;
                                    if (n) {
                                        var p = s;
                                        v ? f.value = l : (f.linearRampToValueAtTime(null == f.va ? 0 : f.va, p), f.linearRampToValueAtTime(l, p + .01), f.va = l)
                                    } else e(f, l)
                                }
                        },
                        Ta: function(e) {
                            this.O = e
                        },
                        Qa: function(e) {
                            this.C = e, !e && this.i && this.ha(!1)
                        },
                        Ra: function(e, t) {
                            switch (e) {
                                case 0:
                                    this.j = .001 * t;
                                    break;
                                case 1:
                                    this.u = .001 * t;
                                    break;
                                case 2:
                                    this.m = .001 * t;
                                    break;
                                case 3:
                                    this.v = .001 * t;
                                    break;
                                case 4:
                                    this.g = t
                            }
                        },
                        Ia: function(e) {
                            e ? this.a.node || (this.a.node = fe.createBiquadFilter()) : this.a.node = null, this.ya()
                        },
                        Ma: function(e) {
                            this.a.type = e
                        },
                        Ja: function(e) {
                            this.a.T = e
                        },
                        La: function(e) {
                            this.a.Q = e
                        },
                        Ka: function(e) {
                            this.a.gain = e
                        },
                        Wa: function() {
                            var t = this.a,
                                i = t.node;
                            e(i.frequency, Math.min(Math.max(t.T, 20), fe.sampleRate / 2)), e(i.Q, t.Q), e(i.gain, t.gain), i.type = m[t.type]
                        },
                        Na: function(e) {
                            e ? this.c.node || (this.c.node = fe.createBiquadFilter(), this.c.node.type = "bandpass") : this.c.node = null, this.ya()
                        },
                        Pa: function(e) {
                            this.c.ra = e
                        },
                        Oa: function(e) {
                            this.c.qa = e
                        },
                        Xa: function() {
                            t(this.c.node, this.c.ra, this.c.qa)
                        },
                        Ga: function() {
                            this.a.type = 0, this.a.T = 0, this.a.Q = 1, this.a.gain = 1, this.c.ra = 0, this.c.qa = 24e3, this.C = !1, this.v = this.m = this.u = this.j = 0, this.g = 1, this.O = 0
                        },
                        ya: function() {
                            var e = this.A,
                                t = this.a.node;
                            t && (e.next !== t && (e.disconnect(), e.connect(t), e.next = t), e = t), (t = this.c.node) && (e.next !== t && (e.disconnect(), e.connect(t), e.next = t), e = t), t = this.N.split, e.next !== t && (e.disconnect(), e.connect(t), e.next = t)
                        },
                        ga: function(e, t) {
                            this.ka.set(e, t, this.N.b)
                        },
                        aa: function() {
                            var e = this.N.b;
                            this.ka.b(e), e.disconnect()
                        }
                    }, (K = function(e, t) {
                        this.a = [], this.input = e.createGain(), this.g = e.createGain(), this.output = null, this.c = [], t || (this.b = new Z(0, 8)), this.update()
                    }).prototype = {
                        cb: function(e) {
                            this.a.push(e)
                        },
                        Da: function() {
                            for (var e in this.input.disconnect(), this.input.next = null, this.a) {
                                var t = this.a[e];
                                t.output.disconnect(), t.output.next = null
                            }
                            this.a.length = 0, this.update()
                        },
                        ua: function(e) {
                            for (var t in this.a) {
                                var i = this.a[t];
                                if (i.id == e) return i
                            }
                        },
                        update: function() {
                            var e, t = this.input;
                            for (e in this.a) {
                                var i = this.a[e];
                                i.s ? t.next && (t.disconnect(t.next), t.next = null) : t.next !== i.input && (t.next && t.disconnect(t.next), t.connect(i.input), t.next = i.input, t = i.output)
                            }
                            for (e in t.connect(this.g), t = t.next = this.g, this.c) i = this.c[e], t.next !== i.node && (t.disconnect(), t.connect(i.node), t.next = i.node), t = i.node;
                            if (this.output !== t)
                                if (t.disconnect(), this.output = t, this.b)
                                    for (e in this.b.a)(i = this.b.a[e]) && t.connect(i);
                                else t.connect(fe.destination)
                        },
                        kb: function(t) {
                            e(this.g.gain, t)
                        },
                        ga: function(e, t) {
                            this.b && this.b.set(e, t, this.output)
                        },
                        aa: function() {
                            this.b && this.b.b(this.output)
                        },
                        bb: function(e) {
                            this.c.push(e), this.update()
                        },
                        fb: function(e) {
                            0 <= (e = this.c.indexOf(e)) && (this.c.splice(e, 1), this.update())
                        }
                    }, (Q = function(e, t, i) {
                        this.split = e.createChannelSplitter(t), this.b = e.createChannelMerger(i), this.a = Array(t * i);
                        for (var r = 0; r < t; r++)
                            for (var n = 0; n < i; n++) {
                                var a = e.createGain();
                                this.split.connect(a, r, 0), a.connect(this.b, 0, n), this.a[r * i + n] = a
                            }
                    }).prototype = {
                        c: function() {
                            for (var t = 0; t < this.a.length; t++) e(this.a[t].gain, 0)
                        }
                    }, (Z = function(e, t) {
                        this.a = Array(t), this.c = Array(t), this.b()
                    }).prototype = {
                        b: function(e) {
                            for (var t in this.a) {
                                var i = this.a[t];
                                i && (i.disconnect(), e.disconnect(i))
                            }
                            this.c.fill(-1), this.a.fill(null)
                        },
                        set: function(e, t, i) {
                            var r = this.c.indexOf(e);
                            if (-1 == r) {
                                if (0 >= t) return;
                                if (0 > (r = this.c.indexOf(-1))) return;
                                this.a[r] || (this.a[r] = fe.createGain()), this.c[r] = e, e < de.length && this.a[r].connect(de[e].input), i.connect(this.a[r])
                            }(e = this.a[r]).gain.cancelScheduledValues(0), e.gain.setValueAtTime(t, fe.currentTime)
                        }
                    }, (ee = function(e) {
                        this.id = 0, this.s = !1, this.output = this.input = this.c = e.createConvolver(), this.a = !0, this.b = [3e3, 10, 100, 0, 8e3]
                    }).prototype = {
                        G: function(e, t) {
                            this.b[e] != t && (this.a = !0, this.b[e] = t)
                        },
                        update: function() {
                            if (this.a) {
                                var e = this.b;
                                this.c.buffer = p(0, (e[0] + e[2]) * fe.sampleRate / 1e3 | 0, e), this.a = !1
                            }
                        }
                    }, (te = function(e) {
                        this.id = 2, this.s = !1, this.output = this.input = this.c = e.createConvolver(), this.a = !0, this.b = [-1e3, -100, 1.49, .83, -2602, .007, 200, .011, 100, 100, 5e3]
                    }).prototype = {
                        G: function(e, t) {
                            this.b[e] != t && (this.a = !0, this.b[e] = t)
                        },
                        update: function() {
                            if (this.a) {
                                var e = this.b;
                                this.c.buffer = p(1, (e[5] + e[7] + e[2]) * fe.sampleRate | 0, e), this.a = !1
                            }
                        }
                    }, (ie = function(e) {
                        this.id = 1, this.s = !1, this.a = e.createDelay(1), this.S = e.createGain(), this.a.connect(this.S), this.S.connect(this.a), this.output = this.input = this.a, this.b = {
                            delayTime: 300,
                            S: .5
                        }
                    }).prototype = {
                        G: function(e, t) {
                            switch (e) {
                                case 0:
                                    this.b.delayTime = t;
                                    break;
                                case 1:
                                    this.b.S = t
                            }
                        },
                        update: function() {
                            e(this.a.delayTime, Math.min(Math.max(.001 * this.b.delayTime, .1), 1)), e(this.S.gain, this.b.S)
                        }
                    }, (re = function(e) {
                        this.id = 3, this.s = !1, this.output = this.input = this.a = e.createDelay(1), this.b = {
                            delayTime: 300
                        }
                    }).prototype = {
                        G: function(e, t) {
                            switch (e) {
                                case 0:
                                    this.b.delayTime = t
                            }
                        },
                        update: function() {
                            e(this.a.delayTime, Math.min(Math.max(.001 * this.b.delayTime, .1), 1))
                        }
                    }, (ne = function(e) {
                        this.id = 4, this.s = !1, this.output = this.input = this.b = e.createBiquadFilter(), this.a = {
                            Ca: 0,
                            Ba: 24e3
                        }
                    }).prototype = {
                        G: function(e, t) {
                            switch (e) {
                                case 0:
                                    this.a.Ca = t;
                                    break;
                                case 1:
                                    this.a.Ba = t
                            }
                        },
                        update: function() {
                            t(this.b, this.a.Ca, this.a.Ba)
                        }
                    }, (ae = function(e) {
                        this.id = 5, this.s = !1, this.output = this.input = this.b = e.createBiquadFilter(), this.a = {
                            type: 0,
                            T: 8e3,
                            q: 1,
                            gain: 1
                        }
                    }).prototype = {
                        G: function(e, t) {
                            switch (e) {
                                case 0:
                                    this.a.type = t;
                                    break;
                                case 1:
                                    this.a.T = t;
                                    break;
                                case 2:
                                    this.a.q = t;
                                    break;
                                case 3:
                                    this.a.gain = t
                            }
                        },
                        update: function() {
                            this.b.type = m[this.a.type], e(this.b.frequency, this.a.T), e(this.b.Q, this.a.q), e(this.b.gain, this.a.gain)
                        }
                    }, (se = function(e) {
                        this.id = 6, this.s = !1, this.a = [];
                        for (var t = 0; 3 > t; t++) this.a.push(e.createBiquadFilter());
                        for (t = 0; t < this.a.length - 1; t++) this.a[t].connect(this.a[t + 1]);
                        this.input = this.a[0], this.output = this.a[this.a.length - 1], this.b = Array(12)
                    }).prototype = {
                        G: function(e, t) {
                            this.b[e] = t
                        },
                        update: function() {
                            for (var t = this.b, i = 0; 3 > i; i++) {
                                var r = this.a[i];
                                r.type = m[t[4 * i]], e(r.frequency, t[4 * i + 1]), e(r.Q, t[4 * i + 2]), e(r.gain, t[4 * i + 3])
                            }
                        }
                    }, (oe = function(t) {
                        this.id = 7, this.s = !1, this.a = t.createDynamicsCompressor(), this.gain = t.createGain(), e(this.a.knee, 0), this.input = this.a, this.output = this.gain, this.a.connect(this.gain), this.b = Array(9)
                    }).prototype = {
                        G: function(e, t) {
                            this.b[e] = t
                        },
                        update: function() {
                            var t = this.b,
                                i = this.a,
                                r = this.gain;
                            e(i.threshold, 20 * Math.log10(t[0])), e(i.ratio, Math.min(20, t[1])), e(i.attack, Math.min(1, .001 * t[2])), e(i.release, Math.min(1, .001 * t[3])), e(r.gain, t[4])
                        }
                    }, (ue = function(e) {
                        this.id = 8, this.s = !1, this.a = e.createDynamicsCompressor(), this.gain = e.createGain(), s(this.a.knee, 0), s(this.a.ratio, 20), this.input = this.a, this.output = this.gain, this.a.connect(this.gain), this.b = Array(6)
                    }).prototype = {
                        G: function(e, t) {
                            this.b[e] = t
                        },
                        update: function() {
                            var t = this.b,
                                i = this.a,
                                r = this.gain;
                            e(i.threshold, 20 * Math.log10(t[0])), e(i.attack, Math.min(1, .001 * t[2])), e(i.release, Math.min(1, .001 * t[3])), e(r.gain, t[4])
                        }
                    }, he = function() {
                        this.id = 0, this.url = this.buffer = null, this.error = !1, this.duration = this.offset = 0, this.Z = !1, this.loopEnd = this.loopStart = 0
                    }
                }

                function Pe() {
                    if (!we) {
                        if ("iOS" == ye || "android" == ye) {
                            var e = fe.createBufferSource();
                            e.connect(fe.destination), e.start(0), setTimeout(function() {
                                e.disconnect(), e = null
                            }, 100)
                        }
                        Ae || "suspended" !== fe.state || fe.resume(), we = !0
                    }
                    Ie()
                }

                function Ie() {
                    "iOS" == ye ? window.addEventListener("touchstart", Pe) : (window.removeEventListener("touchend", Pe), window.removeEventListener("click", Pe), window.removeEventListener("keydown", Pe)), window.removeEventListener("unload", Ie)
                }

                function Me(e) {
                    var t = e.data;
                    if ("decoded" === t.type) {
                        e = pe[t.id];
                        var i = t.data,
                            r = t.numChannels,
                            n = t.samplingRate,
                            a = t.loopStart;
                        t = t.loopEnd, e.buffer = fe.createBuffer(r, i[0].length, n);
                        for (var s = 0; s < r; s++) e.buffer.copyToChannel(i[s], s);
                        e.M = n, e.ea = i[0].length, e.duration = +e.ea / n, a < t ? (e.Z = !0, e.loopStart = a / n, e.loopEnd = t / n) : (e.loopStart = 0, e.loopEnd = e.duration), e.R && ot(e.R, e.pa, 1)
                    } else "decode-error" === t.type && ((e = pe[t.id]).error = !0, e.R && ot(e.R, e.pa, 0))
                }

                function Ce() {
                    for (var e in Ee = !0, pe) {
                        var t = pe[e];
                        t.error = !0, t.R && ot(t.R, t.pa, 0)
                    }
                }

                function Oe(e, t, i, r, n, a, s, o, u, l) {
                    i = h.buffer.slice(t, t + i);
                    var f = new he;
                    f.M = r, f.ea = n;
                    var c = ++ve;
                    return f.id = c, f.jb = t, pe[c] = f, 0 < e && _e[e].push(f), 72 === (e = new Uint8Array(i))[0] && 67 === e[1] && 65 === e[2] && 0 === e[3] ? (Te || Ee || ((Te = new Worker("criadx2.worker.js")).onmessage = Me, Te.onerror = Ce), f.R = u, f.pa = l, Te ? Te.postMessage({
                        type: "decode",
                        id: c,
                        data: i
                    }) : (f.error = !0, u && ot(u, l, 0))) : ("safari" == ge && (a = 0), "firefox" == ge && "macOS" == ye && 5186 == a && (a = 962), f.offset = +a / r, s < o ? (f.Z = !0, f.loopStart = +(a + s) / r, f.loopEnd = +(a + o) / r) : (f.loopStart = +a / r, f.loopEnd = +(a + n) / r), f.duration = +n / r, fe ? fe.decodeAudioData(i, function(e) {
                        f.buffer = e, 0 == n && (f.offset = 0, f.duration = e.duration), u && ot(u, l, 1)
                    }, function() {
                        f.error = !0, u && ot(u, l, 0)
                    }) : (f.url = URL.createObjectURL(new Blob([i])), u && ot(u, l, 1))), c
                }
                var Re, De, Fe, Be = [8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0],
                    Ne = void 0;
                if ("number" == typeof Be ? (Re = !0, De = Be) : (Re = !1, De = Be.length), Fe = i(Math.max(De, 1)), Re) {
                    var Le;
                    for (Ne = Fe, a(0 == (3 & Fe)), Le = Fe + (-4 & De); Ne < Le; Ne += 4) f[Ne >> 2] = 0;
                    for (Le = Fe + De; Ne < Le;) u[Ne++ >> 0] = 0
                } else Be.subarray || Be.slice ? h.set(Be, Fe) : h.set(new Uint8Array(Be), Fe);
                var Ue, Ve, Xe, je, Ge, $e, He, We, Ye, ze = !1,
                    qe = {},
                    Je = {},
                    Qe = 0;

                function Ze() {
                    vt()
                }
                Ze = "undefined" != typeof dateNow ? dateNow : "object" == typeof self && self.performance && "function" == typeof self.performance.now ? function() {
                    return self.performance.now()
                } : "object" == typeof performance && "function" == typeof performance.now ? function() {
                    return performance.now()
                } : Date.now, A = i(4), _ = b = r(v), y = r(g = _ + T), f[A >> 2] = y, m = !0;
                var Ke = "function" == typeof atob ? atob : function(e) {
                    var t = "",
                        i = 0;
                    e = e.replace(/[^A-Za-z0-9\+\/=]/g, "");
                    do {
                        var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e.charAt(i++)),
                            n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e.charAt(i++)),
                            a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e.charAt(i++)),
                            s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e.charAt(i++));
                        r = r << 2 | n >> 4, n = (15 & n) << 4 | a >> 2;
                        var o = (3 & a) << 6 | s;
                        t += String.fromCharCode(r), 64 !== a && (t += String.fromCharCode(n)), 64 !== s && (t += String.fromCharCode(o))
                    } while (i < e.length);
                    return t
                };

                function et(e) {
                    if (G(e)) {
                        e = e.slice(37);
                        try {
                            var t = Ke(e),
                                i = new Uint8Array(t.length);
                            for (e = 0; e < t.length; ++e) i[e] = t.charCodeAt(e)
                        } catch (e) {
                            throw Error("Converting base64 string to bytes failed.")
                        }
                        return i
                    }
                }
                t.$a = {
                    Math: Math,
                    Int8Array: Int8Array,
                    Int16Array: Int16Array,
                    Int32Array: Int32Array,
                    Uint8Array: Uint8Array,
                    Uint16Array: Uint16Array,
                    Uint32Array: Uint32Array,
                    Float32Array: Float32Array,
                    Float64Array: Float64Array,
                    NaN: NaN,
                    Infinity: 1 / 0
                }, t.ab = {
                    abort: vt,
                    assert: a,
                    enlargeMemory: function() {
                        return !1
                    },
                    getTotalMemory: function() {
                        return E
                    },
                    invoke_i: function(e) {
                        try {
                            return t.dynCall_i(e)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_ii: function(e, i) {
                        try {
                            return t.dynCall_ii(e, i)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_iii: function(e, i, r) {
                        try {
                            return t.dynCall_iii(e, i, r)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_iiii: function(e, i, r, n) {
                        try {
                            return t.dynCall_iiii(e, i, r, n)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_iiiii: function(e, i, r, n, a) {
                        try {
                            return t.dynCall_iiiii(e, i, r, n, a)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_iiiiiii: function(e, i, r, n, a, s, o) {
                        try {
                            return t.dynCall_iiiiiii(e, i, r, n, a, s, o)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_iiiiiiiiii: function(e, i, r, n, a, s, o, u, h, l) {
                        try {
                            return t.dynCall_iiiiiiiiii(e, i, r, n, a, s, o, u, h, l)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_v: function(e) {
                        try {
                            t.dynCall_v(e)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_vi: function(e, i) {
                        try {
                            t.dynCall_vi(e, i)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_vid: function(e, i, r) {
                        try {
                            t.dynCall_vid(e, i, r)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_vii: function(e, i, r) {
                        try {
                            t.dynCall_vii(e, i, r)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viid: function(e, i, r, n) {
                        try {
                            t.dynCall_viid(e, i, r, n)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viii: function(e, i, r, n) {
                        try {
                            t.dynCall_viii(e, i, r, n)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viiid: function(e, i, r, n, a) {
                        try {
                            t.dynCall_viiid(e, i, r, n, a)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viiii: function(e, i, r, n, a) {
                        try {
                            t.dynCall_viiii(e, i, r, n, a)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viiiii: function(e, i, r, n, a, s) {
                        try {
                            t.dynCall_viiiii(e, i, r, n, a, s)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viiiiii: function(e, i, r, n, a, s, o) {
                        try {
                            t.dynCall_viiiiii(e, i, r, n, a, s, o)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    invoke_viiiiiii: function(e, i, r, n, a, s, o, u) {
                        try {
                            t.dynCall_viiiiiii(e, i, r, n, a, s, o, u)
                        } catch (e) {
                            if ("number" != typeof e && "longjmp" !== e) throw e;
                            t.setThrew(1, 0)
                        }
                    },
                    _WAJS_AttachBusFilterNode: function(e, t) {
                        fe && (e = de[e], t = xe[t], e && t && e.bb(t))
                    },
                    _WAJS_AttachDspFx: function(e, t) {
                        if (fe && (e = de[e])) {
                            var i = null;
                            switch (t) {
                                case 0:
                                    i = new ee(fe);
                                    break;
                                case 1:
                                    i = new ie(fe);
                                    break;
                                case 2:
                                    i = new te(fe);
                                    break;
                                case 3:
                                    i = new re(fe);
                                    break;
                                case 4:
                                    i = new ne(fe);
                                    break;
                                case 5:
                                    i = new ae(fe);
                                    break;
                                case 6:
                                    i = new se(fe);
                                    break;
                                case 7:
                                    i = new oe(fe);
                                    break;
                                case 8:
                                    i = new ue(fe)
                            }
                            i && e.cb(i)
                        }
                    },
                    _WAJS_CreateAnalyzer: function(e, t) {
                        return fe ? (e = new q(e, t), 0 > (t = xe.indexOf(null, 1)) ? t = xe.push(e) - 1 : xe[t] = e, ke.push(e), t) : 0
                    },
                    _WAJS_CreateBank: function() {
                        var e = ++be;
                        return _e[e] = [], e
                    },
                    _WAJS_CreateVoice: function(e) {
                        e = new J(fe, e, 2);
                        var t = ce.indexOf(null, 1);
                        return 0 <= t ? ce[t] = e : t = ce.push(e) - 1, t
                    },
                    _WAJS_DestroyAnalyzer: function(e) {
                        if (fe) {
                            var t = xe[e];
                            t && (xe[e] = null, 0 <= (e = ke.indexOf(t)) && ke.splice(e, 1))
                        }
                    },
                    _WAJS_DestroyBank: function(e) {
                        for (var t = _e[e], i = 0; i < t.length; i++) {
                            var r = pe[t[i].id];
                            r.url && URL.revokeObjectURL(r.url), delete pe[r.id], delete me[r.jb]
                        }
                        delete _e[e]
                    },
                    _WAJS_DestroyVoice: function(e) {
                        ce[e] = null
                    },
                    _WAJS_DetachBusFilterNode: function(e, t) {
                        fe && (e = de[e], t = xe[t], e && t && e.fb(t))
                    },
                    _WAJS_ExecuteMain: function() {
                        z && z()
                    },
                    _WAJS_Finalize: function() {
                        for (var e in ce.length = 1, pe = {}, de) {
                            var t = de[e];
                            t.Da(), t.aa()
                        }
                        de.length = 0, delete(e = le).audioBuses, delete e.audioContext
                    },
                    _WAJS_GetAnalyzedLevel: function(e, t, i, r) {
                        return fe && (e = xe[e]) ? (d[t >> 2] = e.Ha, d[i >> 2] = e.$, d[r >> 2] = e.K, 1) : 0
                    },
                    _WAJS_GetAudioTime: function(e) {
                        return fe ? (f[e >> 2] = fe.sampleRate, fe.currentTime) : 0
                    },
                    _WAJS_GetBufferFormat: function(e, t, i, r) {
                        if (e = pe[e]) {
                            if (!fe) return f[t >> 2] = e.M, f[i >> 2] = 2, f[r >> 2] = e.ea, !0;
                            if (e.buffer) return f[t >> 2] = e.M, f[i >> 2] = e.buffer.numberOfChannels, f[r >> 2] = e.ea, !0
                        }
                        return !1
                    },
                    _WAJS_GetBufferStatus: function(e) {
                        return (e = pe[e]) ? fe ? e.buffer ? 1 : e.error ? 2 : 0 : 1 : -1
                    },
                    _WAJS_GetDecoder: function(e) {
                        return ce[e].sa
                    },
                    _WAJS_GetPreloadBuffer: function(e) {
                        return (e = me[e]) ? e.id : 0
                    },
                    _WAJS_GetTime: function(e, t, i) {
                        ce[e].getTime(t, i)
                    },
                    _WAJS_Initialize: function() {
                        var e = le = t.CriNcItf = t.CriNcItf || {},
                            i = navigator.userAgent.toLowerCase();
                        ge = i.match(/msie|trident/) ? "msie" : i.match(/edge/) ? "edge" : i.match(/vivaldi/) ? "vivaldi" : i.match(/opera/) ? "opera" : i.match(/chrome/) ? "chrome" : i.match(/firefox/) ? "firefox" : i.match(/safari/) ? "safari" : "n/a", ye = i.match(/iphone|ipad/) ? "iOS" : i.match(/android/) ? "android" : i.match(/win/) ? "windows" : i.match(/mac/) ? "macOS" : i.match(/linux/) ? "linux" : "n/a";
                        var r = window.AudioContext || window.webkitAudioContext;
                        if (r ? Se() : (W = function() {
                                if (Ae)
                                    for (var e in ce) ce[e].audio && ce[e].audio.pause();
                                else
                                    for (e in ce) ce[e].audio && ce[e].audio.play()
                            }, (J = function() {
                                this.sa = null, this.l = this.i = this.o = !1, this.F = this.P = this.H = this.U = this.O = this.da = 0, this.C = this.ba = !1, this.v = this.m = this.u = this.j = 0, this.B = this.g = 1, this.b = this.audio = null, this.V = this.w = this.volume = 0, this.la = this.ma = null
                            }).prototype = {
                                setData: function(e) {
                                    this.b = e
                                },
                                Va: function(e, t) {
                                    this.U = e, this.w = t, this.V = 0
                                },
                                L: function() {
                                    this.audio && (this.audio.removeEventListener("ended", this.ma), this.audio.removeEventListener("canplay", this.la), this.audio = this.la = this.ma = null), this.i = this.ba = this.o = !1, this.B = 1
                                },
                                Ua: function() {},
                                start: function() {
                                    if (!this.o) {
                                        var e = this.b,
                                            t = this.w;
                                        switch (t) {
                                            case -1:
                                                t = e.Z ? Number.POSITIVE_INFINITY : 0;
                                                break;
                                            case -2:
                                                t = 0;
                                                break;
                                            case -3:
                                                t = Number.POSITIVE_INFINITY
                                        }
                                        this.w = t, this.audio = t = new Audio, t.src = e.url, t.volume = this.volume * this.B, t.addEventListener("ended", this.ma = this.onended.bind(this)), t.addEventListener("canplay", this.la = this.Ya.bind(this)), this.F = this.H = 0, this.o = !0, t.load()
                                    }
                                },
                                onended: function() {
                                    this.V < this.w ? (this.audio.currentTime = this.b.loopStart, this.audio.play(), this.V++) : this.L()
                                },
                                Ya: function() {
                                    var e = this.audio;
                                    if (e) {
                                        var t = this.b,
                                            i = this.U;
                                        0 < this.w && i >= t.loopEnd && (i = t.loopStart + (i - t.loopStart) % (t.loopEnd - t.loopStart)), this.ba = !0, this.F = e.currentTime = i, this.l || Ae || e.play()
                                    }
                                },
                                stop: function() {
                                    this.l && this.X(), this.C && 0 < this.v ? (this.i = !0, this.P = this.H + this.v) : this.X()
                                },
                                X: function() {
                                    this.audio && this.audio.pause(), this.L()
                                },
                                update: function() {
                                    var e = this.audio;
                                    if (e && this.ba) {
                                        var t = this.b,
                                            i = e.currentTime;
                                        this.H += Math.max(0, i - this.F), this.F = i, this.C && (this.i ? this.H >= this.P ? this.X() : (this.B = (this.P - this.H) / this.v * this.g, e.volume = this.volume * this.B) : ((i = this.H) < this.j ? this.B = i / this.j : (i -= this.j) < this.u ? this.B = 1 : (i -= this.u) < this.m ? this.B = (1 - i / this.m) * (1 - this.g) + this.g : this.B = this.g, e.volume = this.volume * this.B)), this.V < this.w && e.currentTime > t.loopEnd && (this.F = e.currentTime = t.loopStart, this.V++)
                                    }
                                },
                                pause: function(e) {
                                    this.l = e;
                                    var t = this.audio;
                                    t && (this.i ? this.X(!1) : this.ba && (e ? t.pause() : t.play()))
                                },
                                getTime: function(e, t) {
                                    if (this.b) {
                                        var i = this.b.M;
                                        s(e, this.H * i, "i64"), s(t, i, "i32")
                                    }
                                },
                                Sa: function(e, t, i) {
                                    t = c[0 + (i >> 2)], i = c[1 + (i >> 2)];
                                    var r = d[0 + (t >> 2)];
                                    if (t = d[1 + (t >> 2)], t = Math.sqrt(r * r + t * t), 1 == e) var n = t;
                                    else 2 == e && (e = d[0 + (i >> 2)], n = d[1 + (i >> 2)], n = Math.max(t, Math.sqrt(e * e + n * n)));
                                    this.volume = Math.min(1, n), this.audio && (this.audio.volume = this.volume * this.B)
                                },
                                Ta: function(e) {
                                    this.O = e
                                },
                                Qa: function(e) {
                                    this.C = e, !e && this.i && this.X()
                                },
                                Ra: function(e, t) {
                                    switch (e) {
                                        case 0:
                                            this.j = .001 * t;
                                            break;
                                        case 1:
                                            this.u = .001 * t;
                                            break;
                                        case 2:
                                            this.m = .001 * t;
                                            break;
                                        case 3:
                                            this.v = .001 * t;
                                            break;
                                        case 4:
                                            this.g = t
                                    }
                                },
                                Ia: function() {},
                                Ma: function() {},
                                Ja: function() {},
                                La: function() {},
                                Ka: function() {},
                                Wa: function() {},
                                Na: function() {},
                                Pa: function() {},
                                Oa: function() {},
                                Xa: function() {},
                                Ga: function() {
                                    this.C = !1, this.v = this.m = this.u = this.j = 0, this.g = 1, this.O = 0
                                },
                                ga: function() {},
                                aa: function() {}
                            }, he = function() {
                                this.id = 0, this.url = null, this.error = !1, this.duration = this.offset = 0, this.Z = !1, this.loopEnd = this.loopStart = 0
                            }), r) {
                            if (i = fe || e.audioContext || new r, "iOS" == ye && 48e3 === i.sampleRate) {
                                var n = i.createBufferSource();
                                n.buffer = i.createBuffer(1, 1, 44100), n.connect(i.destination), n.start(0), i.close && i.close(), i = new r
                            }
                            for (fe = e.audioContext = i, r = 0; 8 > r; r++) de.push(new K(i, 0 === r));
                            e.audioBuses = de, we = !1, "iOS" == ye ? window.addEventListener("touchstart", Pe) : (window.addEventListener("touchend", Pe), window.addEventListener("click", Pe), window.addEventListener("keydown", Pe)), window.addEventListener("unload", Ie), e.unlockWebAudio = Pe
                        }
                    },
                    _WAJS_IsPlaying: function(e) {
                        return ce[e].o
                    },
                    _WAJS_LoadData: Oe,
                    _WAJS_Pause: function(e, t) {
                        ce[e].pause(t)
                    },
                    _WAJS_PreloadData: function(e, t, i, r, n, a, s, o, u, h) {
                        return e = Oe(e, t, i, r, n, a, s, o, u, h), me[t] = pe[e], e
                    },
                    _WAJS_ReleaseData: function(e) {
                        if (pe[e]) {
                            var t = pe[e];
                            t.url && URL.revokeObjectURL(t.url), delete pe[e]
                        }
                    },
                    _WAJS_ResetDspBus: function(e) {
                        fe && ((e = de[e]).Da(), e.aa())
                    },
                    _WAJS_ResetDspParameters: function(e) {
                        ce[e].Ga()
                    },
                    _WAJS_ResetRouting: function(e) {
                        ce[e].aa()
                    },
                    _WAJS_ResumeContext: function() {
                        return Ae = !1, W(), !0
                    },
                    _WAJS_SetBandpassActive: function(e, t) {
                        ce[e].Na(t)
                    },
                    _WAJS_SetBandpassCofHi: function(e, t) {
                        ce[e].Oa(t)
                    },
                    _WAJS_SetBandpassCofLo: function(e, t) {
                        ce[e].Pa(t)
                    },
                    _WAJS_SetBiquadActive: function(e, t) {
                        ce[e].Ia(t)
                    },
                    _WAJS_SetBiquadFreq: function(e, t) {
                        ce[e].Ja(t)
                    },
                    _WAJS_SetBiquadGain: function(e, t) {
                        ce[e].Ka(t)
                    },
                    _WAJS_SetBiquadQ: function(e, t) {
                        ce[e].La(t)
                    },
                    _WAJS_SetBiquadType: function(e, t) {
                        ce[e].Ma(t)
                    },
                    _WAJS_SetData: function(e, t) {
                        ce[e].setData(pe[t])
                    },
                    _WAJS_SetDecoder: function(e, t) {
                        ce[e].sa = t
                    },
                    _WAJS_SetDspBusSendLevel: function(e, t, i) {
                        fe && de[e].ga(t, i)
                    },
                    _WAJS_SetDspBusVolume: function(e, t) {
                        fe && de[e].kb(t)
                    },
                    _WAJS_SetDspFxBypass: function(e, t, i) {
                        fe && ((t = (e = de[e]).ua(t)) && t.s != i && (t.s = i, e.update()))
                    },
                    _WAJS_SetDspFxParam: function(e, t, i, r) {
                        fe && (e = de[e].ua(t)) && e.G(i, r)
                    },
                    _WAJS_SetEnvelopeActive: function(e, t) {
                        ce[e].Qa(t)
                    },
                    _WAJS_SetEnvelopeParam: function(e, t, i) {
                        ce[e].Ra(t, i)
                    },
                    _WAJS_SetOutputMatrix: function(e, t, i, r) {
                        ce[e].Sa(t, i, r)
                    },
                    _WAJS_SetPreDelay: function(e, t) {
                        ce[e].Ta(.001 * t)
                    },
                    _WAJS_SetRouting: function(e, t, i) {
                        ce[e].ga(t, i)
                    },
                    _WAJS_SetSamplingRate: function(e, t) {
                        ce[e].Ua(t)
                    },
                    _WAJS_Setup: function(e, t, i, r) {
                        ce[e].Va(.001 * t, i, r ? xe[r] : null)
                    },
                    _WAJS_Start: function(e) {
                        ce[e].start()
                    },
                    _WAJS_Stop: function(e) {
                        ce[e].stop()
                    },
                    _WAJS_SuspendContext: function() {
                        return Ae = !0, W(), !0
                    },
                    _WAJS_Update: function(e) {
                        ce[e].update()
                    },
                    _WAJS_UpdateBandpass: function(e) {
                        ce[e].Xa()
                    },
                    _WAJS_UpdateBiquad: function(e) {
                        ce[e].Wa()
                    },
                    _WAJS_UpdateDspBus: function(e) {
                        fe && de[e].update()
                    },
                    _WAJS_UpdateDspFx: function(e, t) {
                        fe && (e = de[e].ua(t)) && e.update()
                    },
                    ___setErrNo: function(e) {
                        return t.___errno_location && (f[t.___errno_location() >> 2] = e), e
                    },
                    _$AA: function() {
                        ze || (function() {
                            var e;
                            if ((Ue = function() {}).prototype.start = function(e, t, i, r, n) {
                                    var a = this.a = new XMLHttpRequest;
                                    for (var s in this.data = null, this.offset = t, this.size = i, this.onload = r, this.onerror = n, this.g = !1, a.open(0 == t && 0 == i ? "HEAD" : "GET", e, !0), a.responseType = "arraybuffer", (0 < t || 0 < i && 4294967295 > i) && (a.setRequestHeader("Range", "bytes=" + t + "-" + (i + t - 1)), a.setRequestHeader("Pragma", "no-cache"), a.setRequestHeader("Cache-Control", "no-cache"), a.setRequestHeader("If-Modified-Since", "Thu,01 Jun 1970 00:00:00 GMT"), this.g = !0), Je) a.setRequestHeader(s, Je[s]);
                                    a.onload = this.j.bind(this), a.onerror = this.i.bind(this), 0 < (e = Qe) && (this.timeout = e, this.b = setInterval(this.m.bind(this), 100)), this.c = Date.now(), a.addEventListener("progress", this.l.bind(this)), a.send()
                                }, Ue.prototype.stop = function() {
                                    this.a && (this.a.abort(), this.a = null), this.b && (clearInterval(this.b), this.b = null)
                                }, Ue.prototype.read = function(e, t, i) {
                                    return this.data ? (i = Math.min(this.data.length - t, i), 0 == (3 & e) && 0 == (3 & t) && 0 == (3 & i) ? c.set(new Uint32Array(this.data.buffer, this.data.byteOffset + t, i >> 2), e >> 2) : u.set(this.data.subarray(t, t + i), e), i) : 0
                                }, Ue.prototype.j = function() {
                                    var e = this.a;
                                    200 == e.status || 206 == e.status ? (this.data = 200 == e.status && this.g ? new Uint8Array(e.response, this.offset, this.size) : new Uint8Array(e.response), this.onload(this.data.length)) : this.onerror(), this.a = null, this.stop()
                                }, Ue.prototype.i = function() {
                                    this.onerror(), this.a = null, this.stop()
                                }, Ue.prototype.l = function(e) {
                                    this.status = this.a.status, e.lengthComputable && (this.c = Date.now(), this.onprogress) && this.onprogress(e)
                                }, Ue.prototype.m = function() {
                                    Date.now() - this.c >= this.timeout && (this.stop(), this.ontimeout ? this.ontimeout() : this.onerror())
                                }, (Ve = function() {}).prototype.start = function(e, i, r, n, a) {
                                    0 == e.indexOf("memfs:") && (e = e.slice(6)), this.offset = i, this.size = r;
                                    try {
                                        var s = t.stat(e);
                                        this.a = t.open(e, "r");
                                        var o = s.size - i;
                                        0 < r && 4294967295 > r && o > r && (o = r), n(o)
                                    } catch (e) {
                                        a()
                                    }
                                }, Ve.prototype.stop = function() {
                                    this.a && t.close(this.a)
                                }, Ve.prototype.read = function(e, i, r) {
                                    return this.a ? t.read(this.a, u, e, r, this.offset + i) : 0
                                }, Ve.writeFile = function(e, i, r, n) {
                                    if (0 == e.indexOf("memfs:") && (e = e.slice(6)), Ve.ta(e)) n && n();
                                    else try {
                                        var a = t.open(e, "w+");
                                        t.write(a, new Uint8Array(i), 0, i.byteLength), t.close(a), t.xa(!1, r)
                                    } catch (e) {
                                        n && n()
                                    }
                                }, Ve.readFile = function(e, i, r) {
                                    0 == e.indexOf("memfs:") && (e = e.slice(6));
                                    try {
                                        var n = t.stat(e),
                                            a = new Uint8Array(n.size),
                                            s = t.open(e, "r");
                                        t.read(s, a, 0, a.byteLength), t.close(s), i && i(a)
                                    } catch (e) {
                                        r && r()
                                    }
                                }, Ve.ta = function(e) {
                                    0 == e.indexOf("memfs:") && (e = e.slice(6));
                                    try {
                                        if (t.stat(e)) return !0
                                    } catch (e) {}
                                    return !1
                                }, Ve.wa = function(e, i, r) {
                                    0 == e.indexOf("memfs:") && (e = e.slice(6));
                                    try {
                                        t.unlink(e), t.xa(!1, i)
                                    } catch (e) {
                                        r && r()
                                    }
                                }, Ve.Fa = function(e, i, r, n) {
                                    0 == e.indexOf("memfs:") && (e = e.slice(6)), 0 == i.indexOf("memfs:") && (i = i.slice(6));
                                    try {
                                        t.rename(e, i), t.xa(!1, r)
                                    } catch (e) {
                                        n && n()
                                    }
                                }, (Xe = function() {}).prototype.start = function(t, i, r, n, a) {
                                    0 == t.indexOf("idbfs:") && (t = t.slice(6)), this.offset = i, this.size = r, this.a = this.info = null;
                                    var s = e.files[t];
                                    s ? (this.info = s, r = 0 < r && 4294967295 > r ? r : s.size, this.buffer = new ArrayBuffer(r), this.ja = this.b(s, i, r, function(e) {
                                        this.a = e, this.ja = null, n(r)
                                    }.bind(this), a)) : a()
                                }, Xe.prototype.stop = function() {
                                    this.ja && this.ja.abort()
                                }, Xe.prototype.read = function(e, t, i) {
                                    var r = this.info.entities,
                                        n = this.a;
                                    t = this.offset + t;
                                    for (var a = 0; a < r.length; a++) {
                                        var s = r[a];
                                        if (t + i <= s.offset) break;
                                        if (!(s.offset + s.length < t)) {
                                            var o = t - s.offset;
                                            s = i > s.length - o ? s.length - o : i;
                                            var h = e + t - this.offset;
                                            u.subarray(h, h + s).set(n[a].subarray(o, o + s)), t += s, i -= s
                                        }
                                    }
                                }, Xe.prototype.b = function(t, i, r, n, a) {
                                    function s(e, t) {
                                        var i = u.get(e);
                                        i.onsuccess = function() {
                                            var e = i.result;
                                            e ? h[t] = e : l || (a(), l = !0)
                                        }, i.onerror = a
                                    }
                                    var o = e.db.transaction(["entities"], "readonly"),
                                        u = o.objectStore("entities");
                                    t = t.entities;
                                    for (var h = Array(t.length), l = !1, f = 0; f < t.length; f++) {
                                        var c = t[f];
                                        if (i + r <= c.offset) break;
                                        if (!(c.offset + c.length < i)) {
                                            var d = i - c.offset;
                                            d = r > c.length - d ? c.length - d : r, s(c.key, f), i += d, r -= d
                                        }
                                    }
                                    return o.oncomplete = function() {
                                        n(h)
                                    }, o.onerror = a, o
                                }, Xe.b = function(t, i, r) {
                                    if (!e) {
                                        e = {
                                            db: null,
                                            eb: t,
                                            files: {}
                                        };
                                        var n = window.indexedDB || window.webkitIndexedDB;
                                        if (!n) return !1;
                                        var a = n.open(t);
                                        a.onupgradeneeded = function() {
                                            e.db = a.result, e.db.createObjectStore("toc", {
                                                keyPath: "path"
                                            }), e.db.createObjectStore("entities", {
                                                autoIncrement: !0
                                            })
                                        }, a.onsuccess = function() {
                                            e.db = a.result;
                                            var t = e.db.transaction("toc").objectStore("toc");
                                            if (t.getAll) {
                                                var n = t.getAll();
                                                n.onsuccess = function() {
                                                    var t, r = n.result;
                                                    for (t in r) {
                                                        var a = r[t];
                                                        e.files[a.path] = a
                                                    }
                                                    i && i()
                                                }
                                            } else(n = t.openCursor(null)).onsuccess = function() {
                                                var t = n.result;
                                                if (t) {
                                                    var r = t.value;
                                                    e.files[r.path] = r, t.continue()
                                                } else i && i()
                                            };
                                            n.onerror = r
                                        }, a.onerror = function() {
                                            e = void 0, r && r()
                                        }
                                    }
                                }, Xe.a = function(t, i) {
                                    if (e) {
                                        var r = window.indexedDB || window.webkitIndexedDB;
                                        if (!r) return !1;
                                        (r = r.deleteDatabase(e.eb)).onsuccess = function() {
                                            t && t()
                                        }, r.onerror = function() {
                                            i && i()
                                        }, e = void 0
                                    }
                                }, Xe.writeFile = function(t, i, r, n) {
                                    function a(t, i, r, n, a) {
                                        var s = e.db.transaction("toc", "readwrite"),
                                            o = s.objectStore("toc"),
                                            u = {
                                                path: t,
                                                size: i,
                                                entities: r
                                            };
                                        o.add(u).onerror = a, s.oncomplete = function() {
                                            n(u)
                                        }, s.onerror = a
                                    }

                                    function s(i) {
                                        e.files[t] = i, r && r()
                                    }
                                    0 == t.indexOf("idbfs:") && (t = t.slice(6)),
                                        function(t, i, r) {
                                            function n(e, t, i) {
                                                e = new Uint8Array(e, t, i), (e = s.put(e)).onsuccess = function(e) {
                                                    o.push({
                                                        key: e.target.result,
                                                        offset: t,
                                                        length: i
                                                    })
                                                }, e.onerror = r
                                            }
                                            for (var a = e.db.transaction("entities", "readwrite"), s = a.objectStore("entities"), o = [], u = 0; u < t.byteLength;) {
                                                var h = u + 262144 < t.byteLength ? 262144 : t.byteLength - u;
                                                n(t, u, h), u += h
                                            }
                                            a.oncomplete = function() {
                                                i(o, t)
                                            }, a.onerror = r
                                        }(i, function(e, i) {
                                            this.ja = a(t, i.byteLength, e, s, n)
                                        }, n)
                                }, Xe.readFile = function(e) {
                                    0 == e.indexOf("idbfs:") && e.slice(6)
                                }, Xe.ta = function(t) {
                                    return 0 == t.indexOf("idbfs:") && (t = t.slice(6)), t in e.files
                                }, Xe.wa = function(t, i, r) {
                                    0 == t.indexOf("idbfs:") && (t = t.slice(6));
                                    var n = e.files[t];
                                    if (n) {
                                        delete e.files[t];
                                        var a = e.db.transaction(["toc", "entities"], "readwrite"),
                                            s = a.objectStore("toc"),
                                            o = a.objectStore("entities");
                                        for (var u in s.delete(t), n.entities) o.delete(n.entities[u].key);
                                        a.oncomplete = i, a.onerror = r
                                    } else r && r()
                                }, Xe.Fa = function(t, i, r, n) {
                                    0 == t.indexOf("idbfs:") && (t = t.slice(6)), 0 == i.indexOf("idbfs:") && (i = i.slice(6));
                                    var a = e.files[t];
                                    if (a) {
                                        delete e.files[t], a.path = i, e.files[i] = a;
                                        var s = (i = e.db.transaction("toc", "readwrite")).objectStore("toc");
                                        s.delete(t), s.put(a), i.oncomplete = r, i.onerror = n
                                    } else n && n()
                                }, "undefined" != typeof FS) {
                                je = Ve;
                                var t = FS
                            } else je = Ue, t = {
                                files: {},
                                stat: function(e) {
                                    if (e = t.files[e]) return {
                                        size: e.Y.byteLength
                                    };
                                    throw {}
                                },
                                open: function(e, i) {
                                    if ("w" == i[0]) return t.files[e] = {
                                        Y: null
                                    };
                                    if (e in t.files) return t.files[e];
                                    throw {}
                                },
                                close: function() {},
                                read: function(e, t, i, r, n) {
                                    return r = Math.min(e.Y.length - n, r), t.subarray(i, i + r).set(e.Y.subarray(n, n + r)), r
                                },
                                write: function(e, t, i, r) {
                                    e.Y = new Uint8Array(r), e.Y.set(t, i)
                                },
                                xa: function(e, t) {
                                    t && t()
                                },
                                unlink: function(e) {
                                    if (!t.files[e]) throw {};
                                    delete t.files[e]
                                },
                                rename: function(e, i) {
                                    var r = t.files[e];
                                    if (!r || i in t.files) throw {};
                                    delete t.files[e], t.files[i] = r
                                }
                            };
                            Ge = function(i, r) {
                                var n = null;
                                return 0 == i.indexOf("http:") || 0 == i.indexOf("https:") ? n = Ue : t && 0 == i.indexOf("memfs:") ? n = Ve : e && 0 == i.indexOf("idbfs:") ? n = Xe : 0 > i.indexOf(":") && (n = je), r && n === Ue && (n = null), n
                            }, $e = function(e, t, i, r) {
                                var n = Ge(e, !0);
                                n ? n.writeFile(e, t, i, r) : r && r()
                            }, He = function(e) {
                                var t = Ge(e, !0);
                                return !!t && t.ta(e)
                            }, We = function(e, t, i) {
                                var r = Ge(e, !0);
                                r ? r.wa(e, t, i) : i && i()
                            }, Ye = function(e, t, i, r) {
                                var n = Ge(e, !0),
                                    a = Ge(t, !0);
                                n && a ? n === a ? n.Fa(e, t) : n.readFile(e, function(s) {
                                    n.wa(e, function() {
                                        a.writeFile(t, s, i, r)
                                    }, r)
                                }, r) : r && r()
                            }
                        }(), ze = !0, t.CriFsItf = {
                            setupIDBFS: Xe.b,
                            clearIDBFS: Xe.a,
                            writeFile: $e,
                            existsFile: He,
                            removeFile: We,
                            renameFile: Ye
                        })
                    },
                    _$AB: function(e, t, i, r) {
                        return (e = qe[e]) ? e.read(t, i, r) : 0
                    },
                    _$AC: function(e, t) {
                        e = x(e), 0 === t ? delete Je[e] : Je[e] = x(t)
                    },
                    _$AD: function(e) {
                        Qe = e
                    },
                    _$AE: function(e, t, i, r, n, a) {
                        function s() {
                            st(a, e)
                        }
                        t = x(t);
                        var o = Ge(t);
                        null === o ? s() : (qe[e] = new o).start(t, i, r, function(t) {
                            ot(n, e, t)
                        }, s)
                    },
                    _$AF: function(e) {
                        var t = qe[e];
                        t && (t.stop(), delete qe[e])
                    },
                    _emscripten_asm_const_i: function(e) {
                        return $[e]()
                    },
                    _emscripten_asm_const_ii: function(e, t) {
                        return $[e](t)
                    },
                    _emscripten_asm_const_iid: function(e, t, i) {
                        return $[e](t, i)
                    },
                    _emscripten_asm_const_iidd: function(e, t, i, r) {
                        return $[e](t, i, r)
                    },
                    _emscripten_asm_const_iii: function(e, t, i) {
                        return $[e](t, i)
                    },
                    _emscripten_asm_const_iiii: function(e, t, i, r) {
                        return $[e](t, i, r)
                    },
                    _emscripten_get_now: Ze,
                    _emscripten_memcpy_big: function(e, t, i) {
                        return h.set(h.subarray(t, t + i), e), e
                    },
                    _llvm_fabs_f32: F,
                    DYNAMICTOP_PTR: A,
                    tempDoublePtr: H,
                    ABORT: n,
                    STACKTOP: b,
                    STACK_MAX: g,
                    cttz_i8: Fe
                };
                var tt = function(e, t, i) {
                    "use asm";
                    var r = new e.Int8Array(i);
                    var n = new e.Int16Array(i);
                    var a = new e.Int32Array(i);
                    var s = new e.Uint8Array(i);
                    var o = new e.Uint16Array(i);
                    var u = new e.Uint32Array(i);
                    var h = new e.Float32Array(i);
                    var l = new e.Float64Array(i);
                    var f = t.DYNAMICTOP_PTR | 0;
                    var c = t.tempDoublePtr | 0;
                    var d = t.ABORT | 0;
                    var p = t.STACKTOP | 0;
                    var v = t.STACK_MAX | 0;
                    var m = t.cttz_i8 | 0;
                    var _ = 0;
                    var b = 0;
                    var g = 0;
                    var y = 0;
                    var A = e.NaN,
                        w = e.Infinity;
                    var x = 0,
                        k = 0,
                        T = 0,
                        E = 0,
                        S = 0.0;
                    var P = 0;
                    var I = e.Math.floor;
                    var M = e.Math.abs;
                    var C = e.Math.sqrt;
                    var O = e.Math.pow;
                    var R = e.Math.cos;
                    var D = e.Math.sin;
                    var F = e.Math.tan;
                    var B = e.Math.acos;
                    var N = e.Math.asin;
                    var L = e.Math.atan;
                    var U = e.Math.atan2;
                    var V = e.Math.exp;
                    var X = e.Math.log;
                    var j = e.Math.ceil;
                    var G = e.Math.imul;
                    var $ = e.Math.min;
                    var H = e.Math.max;
                    var W = e.Math.clz32;
                    var Y = t.abort;
                    var z = t.assert;
                    var q = t.enlargeMemory;
                    var J = t.getTotalMemory;
                    var Q = t.invoke_i;
                    var Z = t.invoke_ii;
                    var K = t.invoke_iii;
                    var ee = t.invoke_iiii;
                    var te = t.invoke_iiiii;
                    var ie = t.invoke_iiiiiii;
                    var re = t.invoke_iiiiiiiiii;
                    var ne = t.invoke_v;
                    var ae = t.invoke_vi;
                    var se = t.invoke_vid;
                    var oe = t.invoke_vii;
                    var ue = t.invoke_viid;
                    var he = t.invoke_viii;
                    var le = t.invoke_viiid;
                    var fe = t.invoke_viiii;
                    var ce = t.invoke_viiiii;
                    var de = t.invoke_viiiiii;
                    var pe = t.invoke_viiiiiii;
                    var ve = t._WAJS_AttachBusFilterNode;
                    var me = t._WAJS_AttachDspFx;
                    var _e = t._WAJS_CreateAnalyzer;
                    var be = t._WAJS_CreateBank;
                    var ge = t._WAJS_CreateVoice;
                    var ye = t._WAJS_DestroyAnalyzer;
                    var Ae = t._WAJS_DestroyBank;
                    var we = t._WAJS_DestroyVoice;
                    var xe = t._WAJS_DetachBusFilterNode;
                    var ke = t._WAJS_ExecuteMain;
                    var Te = t._WAJS_Finalize;
                    var Ee = t._WAJS_GetAnalyzedLevel;
                    var Se = t._WAJS_GetAudioTime;
                    var Pe = t._WAJS_GetBufferFormat;
                    var Ie = t._WAJS_GetBufferStatus;
                    var Me = t._WAJS_GetDecoder;
                    var Ce = t._WAJS_GetPreloadBuffer;
                    var Oe = t._WAJS_GetTime;
                    var Re = t._WAJS_Initialize;
                    var De = t._WAJS_IsPlaying;
                    var Fe = t._WAJS_LoadData;
                    var Be = t._WAJS_Pause;
                    var Ne = t._WAJS_PreloadData;
                    var Le = t._WAJS_ReleaseData;
                    var Ue = t._WAJS_ResetDspBus;
                    var Ve = t._WAJS_ResetDspParameters;
                    var Xe = t._WAJS_ResetRouting;
                    var je = t._WAJS_ResumeContext;
                    var Ge = t._WAJS_SetBandpassActive;
                    var $e = t._WAJS_SetBandpassCofHi;
                    var He = t._WAJS_SetBandpassCofLo;
                    var We = t._WAJS_SetBiquadActive;
                    var Ye = t._WAJS_SetBiquadFreq;
                    var ze = t._WAJS_SetBiquadGain;
                    var qe = t._WAJS_SetBiquadQ;
                    var Je = t._WAJS_SetBiquadType;
                    var Qe = t._WAJS_SetData;
                    var Ze = t._WAJS_SetDecoder;
                    var Ke = t._WAJS_SetDspBusSendLevel;
                    var et = t._WAJS_SetDspBusVolume;
                    var tt = t._WAJS_SetDspFxBypass;
                    var it = t._WAJS_SetDspFxParam;
                    var rt = t._WAJS_SetEnvelopeActive;
                    var nt = t._WAJS_SetEnvelopeParam;
                    var at = t._WAJS_SetOutputMatrix;
                    var st = t._WAJS_SetPreDelay;
                    var ot = t._WAJS_SetRouting;
                    var ut = t._WAJS_SetSamplingRate;
                    var ht = t._WAJS_Setup;
                    var lt = t._WAJS_Start;
                    var ft = t._WAJS_Stop;
                    var ct = t._WAJS_SuspendContext;
                    var dt = t._WAJS_Update;
                    var pt = t._WAJS_UpdateBandpass;
                    var vt = t._WAJS_UpdateBiquad;
                    var mt = t._WAJS_UpdateDspBus;
                    var _t = t._WAJS_UpdateDspFx;
                    var bt = t.___setErrNo;
                    var gt = t._$AA;
                    var yt = t._$AB;
                    var At = t._$AC;
                    var wt = t._$AD;
                    var xt = t._$AE;
                    var kt = t._$AF;
                    var Tt = t._emscripten_asm_const_i;
                    var Et = t._emscripten_asm_const_ii;
                    var St = t._emscripten_asm_const_iid;
                    var Pt = t._emscripten_asm_const_iidd;
                    var It = t._emscripten_asm_const_iii;
                    var Mt = t._emscripten_asm_const_iiii;
                    var Ct = t._emscripten_get_now;
                    var Ot = t._emscripten_memcpy_big;
                    var Rt = t._llvm_fabs_f32;
                    var Dt = 0.0;

                    function Ft(e) {
                        e = e | 0;
                        var t = 0;
                        t = p;
                        p = p + e | 0;
                        p = p + 15 & -16;
                        return t | 0
                    }

                    function Bt() {
                        return p | 0
                    }

                    function Nt(e) {
                        e = e | 0;
                        p = e
                    }

                    function Lt(e, t) {
                        e = e | 0;
                        t = t | 0;
                        p = e;
                        v = t
                    }

                    function Ut(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!_) {
                            _ = e;
                            b = t
                        }
                    }

                    function Vt(e) {
                        e = e | 0;
                        P = e
                    }

                    function Xt() {
                        return P | 0
                    }

                    function jt() {
                        vS();
                        _T();
                        bT();
                        return 0
                    }

                    function Gt(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        fS(e, t, i);
                        Et(0, 10842) | 0;
                        return
                    }

                    function $t(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return GI(t) | 0
                    }

                    function Ht(e, t) {
                        e = e | 0;
                        t = t | 0;
                        zI(t);
                        return
                    }

                    function Wt(e, t, i, n, s, o, u, l) {
                        e = +e;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0;
                        f = p;
                        p = p + 176 | 0;
                        c = f;
                        a[c + 12 >> 2] = 0;
                        r[c + 32 >> 0] = 8;
                        a[c + 40 >> 2] = 16;
                        a[c + 52 >> 2] = 0;
                        h[c + 56 >> 2] = 2400.0;
                        a[c + 60 >> 2] = 4;
                        a[c + 68 >> 2] = 0;
                        a[c + 72 >> 2] = 0;
                        h[c + 76 >> 2] = 1.5;
                        d = c + 80 | 0;
                        a[d >> 2] = 0;
                        a[d + 4 >> 2] = 0;
                        a[d + 8 >> 2] = 0;
                        a[d + 12 >> 2] = 0;
                        a[c + 96 >> 2] = 35685889;
                        a[c + 100 >> 2] = 35652096;
                        h[c + 104 >> 2] = 60.0;
                        a[c + 108 >> 2] = 8;
                        a[c + 112 >> 2] = 2;
                        a[c + 116 >> 2] = 44100;
                        a[c + 120 >> 2] = 1;
                        a[c + 124 >> 2] = 0;
                        a[c + 128 >> 2] = 8;
                        a[c + 132 >> 2] = 0;
                        h[c + 136 >> 2] = 60.0;
                        a[c + 140 >> 2] = 1;
                        a[c + 144 >> 2] = 16;
                        a[c + 148 >> 2] = 2;
                        a[c + 152 >> 2] = 44100;
                        a[c + 156 >> 2] = 2;
                        a[c + 160 >> 2] = 44100;
                        a[c + 164 >> 2] = 2;
                        h[c + 4 >> 2] = e;
                        a[c + 8 >> 2] = t;
                        a[c + 16 >> 2] = i;
                        a[c + 20 >> 2] = n;
                        a[c + 24 >> 2] = s;
                        a[c + 28 >> 2] = o;
                        a[c + 36 >> 2] = u;
                        a[c + 64 >> 2] = l;
                        l = i << 1;
                        a[c + 44 >> 2] = l;
                        a[c + 48 >> 2] = l;
                        a[c >> 2] = 2;
                        RT(c);
                        XT();
                        p = f;
                        return
                    }

                    function Yt() {
                        Tt(1) | 0;
                        return
                    }

                    function zt() {
                        NT();
                        return
                    }

                    function qt() {
                        pw();
                        return
                    }

                    function Jt(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Et(2, t | 0) | 0;
                        return 0
                    }

                    function Qt(e) {
                        e = e | 0;
                        sb();
                        return
                    }

                    function Zt(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Et(3, t | 0) | 0;
                        return 0
                    }

                    function Kt() {
                        vw();
                        return
                    }

                    function ei(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Et(4, t | 0) | 0;
                        return
                    }

                    function ti(e) {
                        e = e | 0;
                        nT(e, e);
                        return
                    }

                    function ii(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        n = r;
                        a[n >> 2] = e;
                        a[n + 4 >> 2] = t;
                        a[n + 8 >> 2] = i;
                        Et(5, n | 0) | 0;
                        p = r;
                        return
                    }

                    function ri(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        i = p;
                        p = p + 48 | 0;
                        n = i;
                        qI(n);
                        r = Tt(6) | 0;
                        s = r - (Tt(7) | 0) | 0;
                        a[e >> 2] = s + (a[n + 32 >> 2] | 0);
                        a[t >> 2] = r;
                        p = i;
                        return
                    }

                    function ni() {
                        return 0
                    }

                    function ai(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return e$[a[(a[e >> 2] | 0) + 20 >> 2] & 31](e, t) | 0
                    }

                    function si(e) {
                        e = e | 0;
                        VS(e);
                        return
                    }

                    function oi(e) {
                        e = e | 0;
                        return US(e) | 0
                    }

                    function ui(e) {
                        e = e | 0;
                        return 0
                    }

                    function hi(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[e + 4 >> 2] | 0;
                        t = e + 24 | 0;
                        if (i | 0) ha(i, a[t >> 2] | 0);
                        if ((a[t >> 2] | 0) == 1) si(a[e + 12 >> 2] | 0);
                        return
                    }

                    function li(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        t = l;
                        s = a[e + 4 >> 2] | 0;
                        h = s + 40 | 0;
                        switch (a[h >> 2] | 0) {
                            case 2:
                                {
                                    if (_i(e) | 0) o = 3;
                                    break
                                }
                            case 1:
                                {
                                    o = 3;
                                    break
                                }
                            case 0:
                                {
                                    a[h >> 2] = 4;
                                    break
                                }
                            default:
                                {}
                        }
                        if ((o | 0) == 3) {
                            u = s + 32 | 0;
                            LI(a[u >> 2] | 0, t) | 0;
                            e: do {
                                switch (a[t >> 2] | 0) {
                                    case 1:
                                        {
                                            a[h >> 2] = 1;
                                            break
                                        }
                                    case 2:
                                        {
                                            i = s + 4 | 0;t = a[i >> 2] | 0;r = s + 8 | 0;n = a[r >> 2] | 0;
                                            if (!(fE(t, n) | 0)) {
                                                sE();
                                                a[h >> 2] = 4;
                                                break e
                                            }
                                            t = cE(t, n) | 0;
                                            if ((n | 0) < (t | 0))
                                                if ((a[e + 24 >> 2] | 0) != 0 ? (a[r >> 2] = ((t + 3 | 0) / 4 | 0) << 2, n = s + 36 | 0, si(a[n >> 2] | 0), t = oi((a[r >> 2] | 0) + 4 | 0) | 0, a[n >> 2] = t, t = t + 3 & -4, a[i >> 2] = t, n = a[r >> 2] | 0, s = ((n | 0) < 0) << 31 >> 31, (BI(a[u >> 2] | 0, a[e + 8 >> 2] | 0, 0, 0, n, s, t, n, s) | 0) == 0) : 0) break e;
                                                else t = 4;
                                            else {
                                                t = a[u >> 2] | 0;
                                                if (!t) t = 3;
                                                else {
                                                    SI(t) | 0;
                                                    a[u >> 2] = 0;
                                                    t = 3
                                                }
                                            }
                                            a[h >> 2] = t;
                                            break
                                        }
                                    case 3:
                                        {
                                            t = a[u >> 2] | 0;
                                            if (!t) o = 17;
                                            else {
                                                UI(t, s + 56 | 0);
                                                o = 15
                                            }
                                            break
                                        }
                                    case 0:
                                        {
                                            o = 15;
                                            break
                                        }
                                    default:
                                        {}
                                }
                            } while (0);
                            if ((o | 0) == 15) {
                                t = a[u >> 2] | 0;
                                if (!t) o = 17;
                                else {
                                    SI(t) | 0;
                                    a[u >> 2] = 0;
                                    o = 17
                                }
                            }
                            if ((o | 0) == 17) a[h >> 2] = 4
                        }
                        p = l;
                        return a[216 + (a[h >> 2] << 2) >> 2] | 0
                    }

                    function fi(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 4 >> 2] | 0;
                        if ((li(e) | 0) == 2) e = (dE(a[t + 4 >> 2] | 0, a[t + 8 >> 2] | 0) | 0) & 65535;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function ci(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = (t | 0) != 0;
                        if (i) a[t >> 2] = 0;
                        if (!(ZG[a[a[e >> 2] >> 2] & 7]() | 0)) {
                            e = a[e + 4 >> 2] | 0;
                            if (i) a[t >> 2] = a[e + 20 >> 2];
                            e = a[e + 16 >> 2] | 0
                        } else e = 0;
                        return e | 0
                    }

                    function di(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 32 | 0;
                        s = o + 8 | 0;
                        n = (i | 0) == 0 ? o : i;
                        i = n;
                        a[i >> 2] = -1;
                        a[i + 4 >> 2] = -1;
                        i = (r | 0) == 0 ? o + 24 | 0 : r;
                        a[i >> 2] = 0;
                        do {
                            if (e) {
                                if (ZG[a[a[e >> 2] >> 2] & 7]() | 0) {
                                    sE();
                                    i = 0;
                                    break
                                }
                                e = a[e + 4 >> 2] | 0;
                                if (!(bE(a[e + 4 >> 2] | 0, a[e + 8 >> 2] | 0, t, s) | 0)) {
                                    sE();
                                    i = 0;
                                    break
                                } else {
                                    r = s + 8 | 0;
                                    e = a[r + 4 >> 2] | 0;
                                    t = n;
                                    a[t >> 2] = a[r >> 2];
                                    a[t + 4 >> 2] = e;
                                    a[i >> 2] = a[s + 4 >> 2];
                                    i = 1;
                                    break
                                }
                            } else {
                                sE();
                                i = 0
                            }
                        } while (0);
                        p = o;
                        return i | 0
                    }

                    function pi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        do {
                            if (e) {
                                if (ZG[a[a[e >> 2] >> 2] & 7]() | 0) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                e = a[e + 4 >> 2] | 0;
                                if (!(pE(a[e + 4 >> 2] | 0, a[e + 8 >> 2] | 0, t & 65535, i) | 0)) {
                                    sE();
                                    e = -1;
                                    break
                                } else {
                                    e = a[i >> 2] | 0;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = r;
                        return e | 0
                    }

                    function vi(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if (!(ZG[a[a[e >> 2] >> 2] & 7]() | 0)) {
                                    e = a[(a[e + 4 >> 2] | 0) + 56 >> 2] | 0;
                                    break
                                } else {
                                    sE();
                                    e = -1;
                                    break
                                }
                            else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function mi(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[e + 4 >> 2] | 0;
                        if ((li(e) | 0) == 2) {
                            t = 0;
                            e = (yE(a[i + 4 >> 2] | 0, a[i + 8 >> 2] | 0) | 0) & 65535
                        } else {
                            sE();
                            t = 0;
                            e = 0
                        }
                        P = t;
                        return e | 0
                    }

                    function _i(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        i = a[e + 4 >> 2] | 0;
                        if (!(a[i + 20 >> 2] | 0)) {
                            n = i + 32 | 0;
                            EI(n) | 0;
                            r = a[i + 8 >> 2] | 0;
                            t = ((r | 0) < 0) << 31 >> 31;
                            t = (BI(a[n >> 2] | 0, a[e + 8 >> 2] | 0, 0, 0, r, t, a[i + 4 >> 2] | 0, r, t) | 0) == 0;
                            e = t & 1;
                            t = t ? 1 : 4
                        } else {
                            e = 0;
                            t = 4
                        }
                        a[i + 40 >> 2] = t;
                        return e | 0
                    }

                    function bi(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 52 | 0;
                        if (a[t >> 2] | 0) {
                            e = e + 20 | 0;
                            if (a[e >> 2] | 0) a[e >> 2] = 0;
                            a[t >> 2] = 0
                        }
                        return
                    }

                    function gi() {
                        SP();
                        return
                    }

                    function yi() {
                        var e = 0;
                        if (a[1635] | 0) {
                            e = a[1636] | 0;
                            if (e | 0) s$[e & 63](a[1637] | 0);
                            e = a[1638] | 0;
                            if (e | 0) s$[e & 63](a[1639] | 0);
                            Ai();
                            wi();
                            xi();
                            e = a[1640] | 0;
                            if (e | 0) s$[e & 63](a[1641] | 0);
                            e = a[1642] | 0;
                            if (e | 0) s$[e & 63](a[1643] | 0)
                        }
                        return
                    }

                    function Ai() {
                        ua();
                        return
                    }

                    function wi() {
                        var e = 0;
                        e = a[1646] | 0;
                        if ((e | 0) == 2) {
                            Ti();
                            e = a[1646] | 0
                        }
                        if (!e) {
                            a[1646] = 1;
                            Ei(0);
                            Si();
                            Ei(1);
                            Pi();
                            Ii();
                            a[1646] = 0
                        }
                        return
                    }

                    function xi() {
                        ki();
                        return
                    }

                    function ki() {
                        a[1644] = (a[1644] | 0) + -1;
                        return
                    }

                    function Ti() {
                        if ((a[1646] | 0) == 2) {
                            a[1646] = 3;
                            Ei(1);
                            Pi();
                            Ii();
                            a[1646] = 0
                        }
                        return
                    }

                    function Ei(e) {
                        e = e | 0;
                        Qi(e);
                        return
                    }

                    function Si() {
                        Yi();
                        return
                    }

                    function Pi() {
                        Mi();
                        return
                    }

                    function Ii() {
                        a[1636] = 0;
                        a[1637] = 0;
                        a[1640] = 0;
                        a[1641] = 0;
                        a[1638] = 0;
                        a[1639] = 0;
                        a[1642] = 0;
                        a[1643] = 0;
                        return
                    }

                    function Mi() {
                        if (a[1647] | 0) {
                            Ci();
                            PS(a[1647] | 0, 0, 14);
                            Ri()
                        }
                        return
                    }

                    function Ci() {
                        var e = 0,
                            t = 0;
                        e = 1;
                        while (1) {
                            if ((e | 0) == 10) break;
                            t = a[6592 + (e << 2) >> 2] | 0;
                            if (t | 0) a$[a[t + 12 >> 2] & 15]();
                            e = e + 1 | 0
                        }
                        return
                    }

                    function Oi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = t + 4 | 0;
                        e = a[i >> 2] | 0;
                        switch (e | 0) {
                            case 4:
                                {
                                    Di(t);
                                    break
                                }
                            case 0:
                                {
                                    Fi(t);e = a[i >> 2] | 0;
                                    if (e | 0) r = 4;
                                    break
                                }
                            default:
                                r = 4
                        }
                        if ((r | 0) == 4) {
                            if ((e | 0) == 3) {
                                Bi(t);
                                e = a[i >> 2] | 0
                            }
                            if ((e | 0) == 4) {
                                Di(t);
                                e = a[i >> 2] | 0
                            }
                            if ((e | 0) == 5) Ni(t)
                        }
                        return
                    }

                    function Ri() {
                        var e = 0,
                            t = 0;
                        e = 9;
                        while (1) {
                            if ((e | 0) <= 0) break;
                            t = a[6592 + (e << 2) >> 2] | 0;
                            if (t | 0) a$[a[t + 16 >> 2] & 15]();
                            e = e + -1 | 0
                        }
                        return
                    }

                    function Di(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0;
                        n = a[e >> 2] | 0;
                        e: do {
                            if (!(KG[a[(a[n >> 2] | 0) + 48 >> 2] & 63](a[n + 4 >> 2] | 0) | 0)) a[e + 4 >> 2] = 2;
                            else {
                                if ((r[e + 20 >> 0] | 0) == 0 ? (t = e + 4 | 0, (a[t >> 2] | 0) != 5) : 0) {
                                    n = a[e >> 2] | 0;
                                    s$[a[(a[n >> 2] | 0) + 40 >> 2] & 63](a[n + 4 >> 2] | 0);
                                    a[t >> 2] = 5
                                }
                                n = a[e >> 2] | 0;
                                if (!(KG[a[(a[n >> 2] | 0) + 64 >> 2] & 63](a[n + 4 >> 2] | 0) | 0)) {
                                    i = e + 4 | 0;
                                    switch (a[i >> 2] | 0) {
                                        case 4:
                                            {
                                                t = 1;
                                                break
                                            }
                                        case 5:
                                            {
                                                t = 0;
                                                break
                                            }
                                        default:
                                            break e
                                    }
                                    a[i >> 2] = t;
                                    break
                                }
                                if (r[e + 23 >> 0] & 7) Li(e);
                                i = e + 8 | 0;
                                while (1) {
                                    t = JS(a[i >> 2] | 0, 1) | 0;
                                    if (!t) break e;
                                    n = a[t + 12 >> 2] | 0;
                                    if (a[t + 20 >> 2] | 0) {
                                        o = a[e >> 2] | 0;
                                        t = e$[a[(a[o >> 2] | 0) + 56 >> 2] & 31](a[o + 4 >> 2] | 0, t) | 0;
                                        if (t | 0) break
                                    } else YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t);
                                    if (!(n & 2)) continue;
                                    o = a[e >> 2] | 0;
                                    s$[a[(a[o >> 2] | 0) + 44 >> 2] & 63](a[o + 4 >> 2] | 0)
                                }
                                QS(a[i >> 2] | 0, t)
                            }
                        } while (0);
                        return
                    }

                    function Fi(e) {
                        e = e | 0;
                        if ((r[e + 20 >> 0] | 0) == 1) a[e + 4 >> 2] = 3;
                        return
                    }

                    function Bi(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        if (r[e + 20 >> 0] | 0) {
                            n = e + 8 | 0;
                            t = JS(a[n >> 2] | 0, 1) | 0;
                            if (t | 0) {
                                if (r[e + 23 >> 0] & 7) Li(e);
                                i = a[t + 12 >> 2] | 0;
                                s = a[e >> 2] | 0;
                                t = e$[a[(a[s >> 2] | 0) + 52 >> 2] & 31](a[s + 4 >> 2] | 0, t) | 0;
                                if (t | 0) QS(a[n >> 2] | 0, t);
                                if (i & 2 | 0) {
                                    s = a[e >> 2] | 0;
                                    s$[a[(a[s >> 2] | 0) + 44 >> 2] & 63](a[s + 4 >> 2] | 0)
                                }
                                t = a[e >> 2] | 0;
                                s$[a[(a[t >> 2] | 0) + 36 >> 2] & 63](a[t + 4 >> 2] | 0);
                                t = 4;
                                i = 10
                            }
                        } else {
                            t = 5;
                            i = 10
                        }
                        if ((i | 0) == 10) a[e + 4 >> 2] = t;
                        return
                    }

                    function Ni(e) {
                        e = e | 0;
                        Di(e);
                        return
                    }

                    function Li(e) {
                        e = e | 0;
                        Ui(e);
                        return
                    }

                    function Ui(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0,
                            u = 0.0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 288 | 0;
                        c = m + 256 | 0;
                        d = m;
                        i = e + 24 | 0;
                        nE(i, 12, e + 36 | 0, 12);
                        v = (s[e + 21 >> 0] | 0) * 36 | 0;
                        f = e + 48 | 0;
                        nE(a[f >> 2] | 0, v, a[e + 52 >> 2] | 0, v);
                        f = a[f >> 2] | 0;
                        v = e + 23 | 0;
                        t = r[v >> 0] | 0;
                        if (t & 4) {
                            t = a[e >> 2] | 0;
                            u$[a[(a[t >> 2] | 0) + 60 >> 2] & 63](a[t + 4 >> 2] | 0, a[i >> 2] | 0);
                            t = r[v >> 0] | 0
                        }
                        if (t & 1) {
                            l = s[e + 22 >> 0] | 0;
                            n = e + 12 | 0;
                            o = e + 32 | 0;
                            t = 0;
                            while (1) {
                                if ((t | 0) == (l | 0)) break;
                                u = +h[n >> 2] * +h[o >> 2] * +h[f + (t * 36 | 0) >> 2];
                                i = 0;
                                while (1) {
                                    if ((i | 0) == 8) break;
                                    h[d + (t << 5) + (i << 2) >> 2] = u * +h[f + (t * 36 | 0) + 4 + (i << 2) >> 2];
                                    i = i + 1 | 0
                                }
                                t = t + 1 | 0
                            }
                            i = a[e >> 2] | 0;
                            i = KG[a[(a[i >> 2] | 0) + 136 >> 2] & 63](a[i + 4 >> 2] | 0) | 0;
                            Vi(d, l, i);
                            t = 0;
                            while (1) {
                                if ((t | 0) == (l | 0)) break;
                                a[c + (t << 2) >> 2] = d + (t << 5);
                                t = t + 1 | 0
                            }
                            d = a[e >> 2] | 0;
                            f = a[(a[d >> 2] | 0) + 76 >> 2] | 0;
                            d = a[d + 4 >> 2] | 0;
                            t = Xi(i) | 0;
                            c$[f & 3](d, l, t, c);
                            t = r[v >> 0] | 0
                        }
                        if (t & 2) {
                            t = a[e >> 2] | 0;
                            e$[a[(a[t >> 2] | 0) + 72 >> 2] & 31](a[t + 4 >> 2] | 0, ~~(+h[e + 28 >> 2] * +(a[e + 16 >> 2] | 0))) | 0;
                            t = r[v >> 0] | 0
                        }
                        r[v >> 0] = t & -8;
                        p = m;
                        return
                    }

                    function Vi(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        switch (i | 0) {
                            case 0:
                                {
                                    Wi(e, t);
                                    break
                                }
                            case 4:
                                {
                                    ji(e, t);
                                    break
                                }
                            case 3:
                                {
                                    Gi(e, t);
                                    break
                                }
                            case 2:
                                {
                                    $i(e, t);
                                    break
                                }
                            case 1:
                                {
                                    Hi(e, t);
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function Xi(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 0:
                                {
                                    e = 1;
                                    break
                                }
                            case 1:
                                {
                                    e = 2;
                                    break
                                }
                            case 2:
                                {
                                    e = 4;
                                    break
                                }
                            case 3:
                                {
                                    e = 4;
                                    break
                                }
                            case 4:
                                {
                                    e = 6;
                                    break
                                }
                            case 5:
                                {
                                    e = 8;
                                    break
                                }
                            default:
                                e = -1
                        }
                        return e | 0
                    }

                    function ji(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            a = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            n = e + (i << 5) + 24 | 0;
                            r = e + (i << 5) + 16 | 0;
                            h[r >> 2] = +h[r >> 2] + +h[n >> 2] * .7079457640647888;
                            r = e + (i << 5) + 28 | 0;
                            a = e + (i << 5) + 20 | 0;
                            h[a >> 2] = +h[a >> 2] + +h[r >> 2] * .7079457640647888;
                            h[n >> 2] = 0.0;
                            h[r >> 2] = 0.0;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function Gi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0.0,
                            a = 0,
                            s = 0,
                            o = 0.0,
                            u = 0,
                            l = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            s = e + (i << 5) + 8 | 0;
                            o = +h[s >> 2] * .7079457640647888;
                            l = e + (i << 5) | 0;
                            h[l >> 2] = +h[l >> 2] + o;
                            l = e + (i << 5) + 4 | 0;
                            h[l >> 2] = o + +h[l >> 2];
                            l = e + (i << 5) + 24 | 0;
                            a = e + (i << 5) + 16 | 0;
                            o = +h[a >> 2] + +h[l >> 2] * .7079457640647888;
                            u = e + (i << 5) + 28 | 0;
                            r = e + (i << 5) + 20 | 0;
                            n = +h[r >> 2] + +h[u >> 2] * .7079457640647888;
                            h[l >> 2] = 0.0;
                            h[u >> 2] = 0.0;
                            h[s >> 2] = o;
                            h[a >> 2] = 0.0;
                            h[e + (i << 5) + 12 >> 2] = n;
                            h[r >> 2] = 0.0;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function $i(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            r = e + (i << 5) + 16 | 0;
                            n = e + (i << 5) | 0;
                            h[n >> 2] = +h[n >> 2] + (+h[r >> 2] * .7079457640647888 + +h[e + (i << 5) + 24 >> 2] * .5011872053146362);
                            n = e + (i << 5) + 4 | 0;
                            h[n >> 2] = +h[n >> 2] + (+h[e + (i << 5) + 20 >> 2] * .7079457640647888 + +h[e + (i << 5) + 28 >> 2] * .5011872053146362);
                            a[r >> 2] = 0;
                            a[r + 4 >> 2] = 0;
                            a[r + 8 >> 2] = 0;
                            a[r + 12 >> 2] = 0;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function Hi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0.0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            r = e + (i << 5) + 8 | 0;
                            s = +h[r >> 2] * .7079457640647888;
                            n = e + (i << 5) | 0;
                            h[n >> 2] = +h[n >> 2] + (s + +h[e + (i << 5) + 16 >> 2] * .7079457640647888 + +h[e + (i << 5) + 24 >> 2] * .5011872053146362);
                            n = e + (i << 5) + 4 | 0;
                            h[n >> 2] = +h[n >> 2] + (s + +h[e + (i << 5) + 20 >> 2] * .7079457640647888 + +h[e + (i << 5) + 28 >> 2] * .5011872053146362);
                            a[r >> 2] = 0;
                            a[r + 4 >> 2] = 0;
                            a[r + 8 >> 2] = 0;
                            a[r + 12 >> 2] = 0;
                            a[r + 16 >> 2] = 0;
                            a[r + 20 >> 2] = 0;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function Wi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            n = e + (i << 5) | 0;
                            r = e + (i << 5) + 4 | 0;
                            h[n >> 2] = +h[n >> 2] * .7079457640647888 + +h[r >> 2] * .7079457640647888 + +h[e + (i << 5) + 8 >> 2] * .5011872053146362 + +h[e + (i << 5) + 16 >> 2] * .5011872053146362 + +h[e + (i << 5) + 20 >> 2] * .5011872053146362 + +h[e + (i << 5) + 24 >> 2] * .5011872053146362 * .7079457640647888 + +h[e + (i << 5) + 28 >> 2] * .5011872053146362 * .7079457640647888;
                            a[r >> 2] = 0;
                            a[r + 4 >> 2] = 0;
                            a[r + 8 >> 2] = 0;
                            a[r + 12 >> 2] = 0;
                            a[r + 16 >> 2] = 0;
                            a[r + 20 >> 2] = 0;
                            a[r + 24 >> 2] = 0;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function Yi() {
                        var e = 0;
                        e = a[1622] | 0;
                        if (e | 0) PS(e, 0, 15);
                        return
                    }

                    function zi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        u = p;
                        p = p + 16 | 0;
                        o = u;
                        if ((a[t >> 2] | 0 ? r[t + 50 >> 0] | 0 : 0) ? (h = t + 51 | 0, (r[h >> 0] | 0) == 0) : 0) {
                            e = a[t + 44 >> 2] | 0;
                            if ((e | 0) < 4) i = s[t + 52 + e >> 0] | 0;
                            else i = 4;
                            n = 0;
                            e = 0;
                            while (1) {
                                if ((n | 0) >= (i | 0)) break;
                                e = qi(t, o) | 0;
                                if (!(a[o >> 2] | e)) n = n + 1 | 0;
                                else break
                            }
                            if (e | 0) r[h >> 0] = 1
                        }
                        p = u;
                        return
                    }

                    function qi(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            I = 0;
                        I = p;
                        p = p + 16 | 0;
                        h = I + 8 | 0;
                        l = I + 4 | 0;
                        u = I;
                        E = e + 49 | 0;
                        do {
                            if (!(r[E >> 0] | 0)) {
                                S = e + 4 | 0;
                                i = JS(a[S >> 2] | 0, 2) | 0;
                                if (!i) {
                                    i = JS(a[S >> 2] | 0, 0) | 0;
                                    if (!i) {
                                        i = 0;
                                        n = 1;
                                        break
                                    }
                                    rP(i, a[e + 24 >> 2] << 2);
                                    k = i
                                } else k = i;
                                f = JS(a[e >> 2] | 0, 1) | 0;
                                _ = JS(a[e >> 2] | 0, 1) | 0;
                                c = (f | 0) != 0;
                                if (c) {
                                    i = a[f + 24 >> 2] | 0;
                                    v = a[f + 20 >> 2] | 0
                                } else {
                                    i = 0;
                                    v = 0
                                }
                                b = (_ | 0) != 0;
                                if (b) {
                                    n = a[_ + 24 >> 2] | 0;
                                    m = a[_ + 20 >> 2] | 0
                                } else {
                                    n = 0;
                                    m = 0
                                }
                                A = r[e + 16 >> 0] | 0;
                                d = k + 24 | 0;
                                T = k + 20 | 0;
                                x = (a[T >> 2] | 0) >>> 2;
                                o = a[e + 24 >> 2] | 0;
                                x = (o | 0) < (x | 0) ? o : x;
                                a[u >> 2] = 0;
                                o = e + 56 | 0;
                                A = Ji(e, i, v, n, m, d, A, x, h, l, a[o >> 2] | 0, u) | 0;
                                if (A >>> 0 > 1) {
                                    QS(a[S >> 2] | 0, k);
                                    if (b) QS(a[e >> 2] | 0, _);
                                    if (!c) {
                                        i = -1;
                                        n = 1;
                                        break
                                    }
                                    QS(a[e >> 2] | 0, f);
                                    i = -1;
                                    n = 1;
                                    break
                                }
                                g = a[u >> 2] | 0;
                                a[o >> 2] = (a[o >> 2] | 0) - g;
                                n = e + 60 | 0;
                                a[n >> 2] = (a[n >> 2] | 0) + g;
                                n = a[h >> 2] | 0;
                                o = e + 64 | 0;
                                i = o;
                                i = aM(a[i >> 2] | 0, a[i + 4 >> 2] | 0, n | 0, ((n | 0) < 0) << 31 >> 31 | 0) | 0;
                                a[o >> 2] = i;
                                a[o + 4 >> 2] = P;
                                o = a[l >> 2] | 0;
                                i = e + 72 | 0;
                                u = i;
                                u = aM(a[u >> 2] | 0, a[u + 4 >> 2] | 0, o | 0, ((o | 0) < 0) << 31 >> 31 | 0) | 0;
                                a[i >> 2] = u;
                                a[i + 4 >> 2] = P;
                                i = a[e + 80 >> 2] | 0;
                                u = (o | 0) > 0;
                                if (u & (i | 0) != 0) d$[i & 1](a[e + 84 >> 2] | 0, 1, r[e + 17 >> 0] | 0, o, d);
                                do {
                                    if ((n | 0) >= 1) {
                                        if ((n | 0) <= (v | 0)) {
                                            if (!c) {
                                                w = 24;
                                                break
                                            }
                                            nP(f, n);
                                            w = 24;
                                            break
                                        }
                                        if (c) nP(f, v);
                                        if (b) {
                                            y = n - v | 0;
                                            nP(_, y);
                                            nP(k, o << 2);
                                            w = 26;
                                            break
                                        } else {
                                            nP(k, o << 2);
                                            break
                                        }
                                    } else w = 24
                                } while (0);
                                if ((w | 0) == 24 ? (nP(k, o << 2), b) : 0) {
                                    y = n - v | 0;
                                    w = 26
                                }
                                if ((w | 0) == 26 ? (y | 0) < (m | 0) : 0) QS(a[e >> 2] | 0, _);
                                do {
                                    if (c)
                                        if ((n | 0) < (v | 0)) {
                                            QS(a[e >> 2] | 0, f);
                                            i = 0;
                                            break
                                        } else {
                                            i = a[f + 12 >> 2] | 0;
                                            YS(a[f + 4 >> 2] | 0, s[f + 8 >> 0] | 0, f);
                                            break
                                        }
                                    else i = 0
                                } while (0);
                                if (!((n - v | 0) < (m | 0) | b ^ 1)) {
                                    i = a[_ + 12 >> 2] | i;
                                    YS(a[_ + 4 >> 2] | 0, s[_ + 8 >> 0] | 0, _)
                                }
                                n = e + 48 | 0;
                                if (!(i & 2)) i = (r[n >> 0] | 0) != 0;
                                else {
                                    r[n >> 0] = 1;
                                    i = 1
                                }
                                if (!((g | 0) < 1 & ((o | 0) < 1 & ((A | 0) == 0 & i))))
                                    if ((x - o | 0) >= 128 ? !(u & (a[e + 44 >> 2] | 0) > 3) : 0) {
                                        YS(a[S >> 2] | 0, 2, k);
                                        i = 0;
                                        n = 0;
                                        break
                                    } else i = 0;
                                else {
                                    r[E >> 0] = 1;
                                    i = 2
                                }
                                a[k + 12 >> 2] = i;
                                rP(k, (a[k + 16 >> 2] | 0) - (a[T >> 2] | 0) | 0);
                                YS(a[S >> 2] | 0, 1, k);
                                i = e + 44 | 0;
                                a[i >> 2] = (a[i >> 2] | 0) + 1;
                                i = 0;
                                n = 0
                            } else {
                                i = 0;
                                n = 1
                            }
                        } while (0);
                        a[t >> 2] = n;
                        p = I;
                        return i | 0
                    }

                    function Ji(e, t, i, n, s, o, u, h, l, f, c, d) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        f = f | 0;
                        c = c | 0;
                        d = d | 0;
                        var v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0;
                        I = p;
                        p = p + 48 | 0;
                        E = I + 8 | 0;
                        S = I + 4 | 0;
                        P = I;
                        a[l >> 2] = 0;
                        a[f >> 2] = 0;
                        v = 0;
                        while (1) {
                            if ((v | 0) >= (u | 0)) break;
                            a[E + (v << 2) >> 2] = a[o + (v << 2) >> 2];
                            v = v + 1 | 0
                        }
                        x = e + 8 | 0;
                        k = e + 88 | 0;
                        T = e + 92 | 0;
                        w = e + 17 | 0;
                        y = 0;
                        g = 0;
                        A = h;
                        o = c;
                        while (1) {
                            e = a[x >> 2] | 0;
                            e = jE(a[(a[e >> 2] | 0) + 20 >> 2] | 0, a[e + 4 >> 2] | 0, t, i, n, s, E, A, S, P) | 0;
                            if (e >>> 0 > 1) {
                                v = 7;
                                break
                            }
                            h = a[P >> 2] | 0;
                            if ((a[S >> 2] | 0) < 1 & (h | 0) < 1) {
                                v = 21;
                                break
                            }
                            v = a[k >> 2] | 0;
                            if ((h | 0) > 0 & (v | 0) != 0) d$[v & 1](a[T >> 2] | 0, 1, r[w >> 0] | 0, h, E);
                            e: do {
                                if ((o | 0) > 0) {
                                    b = a[P >> 2] | 0;
                                    e = (o | 0) < (b | 0) ? o : b;
                                    b = b - e | 0;
                                    a[P >> 2] = b;
                                    o = o - e | 0;
                                    a[d >> 2] = (a[d >> 2] | 0) + e;
                                    if ((e | 0) > 0 & (b | 0) > 0) {
                                        v = 0;
                                        while (1) {
                                            if ((v | 0) >= (u | 0)) break e;
                                            b = a[E + (v << 2) >> 2] | 0;
                                            gM(b | 0, b + (e << 2) | 0, a[P >> 2] << 2 | 0) | 0;
                                            v = v + 1 | 0
                                        }
                                    }
                                }
                            } while (0);
                            v = a[S >> 2] | 0;
                            c = v + g | 0;
                            b = a[P >> 2] | 0;
                            h = b + y | 0;
                            if ((i | 0) > (v | 0)) {
                                m = s;
                                i = i - v | 0;
                                _ = n;
                                e = t + v | 0
                            } else {
                                e = v - i | 0;
                                a[S >> 2] = e;
                                m = 0;
                                i = s - e | 0;
                                _ = 0;
                                e = n + e | 0
                            }
                            v = 0;
                            while (1) {
                                if ((v | 0) >= (u | 0)) break;
                                y = E + (v << 2) | 0;
                                a[y >> 2] = (a[y >> 2] | 0) + (b << 2);
                                v = v + 1 | 0
                            }
                            y = h;
                            g = c;
                            A = A - b | 0;
                            s = m;
                            n = _;
                            t = e
                        }
                        if ((v | 0) == 7) sE();
                        else if ((v | 0) == 21) {
                            a[l >> 2] = g;
                            a[f >> 2] = y
                        }
                        p = I;
                        return e | 0
                    }

                    function Qi(e) {
                        e = e | 0;
                        Zi(e);
                        return
                    }

                    function Zi(e) {
                        e = e | 0;
                        Ki(e);
                        return
                    }

                    function Ki(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1658] | 0;
                        if (t | 0) PS(t, e, 16);
                        return
                    }

                    function er(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        n = t + 416 | 0;
                        switch (((a[n >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                            case 0:
                                break;
                            case 3:
                                {
                                    if (r[t + 421 >> 0] | 0) i = 3;
                                    break
                                }
                            default:
                                i = 3
                        }
                        do {
                            if ((i | 0) == 3) {
                                i = a[t + 264 >> 2] | 0;
                                if (i | 0) tr(i);
                                if (e | 0 ? (a[n >> 2] | 0) >>> 0 > 131078 : 0) break;
                                ir(t)
                            }
                        } while (0);
                        return
                    }

                    function tr(e) {
                        e = e | 0;
                        qA(e) | 0;
                        return
                    }

                    function ir(e) {
                        e = e | 0;
                        rr(e);
                        return
                    }

                    function rr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        t = e + 416 | 0;
                        if (r[(a[e + 108 >> 2] | 0) + 51 >> 0] | 0) a[t >> 2] = 262155;
                        do {
                            n = a[t >> 2] | 0;
                            s$[a[236 + ((n & 65535) << 2) >> 2] & 63](e);
                            i = a[t >> 2] | 0;
                            if ((n | 0) == (i | 0)) break
                        } while (!(nr(e, i >>> 16) | 0));
                        return
                    }

                    function nr(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 548 | 0;
                        if ((a[i >> 2] | 0) != 0 ? (fI(e + 412 | 0, t) | 0) != (t | 0) : 0) {
                            u$[a[i >> 2] & 63](a[e + 552 >> 2] | 0, e);
                            e = 1
                        } else e = 0;
                        return e | 0
                    }

                    function ar(e) {
                        e = e | 0;
                        return
                    }

                    function sr(e) {
                        e = e | 0;
                        kr(e);
                        return
                    }

                    function or(e) {
                        e = e | 0;
                        oa(e);
                        return
                    }

                    function ur(e) {
                        e = e | 0;
                        sa(e);
                        return
                    }

                    function hr(e) {
                        e = e | 0;
                        aa(e);
                        return
                    }

                    function lr(e) {
                        e = e | 0;
                        ra(e);
                        return
                    }

                    function fr(e) {
                        e = e | 0;
                        Zn(e);
                        return
                    }

                    function cr(e) {
                        e = e | 0;
                        Bn(e);
                        return
                    }

                    function dr(e) {
                        e = e | 0;
                        Pn(e);
                        return
                    }

                    function pr(e) {
                        e = e | 0;
                        Sn(e);
                        return
                    }

                    function vr(e) {
                        e = e | 0;
                        xr(e);
                        return
                    }

                    function mr(e) {
                        e = e | 0;
                        _r(e);
                        return
                    }

                    function _r(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        br(a[e + 108 >> 2] | 0, 0);
                        gr(a[e + 236 >> 2] | 0);
                        t = e + 264 | 0;
                        i = a[t >> 2] | 0;
                        if (!((i | 0) != 0 ? (yr(i), (Ar(a[t >> 2] | 0) | 0) != 0) : 0)) n = 3;
                        if ((n | 0) == 3 ? (wr(e), r[e + 421 >> 0] | 0) : 0) a[e + 416 >> 2] = 0;
                        return
                    }

                    function br(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((t | 0) == 0 ? (r[e + 51 >> 0] = 0, i = a[e + 8 >> 2] | 0, i | 0) : 0) $E(i);
                        r[e + 50 >> 0] = t;
                        return
                    }

                    function gr(e) {
                        e = e | 0;
                        r[e + 20 >> 0] = 0;
                        e = e + 4 | 0;
                        if (((a[e >> 2] | 0) + -1 | 0) >>> 0 < 2) a[e >> 2] = 0;
                        return
                    }

                    function yr(e) {
                        e = e | 0;
                        tw(e);
                        return
                    }

                    function Ar(e) {
                        e = e | 0;
                        return iw(e) | 0
                    }

                    function wr(e) {
                        e = e | 0;
                        r[e + 243 >> 0] = 0;
                        r[e + 240 >> 0] = 0;
                        r[e + 241 >> 0] = 0;
                        r[e + 423 >> 0] = 0;
                        return
                    }

                    function xr(e) {
                        e = e | 0;
                        kr(e);
                        return
                    }

                    function kr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0.0,
                            l = 0.0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0;
                        _ = e + 444 | 0;
                        t = a[_ >> 2] | 0;
                        do {
                            if (a[e + 280 >> 2] | 0) {
                                if ((t | 0) == 0 ? (a[e + 476 >> 2] | 0) == 0 : 0) break;
                                Tr(e, 0)
                            }
                        } while (0);
                        Er(e);
                        Sr(e);
                        g = e + 416 | 0;
                        do {
                            if ((a[g >> 2] | 0) != 262155) {
                                Pr(e);
                                i = Ir(e) | 0;
                                if ((i | 0) >= 0) {
                                    s = e + 340 | 0;
                                    b = e + 344 | 0;
                                    n = a[b >> 2] | 0;
                                    d = e + 348 | 0;
                                    y = a[d >> 2] | 0;
                                    A = e + 364 | 0;
                                    o = a[A >> 2] | 0;
                                    c = a[e + 456 >> 2] | 0;
                                    if ((n | 0) > (a[e + 12 >> 2] | 0)) {
                                        sE();
                                        a[g >> 2] = 262155;
                                        break
                                    }
                                    p = a[e + 20 >> 2] | 0;
                                    if ((y | 0) > (p | 0)) {
                                        sE();
                                        a[g >> 2] = 262155;
                                        break
                                    }
                                    w = e + 236 | 0;
                                    gr(a[w >> 2] | 0);
                                    m = e + 108 | 0;
                                    Mr(a[m >> 2] | 0, a[e + 40 + (i << 2) >> 2] | 0, n);
                                    Cr(a[m >> 2] | 0);
                                    i = a[e + 276 >> 2] | 0;
                                    if ((i | 0) != 0 ? (f = a[i + 32 >> 2] | 0, (f | 0) != 0) : 0) WE(a[(a[m >> 2] | 0) + 8 >> 2] | 0, f);
                                    else WE(a[(a[m >> 2] | 0) + 8 >> 2] | 0, 0);
                                    if ((o | 0) != 0 & (c | 0) != -1) {
                                        if ((c | 0) == -2) {
                                            HE(a[(a[m >> 2] | 0) + 8 >> 2] | 0);
                                            i = 0
                                        } else i = c + 1 | 0;
                                        a[A >> 2] = i
                                    }
                                    if ((c | 0) == -3) a[e + 532 >> 2] = 17;
                                    o = e + 432 | 0;
                                    u = +h[o >> 2];
                                    i = e + 436 | 0;
                                    if (!(u > 0.0)) {
                                        u = +h[i >> 2];
                                        if (u > 0.0) v = 26;
                                        else {
                                            c = e + 424 | 0;
                                            f = c;
                                            u = +h[c >> 2]
                                        }
                                    } else v = 26;
                                    if ((v | 0) == 26) {
                                        f = e + 424 | 0;
                                        h[f >> 2] = u
                                    }
                                    h[o >> 2] = 0.0;
                                    h[i >> 2] = 0.0;
                                    i = a[d >> 2] | 0;
                                    if ((p | 0) < (~~(u * +(i | 0) + .5) | 0)) {
                                        sE();
                                        i = a[d >> 2] | 0;
                                        u = +(p | 0) / +(i | 0);
                                        h[f >> 2] = u
                                    }
                                    l = +h[e + 428 >> 2];
                                    Rr(a[m >> 2] | 0, a[1660] | 0, a[b >> 2] | 0, i, u > l ? u : l);
                                    o = e + 476 | 0;
                                    i = a[o >> 2] | 0;
                                    if (i) {
                                        t = Dr(i) | 0;
                                        l = +h[e + 472 >> 2];
                                        u = +h[(a[o >> 2] | 0) + 472 >> 2];
                                        if (l != u) t = ~~(+(t >>> 0) * u / l) >>> 0
                                    }
                                    do {
                                        if (!t) {
                                            o = 0;
                                            t = 0;
                                            i = 0;
                                            v = 40
                                        } else {
                                            i = a[e + 404 >> 2] | 0;
                                            o = (a[s >> 2] | 0) == 9;
                                            if ((i | 0) < 1) {
                                                if (!o) {
                                                    NE();
                                                    o = 0;
                                                    t = 0;
                                                    i = 0;
                                                    v = 40;
                                                    break
                                                }
                                            } else if (!o) {
                                                p = fM(t | 0, 0, y | 0, ((y | 0) < 0) << 31 >> 31 | 0) | 0;
                                                p = hM(p | 0, P | 0, 1e3, 0) | 0;
                                                o = P;
                                                v = cM(p | 0, o | 0, i | 0, ((i | 0) < 0) << 31 >> 31 | 0) | 0;
                                                v = sM(p | 0, o | 0, v | 0, P | 0) | 0;
                                                i = P;
                                                o = Fr(s, v, i) | 0;
                                                GE(a[(a[m >> 2] | 0) + 8 >> 2] | 0, o);
                                                o = t;
                                                t = v;
                                                v = 40;
                                                break
                                            }
                                            i = e + 448 | 0;
                                            a[i >> 2] = 0;
                                            a[i + 4 >> 2] = 0;
                                            a[_ >> 2] = t;
                                            t = 0;
                                            i = 0;
                                            v = 41
                                        }
                                    } while (0);
                                    e: do {
                                        if ((v | 0) == 40) {
                                            m = a[s >> 2] | 0;
                                            p = e + 448 | 0;
                                            a[p >> 2] = t;
                                            a[p + 4 >> 2] = i;
                                            a[_ >> 2] = o;
                                            switch (m | 0) {
                                                case 9:
                                                    {
                                                        v = 41;
                                                        break e
                                                    }
                                                case 4:
                                                    {
                                                        Nr(e);
                                                        break e
                                                    }
                                                case 12:
                                                    {
                                                        Lr(e);Ur(e);n = a[b >> 2] | 0;
                                                        break e
                                                    }
                                                default:
                                                    {
                                                        Vr(e);
                                                        break e
                                                    }
                                            }
                                        }
                                    } while (0);
                                    if ((v | 0) == 41) Br(e);
                                    if (r[e + 244 >> 0] | 0) Xr(a[w >> 2] | 0, n);
                                    jr(a[w >> 2] | 0, y);
                                    Gr(a[w >> 2] | 0, +h[f >> 2]);
                                    l = +h[e + 388 >> 2];
                                    $r(a[w >> 2] | 0, l <= 0.0 | l >= 1.0 ? 1.0 : l);
                                    w = (a[A >> 2] | 0) != 0 & 1;
                                    w = (i | 0) > 0 | (i | 0) == 0 & t >>> 0 > 0 ? w | 2 : w;
                                    r[e + 243 >> 0] = w;
                                    a[g >> 2] = w << 24 >> 24 == 0 ? 65540 : 65538;
                                    Hr(e)
                                }
                            } else NE()
                        } while (0);
                        return
                    }

                    function Tr(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + 280 | 0;
                        r = a[i >> 2] | 0;
                        switch (gn(r) | 0) {
                            case 0:
                                {
                                    yn(e, r, a[e + 284 >> 2] | 0, t);
                                    break
                                }
                            case 1:
                                {
                                    An(e, r, a[e + 284 >> 2] | 0, t) | 0;
                                    break
                                }
                            default:
                                {}
                        }
                        a[i >> 2] = 0;
                        return
                    }

                    function Er(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        t = e + 240 | 0;
                        s = r[t >> 0] | 0;
                        i = e + 241 | 0;
                        e: do {
                            if (!(s << 24 >> 24 == 1 ? s << 24 >> 24 == (r[i >> 0] | 0) : 0)) {
                                vn(e);
                                n = r[t >> 0] | 0;
                                s = r[i >> 0] | 0;
                                if (n << 24 >> 24 == 2 ? n << 24 >> 24 == s << 24 >> 24 : 0) {
                                    r[i >> 0] = 0;
                                    break
                                }
                                if (n << 24 >> 24 == 0 ? (r[t >> 0] = s, r[i >> 0] = 0, s << 24 >> 24) : 0) {
                                    r[e + 242 >> 0] = s;
                                    switch (s << 24 >> 24) {
                                        case 1:
                                            {
                                                t = e + 104 | 0;i = JS(a[t >> 2] | 0, 3) | 0;
                                                if (!i) {
                                                    sE();
                                                    break e
                                                } else {
                                                    a[i + 12 >> 2] = 0;
                                                    iP(i, 0, (a[e + 248 >> 2] | 0) + (a[e + 256 >> 2] | 0) | 0);
                                                    rP(i, a[e + 260 >> 2] | 0);
                                                    YS(a[t >> 2] | 0, 1, i);
                                                    break e
                                                }
                                            }
                                        case 2:
                                            {
                                                if (!(mn(a[e + 264 >> 2] | 0) | 0)) a[e + 416 >> 2] = 262155;a[e + 248 >> 2] = 0;a[e + 252 >> 2] = 0;
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                }
                            }
                        } while (0);
                        return
                    }

                    function Sr(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 264 >> 2] | 0;
                        if (t | 0 ? (Ar(t) | 0) == 5 : 0) a[e + 416 >> 2] = 262155;
                        return
                    }

                    function Pr(e) {
                        e = e | 0;
                        if (r[e + 421 >> 0] | 0 ? (ln(e), fn(e) | 0) : 0) {
                            a[e + 416 >> 2] = 0;
                            wr(e)
                        }
                        return
                    }

                    function Ir(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 16 | 0;
                        f = d + 4 | 0;
                        c = d;
                        t = a[e + 316 >> 2] | 0;
                        do {
                            if (!t) {
                                l = e + 104 | 0;
                                u = JS(a[l >> 2] | 0, 1) | 0;
                                if (u) {
                                    h = e + 408 | 0;
                                    i = a[h >> 2] | 0;
                                    r = u + 20 | 0;
                                    t = a[r >> 2] | 0;
                                    if ((i | 0) > 0) {
                                        t = (t | 0) < (i | 0) ? t : i;
                                        a[f >> 2] = t;
                                        nP(u, t);
                                        a[h >> 2] = (a[h >> 2] | 0) - t;
                                        t = a[r >> 2] | 0;
                                        if (!t) {
                                            YS(a[u + 4 >> 2] | 0, s[u + 8 >> 0] | 0, u);
                                            t = Ir(e) | 0;
                                            break
                                        }
                                    }
                                    o = a[u + 24 >> 2] | 0;
                                    if ((t | 0) < 1024 ? (n = JS(a[l >> 2] | 0, 1) | 0, (n | 0) != 0) : 0) {
                                        i = a[n + 20 >> 2] | 0;
                                        r = a[n + 24 >> 2] | 0
                                    } else {
                                        i = 0;
                                        r = 0;
                                        n = 0
                                    }
                                    a[f >> 2] = 0;
                                    t = hn(e, o, t, r, i, f, c, e + 340 | 0) | 0;
                                    if (n | 0) QS(a[l >> 2] | 0, n);
                                    QS(a[l >> 2] | 0, u);
                                    if ((t | 0) == 1) {
                                        a[h >> 2] = a[f >> 2];
                                        t = -1;
                                        break
                                    }
                                    if ((t | 0) < 0) {
                                        a[e + 416 >> 2] = 262155;
                                        t = -1;
                                        break
                                    } else {
                                        t = a[c >> 2] | 0;
                                        break
                                    }
                                } else t = -1
                            } else {
                                r = e + 340 | 0;
                                t = t + 8 | 0;
                                i = r + 68 | 0;
                                do {
                                    a[r >> 2] = a[t >> 2];
                                    r = r + 4 | 0;
                                    t = t + 4 | 0
                                } while ((r | 0) < (i | 0));
                                t = 0
                            }
                        } while (0);
                        p = d;
                        return t | 0
                    }

                    function Mr(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 8 >> 2] = t;
                        r[e + 17 >> 0] = i;
                        return
                    }

                    function Cr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 4 | 0;
                        t = a[i >> 2] | 0;
                        if (t | 0) {
                            while (1) {
                                t = JS(t, 1) | 0;
                                if (!t) break;
                                YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t);
                                t = a[i >> 2] | 0
                            }
                            while (1) {
                                t = JS(a[i >> 2] | 0, 2) | 0;
                                if (!t) break;
                                YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t)
                            }
                            t = a[e + 8 >> 2] | 0;
                            if (t | 0) $E(t);
                            i = e + 56 | 0;
                            e = e + 44 | 0;
                            a[e >> 2] = 0;
                            a[e + 4 >> 2] = 0;
                            a[i >> 2] = 0;
                            a[i + 4 >> 2] = 0;
                            a[i + 8 >> 2] = 0;
                            a[i + 12 >> 2] = 0;
                            a[i + 16 >> 2] = 0;
                            a[i + 20 >> 2] = 0
                        }
                        return
                    }

                    function Or(e, t) {
                        e = e | 0;
                        t = t | 0;
                        nn(t);
                        return
                    }

                    function Rr(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = +s;
                        var o = 0,
                            u = 0,
                            h = 0;
                        u = e + 20 | 0;
                        h = a[u >> 2] | 0;
                        if (((h | 0) >= 1 ? !((i | 0) < 1 | (n | 0) < 1) : 0) ? (n = G(r[e + 19 >> 0] | 0, ~~(+(n | 0) * s + .5)) | 0, n = ((rn(t, i, n, r[e + 18 >> 0] | 0) | 0) / (i | 0) | 0 | 0) / 16 | 0, o = e + 24 | 0, a[o >> 2] = n, (n | 0) > (h | 0)) : 0) {
                            NE();
                            a[o >> 2] = a[u >> 2]
                        }
                        return
                    }

                    function Dr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        i = r + 8 | 0;
                        if (!(Jr(e, t, i) | 0)) {
                            e = 0;
                            t = 0
                        } else {
                            e = t;
                            e = fM(a[e >> 2] | 0, a[e + 4 >> 2] | 0, 1e3, 0) | 0;
                            t = a[i >> 2] | 0;
                            t = hM(e | 0, P | 0, t | 0, ((t | 0) < 0) << 31 >> 31 | 0) | 0;
                            e = P
                        }
                        P = e;
                        p = r;
                        return t | 0
                    }

                    function Fr(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        if ((a[e + 60 >> 2] | 0) < 1) {
                            sE();
                            i = -1;
                            t = -1
                        } else {
                            if ((a[e + 24 >> 2] | 0) != 0 ? (r = a[e + 40 >> 2] | 0, n = ((r | 0) < 0) << 31 >> 31, !((n | 0) > (i | 0) | (n | 0) == (i | 0) & r >>> 0 > t >>> 0)) : 0) {
                                s = a[e + 36 >> 2] | 0;
                                n = ((s | 0) < 0) << 31 >> 31;
                                i = sM(t | 0, i | 0, s | 0, n | 0) | 0;
                                t = r - s | 0;
                                t = cM(i | 0, P | 0, t | 0, ((t | 0) < 0) << 31 >> 31 | 0) | 0;
                                t = aM(t | 0, P | 0, s | 0, n | 0) | 0;
                                i = P
                            }
                            s = a[e + 64 >> 2] | 0;
                            s = cM(t | 0, i | 0, s | 0, ((s | 0) < 0) << 31 >> 31 | 0) | 0;
                            t = sM(t | 0, i | 0, s | 0, P | 0) | 0;
                            i = P
                        }
                        P = i;
                        return t | 0
                    }

                    function Br(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        t = s;
                        i = e + 108 | 0;
                        r = a[i >> 2] | 0;
                        n = a[r + 80 >> 2] | 0;
                        if (n | 0) d$[n & 1](a[r + 84 >> 2] | 0, 1, 0, 0, 0);
                        n = a[e + 316 >> 2] | 0;
                        a[t >> 2] = n;
                        a[t + 4 >> 2] = a[e + 444 >> 2];
                        a[t + 8 >> 2] = a[e + 320 >> 2];
                        a[t + 12 >> 2] = a[e + 456 >> 2];
                        if (!n) {
                            a[a[i >> 2] >> 2] = a[e + 104 >> 2];
                            Yr(a[e + 236 >> 2] | 0, a[e + 344 >> 2] | 0, a[e + 168 >> 2] | 0, t)
                        } else {
                            a[a[i >> 2] >> 2] = 0;
                            Yr(a[e + 236 >> 2] | 0, a[e + 344 >> 2] | 0, a[e + 104 >> 2] | 0, t)
                        }
                        p = s;
                        return
                    }

                    function Nr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 32 | 0;
                        t = l;
                        i = e + 340 | 0;
                        r = t + 12 | 0;
                        a[r >> 2] = 0;
                        o = t + 16 | 0;
                        a[o >> 2] = 0;
                        u = a[e + 276 >> 2] | 0;
                        if ((u | 0 ? (h = a[u + 32 >> 2] | 0, h | 0) : 0) ? (n[h + 262 >> 1] | 0) > 0 : 0) {
                            a[r >> 2] = h;
                            a[o >> 2] = 256
                        }
                        u = e + 448 | 0;
                        u = Fr(i, a[u >> 2] | 0, a[u + 4 >> 2] | 0) | 0;
                        h = t;
                        a[h >> 2] = u;
                        a[h + 4 >> 2] = P;
                        a[t + 8 >> 2] = s[e + 245 >> 0];
                        a[a[e + 108 >> 2] >> 2] = 0;
                        Yr(a[e + 236 >> 2] | 0, a[e + 344 >> 2] | 0, a[e + 104 >> 2] | 0, t);
                        p = l;
                        return
                    }

                    function Lr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        t = p;
                        p = p + 16 | 0;
                        n = t;
                        i = e + 324 | 0;
                        qr(a[i >> 2] | 0, n) | 0;
                        r = a[n >> 2] | 0;
                        a[e + 344 >> 2] = r;
                        a[e + 348 >> 2] = a[n + 4 >> 2];
                        Yr(a[e + 236 >> 2] | 0, r, a[e + 104 >> 2] | 0, a[i >> 2] | 0);
                        p = t;
                        return
                    }

                    function Ur(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        t = o;
                        do {
                            if (!e) sE();
                            else {
                                if ((fI(e, 1) | 0) == 1) {
                                    sE();
                                    break
                                }
                                zr(e);
                                s = e + 328 | 0;
                                r[s >> 0] = 73;
                                r[e + 329 >> 0] = 78;
                                r[e + 330 >> 0] = 83;
                                r[e + 331 >> 0] = 84;
                                if ((qr(a[e + 324 >> 2] | 0, t) | 0) != 1) {
                                    sE();
                                    break
                                }
                                i = a[t + 4 >> 2] | 0;
                                if ((i | 0) >= 0 ? (n = a[t >> 2] | 0, (n | 0) <= 8) : 0) {
                                    r[e + 332 >> 0] = i >>> 24;
                                    r[e + 333 >> 0] = i >>> 16;
                                    r[e + 334 >> 0] = i >>> 8;
                                    r[e + 335 >> 0] = i;
                                    r[e + 336 >> 0] = n;
                                    a[e + 248 >> 2] = s;
                                    a[e + 252 >> 2] = 9;
                                    a[e + 256 >> 2] = 0;
                                    a[e + 260 >> 2] = 9;
                                    r[e + 241 >> 0] = 1;
                                    fI(e, 0) | 0;
                                    break
                                }
                                sE()
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function Vr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e + 168 >> 2] | 0;
                        i = a[e + 344 >> 2] | 0;
                        a[a[e + 108 >> 2] >> 2] = a[e + 104 >> 2];
                        Yr(a[e + 236 >> 2] | 0, i, t, 0);
                        return
                    }

                    function Xr(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((t | 0) == 1) Wr(e, 0, 0.0);
                        else {
                            Wr(e, 0, -1.0);
                            Wr(e, 1, 1.0)
                        }
                        return
                    }

                    function jr(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 16 >> 2] = t;
                        t = e + 23 | 0;
                        r[t >> 0] = r[t >> 0] | 2;
                        return
                    }

                    function Gr(e, t) {
                        e = e | 0;
                        t = +t;
                        h[e + 40 >> 2] = t;
                        e = e + 23 | 0;
                        r[e >> 0] = r[e >> 0] | 2;
                        return
                    }

                    function $r(e, t) {
                        e = e | 0;
                        t = +t;
                        h[e + 12 >> 2] = t;
                        return
                    }

                    function Hr(e) {
                        e = e | 0;
                        var t = 0;
                        if (((r[e + 240 >> 0] | 0) != 1 ? a[e + 264 >> 2] | 0 : 0) ? (t = e + 268 | 0, (a[t >> 2] | 0) == 0) : 0) a[t >> 2] = 0;
                        return
                    }

                    function Wr(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var n = 0,
                            o = 0.0;
                        if ((s[e + 21 >> 0] | 0 | 0) > (t | 0)) {
                            o = +D(+((i + 1.0) * .7853981852531433));
                            i = - +D(+((i + -1.0) * .7853981852531433));
                            n = a[e + 52 >> 2] | 0;
                            h[n + (t * 36 | 0) + 4 >> 2] = i;
                            h[n + (t * 36 | 0) + 8 >> 2] = o;
                            t = e + 23 | 0;
                            r[t >> 0] = r[t >> 0] | 1
                        }
                        return
                    }

                    function Yr(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        if (e | 0 ? (a[e + 8 >> 2] = i, r[e + 22 >> 0] = t, i = a[e >> 2] | 0, (i$[a[(a[i >> 2] | 0) + 32 >> 2] & 7](a[i + 4 >> 2] | 0, t, -1, n) | 0) == 0) : 0) a[e + 4 >> 2] = 2;
                        return
                    }

                    function zr(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 276 | 0;
                        i = e + 296 | 0;
                        a[i >> 2] = 0;
                        a[i + 4 >> 2] = 0;
                        a[e + 304 >> 2] = 0;
                        a[e + 316 >> 2] = 0;
                        a[t >> 2] = 0;
                        a[t + 4 >> 2] = 0;
                        a[t + 8 >> 2] = 0;
                        a[t + 12 >> 2] = 0;
                        return
                    }

                    function qr(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        s = e + 20 | 0;
                        a[i >> 2] = r[s >> 0];
                        u$[a[(a[e + 12 >> 2] | 0) + 40 >> 2] & 63](a[e + 4 >> 2] | 0, i);
                        i = a[i >> 2] | 0;
                        if (i >>> 0 > (r[s >> 0] | 0) >>> 0) {
                            sE();
                            e = 0
                        } else {
                            a[t >> 2] = i;
                            a[t + 4 >> 2] = a[e + 24 >> 2];
                            e = 1
                        }
                        p = n;
                        return e | 0
                    }

                    function Jr(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        h = p;
                        p = p + 16 | 0;
                        u = h;
                        n = h + 8 | 0;
                        o = a[e + 348 >> 2] | 0;
                        do {
                            if ((o | 0) >= 1 ? (a[e + 416 >> 2] | 0) >>> 0 >= 131072 : 0) {
                                if (r[e + 421 >> 0] | 0 ? (Qr(e) | 0) == 0 : 0) {
                                    e = 0;
                                    o = -1;
                                    s = 0;
                                    n = 0;
                                    break
                                }
                                Zr(a[e + 236 >> 2] | 0, u, n);
                                n = u;
                                s = a[n >> 2] | 0;
                                n = a[n + 4 >> 2] | 0;
                                if ((n | 0) > -1 | (n | 0) == -1 & s >>> 0 > 4294967295) {
                                    l = e + 448 | 0;
                                    n = aM(a[l >> 2] | 0, a[l + 4 >> 2] | 0, s | 0, n | 0) | 0;
                                    s = a[e + 108 >> 2] | 0;
                                    s = (a[s + 56 >> 2] | 0) + (a[s + 60 >> 2] | 0) | 0;
                                    s = aM(n | 0, P | 0, s | 0, ((s | 0) < 0) << 31 >> 31 | 0) | 0;
                                    n = P;
                                    e = u;
                                    a[e >> 2] = s;
                                    a[e + 4 >> 2] = n;
                                    e = 1
                                } else e = 1
                            } else {
                                e = 0;
                                o = -1;
                                s = 0;
                                n = 0
                            }
                        } while (0);
                        l = t;
                        a[l >> 2] = s;
                        a[l + 4 >> 2] = n;
                        a[i >> 2] = o;
                        p = h;
                        return e | 0
                    }

                    function Qr(e) {
                        e = e | 0;
                        if (e) {
                            e = a[e + 236 >> 2] | 0;
                            if (!e) e = -1;
                            else e = tn(a[e + 4 >> 2] | 0) | 0
                        } else {
                            sE();
                            e = -1
                        }
                        return e | 0
                    }

                    function Zr(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Kr();
                        e = a[e >> 2] | 0;
                        l$[a[(a[e >> 2] | 0) + 68 >> 2] & 7](a[e + 4 >> 2] | 0, t, i);
                        en();
                        return
                    }

                    function Kr() {
                        Ai();
                        return
                    }

                    function en() {
                        xi();
                        return
                    }

                    function tn(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 0:
                                {
                                    e = 0;
                                    break
                                }
                            case 3:
                                {
                                    e = 1;
                                    break
                                }
                            case 5:
                            case 4:
                                {
                                    e = 2;
                                    break
                                }
                            case 1:
                                {
                                    e = 3;
                                    break
                                }
                            default:
                                e = 4
                        }
                        return e | 0
                    }

                    function rn(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        return G(t << 11, (((((G(G(t << 3, i) | 0, r) | 0) / (e | 0) | 0 | 0) / (t | 0) | 0 | 0) / 4 | 0) + 511 | 0) / 512 | 0) | 0
                    }

                    function nn(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if ((fI(e, 1) | 0) == 1) {
                                    sE();
                                    break
                                } else {
                                    an(e);
                                    fI(e, 0) | 0;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function an(e) {
                        e = e | 0;
                        var t = 0;
                        e: do {
                            if (!(a[e + 4 >> 2] | 0)) {
                                switch (((a[e + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                                    case 1:
                                    case 2:
                                    case 4:
                                        break;
                                    default:
                                        {
                                            t = 4;
                                            break e
                                        }
                                }
                                sE()
                            } else t = 4
                        } while (0);
                        if ((t | 0) == 4) sn(e);
                        return
                    }

                    function sn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 241 | 0;
                        if ((r[t >> 0] | 0) == 0 ? (i = r[e + 242 >> 0] | 0, r[t >> 0] = i, a[e + 256 >> 2] = 0, a[e + 260 >> 2] = a[e + 252 >> 2], i << 24 >> 24 == 2) : 0) on(e, 0, 0, -1, 0, 0, -1, -1, 0);
                        return
                    }

                    function on(e, t, i, r, n, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        var l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 32 | 0;
                        v = m;
                        d = e + 264 | 0;
                        if (a[d >> 2] | 0) {
                            aE(v, 32);
                            a[v >> 2] = t;
                            a[v + 4 >> 2] = i;
                            a[v + 28 >> 2] = r;
                            l = v + 8 | 0;
                            c = l;
                            a[c >> 2] = n;
                            a[c + 4 >> 2] = s;
                            c = v + 16 | 0;
                            r = c;
                            a[r >> 2] = o;
                            a[r + 4 >> 2] = u;
                            a[v + 24 >> 2] = h;
                            h = e + 296 | 0;
                            r = a[h >> 2] | 0;
                            h = a[h + 4 >> 2] | 0;
                            if ((h | 0) > 0 | (h | 0) == 0 & r >>> 0 > 0) {
                                r = aM(r | 0, h | 0, n | 0, s | 0) | 0;
                                f = P;
                                a[l >> 2] = r;
                                a[l + 4 >> 2] = f;
                                l = sM(a[e + 304 >> 2] | 0, 0, n | 0, s | 0) | 0;
                                h = P;
                                s = c;
                                a[s >> 2] = l;
                                a[s + 4 >> 2] = h;
                                if ((u | 0) > -1 | (u | 0) == -1 & o >>> 0 > 4294967295) {
                                    n = (h | 0) > (u | 0) | (h | 0) == (u | 0) & l >>> 0 > o >>> 0;
                                    l = n ? o : l;
                                    h = n ? u : h;
                                    n = c;
                                    a[n >> 2] = l;
                                    a[n + 4 >> 2] = h;
                                    n = r
                                } else n = r
                            } else {
                                f = s;
                                l = o;
                                h = u
                            }
                            un(a[d >> 2] | 0, v);
                            r = a[e + 580 >> 2] | 0;
                            if (r | 0) v$[r & 0](a[e + 584 >> 2] | 0, t, i, n, f, l, h)
                        } else {
                            sE();
                            a[e + 416 >> 2] = 262155
                        }
                        p = m;
                        return
                    }

                    function un(e, t) {
                        e = e | 0;
                        t = t | 0;
                        JA(e, t);
                        return
                    }

                    function hn(e, t, i, r, n, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0;
                        a[o >> 2] = -1;
                        do {
                            if (!((t | 0) == 0 | (i | 0) < 1)) {
                                f = 0;
                                while (1) {
                                    if ((f | 0) >= 2) {
                                        e = 7;
                                        break
                                    }
                                    l = a[e + 32 + (f << 2) >> 2] | 0;
                                    if (l | 0 ? (h = LE(a[l + 4 >> 2] | 0, t, i, r, n, u, s) | 0, (h | 0) > -1) : 0) {
                                        e = 8;
                                        break
                                    }
                                    f = f + 1 | 0
                                }
                                if ((e | 0) == 7) {
                                    sE();
                                    h = -2;
                                    break
                                } else if ((e | 0) == 8) {
                                    a[o >> 2] = f;
                                    break
                                }
                            } else {
                                sE();
                                h = -5
                            }
                        } while (0);
                        return h | 0
                    }

                    function ln(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        t = e + 236 | 0;
                        gr(a[t >> 2] | 0);
                        if (!((r[e + 247 >> 0] | 0) == 0 ? (tn(a[(a[t >> 2] | 0) + 4 >> 2] | 0) | 0) != 0 : 0)) n = 3;
                        if ((n | 0) == 3 ? (br(a[e + 108 >> 2] | 0, 0), i = a[e + 264 >> 2] | 0, i | 0) : 0) yr(i);
                        return
                    }

                    function fn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if ((r[e + 247 >> 0] | 0) == 0 ? (tn(a[(a[e + 236 >> 2] | 0) + 4 >> 2] | 0) | 0) != 0 : 0) t = 0;
                        else i = 3;
                        do {
                            if ((i | 0) == 3) {
                                t = a[e + 264 >> 2] | 0;
                                if (t | 0 ? Ar(t) | 0 : 0) {
                                    t = 0;
                                    break
                                }
                                cn(e);
                                dn(e);
                                t = 1
                            }
                        } while (0);
                        return t | 0
                    }

                    function cn(e) {
                        e = e | 0;
                        if ((r[e + 240 >> 0] | 0) == 2) Hr(e);
                        e = e + 268 | 0;
                        if (a[e >> 2] | 0) a[e >> 2] = 0;
                        return
                    }

                    function dn(e) {
                        e = e | 0;
                        pn(a[e + 104 >> 2] | 0);
                        pn(a[e + 168 >> 2] | 0);
                        return
                    }

                    function pn(e) {
                        e = e | 0;
                        var t = 0;
                        while (1) {
                            t = JS(e, 1) | 0;
                            if (!t) break;
                            YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t)
                        }
                        return
                    }

                    function vn(e) {
                        e = e | 0;
                        if (a[e + 264 >> 2] | 0 ? (r[e + 240 >> 0] | 0) == 2 : 0) bn(e);
                        return
                    }

                    function mn(e) {
                        e = e | 0;
                        if (e)
                            if ((Ar(e) | 0) == 1) e = 1;
                            else {
                                _n(e);
                                e = 1
                            }
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function _n(e) {
                        e = e | 0;
                        ew(e);
                        return
                    }

                    function bn(e) {
                        e = e | 0;
                        switch (Ar(a[e + 264 >> 2] | 0) | 0) {
                            case 4:
                                {
                                    r[e + 240 >> 0] = 0;
                                    break
                                }
                            case 5:
                                {
                                    a[e + 416 >> 2] = 262155;
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function gn(e) {
                        e = e | 0;
                        if ((e | 0) != 0 ? (a[e + 4 >> 2] | 0) != 0 : 0) e = ZG[a[a[e >> 2] >> 2] & 7]() | 0;
                        else e = 2;
                        return e | 0
                    }

                    function yn(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        o = l;
                        u = l + 8 | 0;
                        h = ai(t, 0) | 0;
                        if (!(KG[a[(a[t >> 2] | 0) + 4 >> 2] & 63](t) | 0)) {
                            kn(t, i, o, u);
                            if (r[e + 243 >> 0] & 1 ? (s = a[e + 372 >> 2] | 0, s | 0) : 0) a[u >> 2] = s;
                            i = o;
                            i = aM(a[i >> 2] | 0, a[i + 4 >> 2] | 0, n | 0, 0) | 0;
                            Tn(e, h, a[t + 8 >> 2] | 0, i, 0, (a[u >> 2] | 0) - n | 0, 0);
                            n = o;
                            o = a[n + 4 >> 2] | 0;
                            h = e + 296 | 0;
                            a[h >> 2] = a[n >> 2];
                            a[h + 4 >> 2] = o;
                            a[e + 304 >> 2] = a[u >> 2]
                        } else En(e, h, i);
                        p = l;
                        return
                    }

                    function An(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        n = o + 4 | 0;
                        s = o;
                        if (!(wn(t, i, n, s) | 0)) {
                            NE();
                            e = 0
                        } else {
                            s = a[s >> 2] | 0;
                            xn(e, a[n >> 2] | 0, s, r, s - r | 0);
                            e = 1
                        }
                        p = o;
                        return e | 0
                    }

                    function wn(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        return i$[a[(a[e >> 2] | 0) + 28 >> 2] & 7](e, t, i, r) | 0
                    }

                    function xn(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0;
                        o = (n | 0) > (i | 0);
                        a[e + 248 >> 2] = t;
                        a[e + 252 >> 2] = i;
                        a[e + 256 >> 2] = o ? i : n;
                        a[e + 260 >> 2] = o ? 0 : s;
                        r[e + 241 >> 0] = 1;
                        return
                    }

                    function kn(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        i$[a[(a[e >> 2] | 0) + 24 >> 2] & 7](e, t, i, r) | 0;
                        return
                    }

                    function Tn(e, t, i, n, a, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        on(e, t, i, -1, n, a, s, o, 0);
                        r[e + 241 >> 0] = 2;
                        return
                    }

                    function En(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        on(e, t, 0, i, 0, 0, -1, -1, 0);
                        r[e + 241 >> 0] = 2;
                        return
                    }

                    function Sn(e) {
                        e = e | 0;
                        if (r[e + 421 >> 0] | 0) a[e + 416 >> 2] = 0;
                        return
                    }

                    function Pn(e) {
                        e = e | 0;
                        var t = 0;
                        br(a[e + 108 >> 2] | 0, 0);
                        do {
                            if (!(r[e + 421 >> 0] | 0)) {
                                t = e + 423 | 0;
                                if (r[t >> 0] | 0) {
                                    r[t >> 0] = 0;
                                    In(e);
                                    break
                                }
                                cn(e);
                                t = a[e + 264 >> 2] | 0;
                                if (t | 0) yr(t);
                                a[e + 416 >> 2] = 196617
                            } else a[e + 416 >> 2] = 0
                        } while (0);
                        return
                    }

                    function In(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e + 532 >> 2] | 0;
                        if (t | 0 ? (i = e + 4 | 0, a[i >> 2] = 1, u$[t & 63](a[e + 536 >> 2] | 0, e), a[i >> 2] = 0, r[e + 241 >> 0] | 0) : 0) {
                            Mn(e);
                            a[e + 416 >> 2] = 131082
                        }
                        return
                    }

                    function Mn(e) {
                        e = e | 0;
                        var t = 0;
                        dn(e);
                        Cn(e);
                        On(e);
                        t = e + 416 | 0;
                        if ((a[t >> 2] | 0) != 131080) {
                            a[t >> 2] = 65537;
                            nr(e, 1) | 0
                        }
                        return
                    }

                    function Cn(e) {
                        e = e | 0;
                        r[e + 247 >> 0] = 0;
                        r[e + 421 >> 0] = 0;
                        r[e + 422 >> 0] = 0;
                        a[e + 408 >> 2] = 0;
                        a[e + 460 >> 2] = 0;
                        a[e + 320 >> 2] = 0;
                        return
                    }

                    function On(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        a[e + 532 >> 2] = a[e + 484 >> 2];
                        a[e + 536 >> 2] = a[e + 488 >> 2];
                        a[e + 540 >> 2] = a[e + 492 >> 2];
                        a[e + 544 >> 2] = a[e + 496 >> 2];
                        a[e + 548 >> 2] = a[e + 500 >> 2];
                        a[e + 552 >> 2] = a[e + 504 >> 2];
                        u = a[e + 508 >> 2] | 0;
                        t = e + 564 | 0;
                        a[t >> 2] = u;
                        o = a[e + 512 >> 2] | 0;
                        i = e + 568 | 0;
                        a[i >> 2] = o;
                        n = e + 572 | 0;
                        a[n >> 2] = a[e + 516 >> 2];
                        r = e + 576 | 0;
                        a[r >> 2] = a[e + 520 >> 2];
                        a[e + 580 >> 2] = a[e + 524 >> 2];
                        a[e + 584 >> 2] = a[e + 528 >> 2];
                        s = e + 108 | 0;
                        Rn(a[s >> 2] | 0, u, o);
                        Dn(a[s >> 2] | 0, a[n >> 2] | 0, a[r >> 2] | 0);
                        e = a[e + 324 >> 2] | 0;
                        if (e | 0) Fn(e, a[t >> 2] | 0, a[i >> 2] | 0);
                        return
                    }

                    function Rn(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 80 >> 2] = t;
                        a[e + 84 >> 2] = i;
                        return
                    }

                    function Dn(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 88 >> 2] = t;
                        a[e + 92 >> 2] = i;
                        return
                    }

                    function Fn(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 96 >> 2] = t;
                        a[e + 100 >> 2] = i;
                        return
                    }

                    function Bn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        Er(e);
                        Nn(e);
                        Pr(e);
                        t = a[e + 236 >> 2] | 0;
                        if ((tn(a[t + 4 >> 2] | 0) | 0) != 4) {
                            s = Ln(a[t + 36 >> 2] | 0) | 0;
                            i = r[e + 420 >> 0] | 0;
                            if ((s | 0) != (i | 0)) Un(t, i);
                            Vn(e);
                            if (Xn(e) | 0) {
                                t = 131080;
                                n = 5
                            }
                        } else {
                            t = 262155;
                            n = 5
                        }
                        if ((n | 0) == 5) a[e + 416 >> 2] = t;
                        return
                    }

                    function Nn(e) {
                        e = e | 0;
                        switch (r[e + 240 >> 0] | 0) {
                            case 1:
                                {
                                    $n(e);
                                    break
                                }
                            case 2:
                                {
                                    bn(e);
                                    break
                                }
                            default:
                                Hn(e)
                        }
                        return
                    }

                    function Ln(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Un(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 36 >> 2] = t;
                        t = e + 23 | 0;
                        r[t >> 0] = r[t >> 0] | 4;
                        return
                    }

                    function Vn(e) {
                        e = e | 0;
                        if (+h[e + 436 >> 2] > 0.0) jn(e);
                        else Gn(e);
                        return
                    }

                    function Xn(e) {
                        e = e | 0;
                        var t = 0;
                        if ((tn(a[(a[e + 236 >> 2] | 0) + 4 >> 2] | 0) | 0) == 3) {
                            t = a[e + 264 >> 2] | 0;
                            if ((t | 0) != 0 ? (Ar(t) | 0) == 1 : 0) {
                                sE();
                                a[e + 416 >> 2] = 262155;
                                e = 0
                            } else e = 1
                        } else e = 0;
                        return e | 0
                    }

                    function jn(e) {
                        e = e | 0;
                        var t = 0.0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0.0;
                        o = e + 436 | 0;
                        t = +h[o >> 2];
                        do {
                            if (!(t <= 0.0)) {
                                s = a[e + 108 >> 2] | 0;
                                i = a[s + 44 >> 2] | 0;
                                r = e + 440 | 0;
                                n = a[r >> 2] | 0;
                                if ((i | 0) < (n | 0)) {
                                    a[r >> 2] = i;
                                    break
                                }
                                if ((i - n | 0) >= 4) {
                                    i = e + 424 | 0;
                                    if (t - +h[i >> 2] > 0.0) Gr(a[e + 236 >> 2] | 0, t);
                                    else {
                                        u = +h[e + 428 >> 2];
                                        t = t > u ? t : u;
                                        Rr(s, a[1660] | 0, a[e + 344 >> 2] | 0, a[e + 348 >> 2] | 0, t)
                                    }
                                    h[i >> 2] = t;
                                    h[o >> 2] = 0.0;
                                    if (+h[e + 432 >> 2] > 0.0) Gn(e)
                                }
                            }
                        } while (0);
                        return
                    }

                    function Gn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0;
                        t = e + 432 | 0;
                        n = +h[t >> 2];
                        do {
                            if ((!(n <= 0.0) ? (o = e + 436 | 0, !(+h[o >> 2] > 0.0)) : 0) ? (h[t >> 2] = 0.0, u = e + 424 | 0, !(n == +h[u >> 2])) : 0) {
                                t = a[e + 20 >> 2] | 0;
                                s = e + 348 | 0;
                                i = a[s >> 2] | 0;
                                if ((t | 0) < (~~(n * +(i | 0) + .5) | 0)) {
                                    sE();
                                    i = a[s >> 2] | 0;
                                    n = +(t | 0) / +(i | 0)
                                }
                                t = a[e + 108 >> 2] | 0;
                                s = a[t + 44 >> 2] | 0;
                                a[e + 440 >> 2] = s;
                                if (s | 0 ? (r[t + 49 >> 0] | 0) == 0 : 0) {
                                    if (n <= +h[e + 428 >> 2]) {
                                        Gr(a[e + 236 >> 2] | 0, n);
                                        h[u >> 2] = n;
                                        break
                                    }
                                    if (n - +h[u >> 2] > 0.0) Rr(t, a[1660] | 0, a[e + 344 >> 2] | 0, i, n);
                                    else Gr(a[e + 236 >> 2] | 0, n);
                                    h[o >> 2] = n;
                                    break
                                }
                                Rr(t, a[1660] | 0, a[e + 344 >> 2] | 0, i, n);
                                Gr(a[e + 236 >> 2] | 0, n);
                                h[u >> 2] = n
                            }
                        } while (0);
                        return
                    }

                    function $n(e) {
                        e = e | 0;
                        if ((ZS(a[e + 104 >> 2] | 0, 3) | 0) > 0) Wn(e);
                        return
                    }

                    function Hn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 422 | 0;
                        do {
                            if (!(r[i >> 0] | 0)) {
                                e = e + 104 | 0;
                                t = JS(a[e >> 2] | 0, 3) | 0;
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    iP(t, 0, 0);
                                    rP(t, 0);
                                    a[t + 12 >> 2] = 2;
                                    YS(a[e >> 2] | 0, 1, t);
                                    r[i >> 0] = 1;
                                    break
                                }
                            }
                        } while (0);
                        return
                    }

                    function Wn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (!(a[e + 280 >> 2] | 0)) {
                            t = e + 243 | 0;
                            i = s[t >> 0] | 0;
                            do {
                                if (!(i & 2)) {
                                    if (!(r[e + 241 >> 0] | 0))
                                        if (!(i & 1)) {
                                            qn(e);
                                            break
                                        } else {
                                            zn(e);
                                            break
                                        }
                                } else {
                                    Yn(e);
                                    r[t >> 0] = r[t >> 0] & -3
                                }
                            } while (0);
                            r[e + 240 >> 0] = 0;
                            Er(e)
                        } else Tr(e, a[e + 288 >> 2] | 0);
                        return
                    }

                    function Yn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0,
                            u = 0;
                        o = Qn(e) | 0;
                        if ((o | 0) >= 0) {
                            i = e + 243 | 0;
                            n = s[i >> 0] | 0;
                            do {
                                if (n & 1) {
                                    t = a[e + 372 >> 2] | 0;
                                    if ((t | 0) < (o | 0)) {
                                        u = a[e + 252 >> 2] | 0;
                                        r[i >> 0] = n & 254;
                                        t = u;
                                        i = u;
                                        break
                                    } else {
                                        i = a[e + 252 >> 2] | 0;
                                        break
                                    }
                                } else {
                                    i = a[e + 252 >> 2] | 0;
                                    t = i
                                }
                            } while (0);
                            xn(e, a[e + 248 >> 2] | 0, i, o, t - o | 0)
                        }
                        return
                    }

                    function zn(e) {
                        e = e | 0;
                        var t = 0;
                        if (!(Jn(e) | 0)) qn(e);
                        else {
                            t = a[e + 368 >> 2] | 0;
                            xn(e, a[e + 248 >> 2] | 0, a[e + 252 >> 2] | 0, t, (a[e + 372 >> 2] | 0) - t | 0)
                        }
                        return
                    }

                    function qn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e + 532 >> 2] | 0;
                        do {
                            if (t | 0)
                                if (!(a[e + 384 >> 2] | 0)) {
                                    r[e + 423 >> 0] = 1;
                                    break
                                } else {
                                    i = e + 4 | 0;
                                    a[i >> 2] = 1;
                                    u$[t & 63](a[e + 536 >> 2] | 0, e);
                                    a[i >> 2] = 0;
                                    break
                                }
                        } while (0);
                        return
                    }

                    function Jn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 364 | 0;
                        t = a[i >> 2] | 0;
                        t = (a[e + 460 >> 2] | 0) == 0 ? t + (((t | 0) > 0) << 31 >> 31) | 0 : 0;
                        if (!t) {
                            e = e + 243 | 0;
                            r[e >> 0] = r[e >> 0] & -2
                        }
                        a[i >> 2] = t;
                        return t | 0
                    }

                    function Qn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        i = e + 448 | 0;
                        i = Fr(e + 340 | 0, a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        t = P;
                        r = a[e + 352 >> 2] | 0;
                        n = ((r | 0) < 0) << 31 >> 31;
                        do {
                            if ((t | 0) < (n | 0) | (t | 0) == (n | 0) & i >>> 0 < r >>> 0) {
                                n = a[e + 400 >> 2] | 0;
                                n = hM(i | 0, t | 0, n | 0, ((n | 0) < 0) << 31 >> 31 | 0) | 0;
                                t = a[e + 392 >> 2] | 0;
                                i = a[e + 396 >> 2] | 0;
                                i = fM(n | 0, P | 0, i | 0, ((i | 0) < 0) << 31 >> 31 | 0) | 0;
                                t = aM(i | 0, P | 0, t | 0, ((t | 0) < 0) << 31 >> 31 | 0) | 0;
                                i = P;
                                if ((i | 0) > 0 | (i | 0) == 0 & t >>> 0 > 2147483647) {
                                    sE();
                                    t = -1;
                                    break
                                }
                                if ((a[e + 364 >> 2] | 0) != 0 ? (n = a[e + 372 >> 2] | 0, r = ((n | 0) < 0) << 31 >> 31, !((i | 0) < (r | 0) | (i | 0) == (r | 0) & t >>> 0 < n >>> 0)) : 0) t = a[e + 368 >> 2] | 0
                            } else t = -1
                        } while (0);
                        return t | 0
                    }

                    function Zn(e) {
                        e = e | 0;
                        Er(e);
                        Nn(e);
                        Pr(e);
                        Kn(e);
                        if (!(r[e + 420 >> 0] | 0)) {
                            ea(a[e + 236 >> 2] | 0);
                            a[e + 416 >> 2] = 131079
                        }
                        return
                    }

                    function Kn(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0.0,
                            s = 0.0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        t = f + 8 | 0;
                        l = f;
                        u = e + 476 | 0;
                        i = a[u >> 2] | 0;
                        if (i | 0 ? (o = (ta(i, l, t) | 0) == 0, r = a[t >> 2] | 0, !(o | (r | 0) < 1)) : 0) {
                            t = a[e + 348 >> 2] | 0;
                            if ((r | 0) == (t | 0)) {
                                t = l;
                                o = a[t >> 2] | 0;
                                t = a[t + 4 >> 2] | 0
                            } else {
                                o = l;
                                o = fM(a[o >> 2] | 0, a[o + 4 >> 2] | 0, t | 0, ((t | 0) < 0) << 31 >> 31 | 0) | 0;
                                o = hM(o | 0, P | 0, r | 0, ((r | 0) < 0) << 31 >> 31 | 0) | 0;
                                t = P;
                                r = l;
                                a[r >> 2] = o;
                                a[r + 4 >> 2] = t
                            }
                            n = +h[(a[u >> 2] | 0) + 472 >> 2];
                            s = +h[e + 472 >> 2];
                            if (n != s) {
                                s = n * (+(o >>> 0) + 4294967296.0 * +(t | 0)) / s;
                                o = ~~s >>> 0;
                                t = +M(s) >= 1.0 ? s > 0.0 ? ~~+$(+I(s / 4294967296.0), 4294967295.0) >>> 0 : ~~+j((s - +(~~s >>> 0)) / 4294967296.0) >>> 0 : 0;
                                a[l >> 2] = o;
                                a[l + 4 >> 2] = t
                            }
                            l = e + 448 | 0;
                            e = a[e + 108 >> 2] | 0;
                            i = e + 56 | 0;
                            r = a[i >> 2] | 0;
                            e = r + (a[e + 60 >> 2] | 0) | 0;
                            t = sM(o | 0, t | 0, a[l >> 2] | 0, a[l + 4 >> 2] | 0) | 0;
                            t = sM(t | 0, P | 0, e | 0, ((e | 0) < 0) << 31 >> 31 | 0) | 0;
                            e = P;
                            if (!((e | 0) < 0 | (e | 0) == 0 & t >>> 0 < 1)) a[i >> 2] = r + t
                        }
                        p = f;
                        return
                    }

                    function ea(e) {
                        e = e | 0;
                        r[e + 20 >> 0] = 1;
                        return
                    }

                    function ta(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        if (!(Jr(e, r, i) | 0)) e = 0;
                        else {
                            e = ia(a[e + 236 >> 2] | 0) | 0;
                            r = aM(a[r >> 2] | 0, a[r + 4 >> 2] | 0, e | 0, ((e | 0) < 0) << 31 >> 31 | 0) | 0;
                            e = t;
                            a[e >> 2] = r;
                            a[e + 4 >> 2] = P;
                            e = 1
                        }
                        p = n;
                        return e | 0
                    }

                    function ia(e) {
                        e = e | 0;
                        if (!e) e = 0;
                        else {
                            Kr();
                            e = a[e >> 2] | 0;
                            e = KG[a[(a[e >> 2] | 0) + 140 >> 2] & 63](a[e + 4 >> 2] | 0) | 0;
                            en()
                        }
                        return e | 0
                    }

                    function ra(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 108 | 0;
                        br(a[t >> 2] | 0, 1);
                        if (!(((r[(a[t >> 2] | 0) + 18 >> 0] | 0) >= 1 ? (Er(e), Nn(e), Pr(e), Kn(e), i = a[t >> 2] | 0, (r[i + 49 >> 0] | 0) == 0) : 0) ? !(na(a[i + 4 >> 2] | 0) | 0) : 0)) a[e + 416 >> 2] = 131078;
                        return
                    }

                    function na(e) {
                        e = e | 0;
                        return (ZS(e, 0) | 0) < 1 | 0
                    }

                    function aa(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        if (!((((a[e + 316 >> 2] | 0) == 0 ? (r[(a[e + 108 >> 2] | 0) + 18 >> 0] | 0) <= 0 : 0) ? (Er(e), Nn(e), Pr(e), i = e + 448 | 0, s = a[i + 4 >> 2] | 0, t = a[e + 352 >> 2] | 0, n = ((t | 0) < 0) << 31 >> 31, (s | 0) < (n | 0) | ((s | 0) == (n | 0) ? (a[i >> 2] | 0) >>> 0 < t >>> 0 : 0)) : 0) ? (s = KS(a[(a[e + 104 >> 2] | 0) + 36 >> 2] | 0) | 0, (s | 0) <= (a[e + 356 >> 2] | 0)) : 0)) a[e + 416 >> 2] = 65541;
                        return
                    }

                    function sa(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        Sr(e);
                        Pr(e);
                        t = e + 104 | 0;
                        i = JS(a[t >> 2] | 0, 1) | 0;
                        if (i | 0) {
                            QS(a[t >> 2] | 0, i);
                            a[e + 416 >> 2] = 65540
                        }
                        return
                    }

                    function oa(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        s = e + 264 | 0;
                        t = a[s >> 2] | 0;
                        if (!((t | 0) != 0 ? (yr(t), (Ar(a[s >> 2] | 0) | 0) != 0) : 0)) i = 3;
                        do {
                            if ((i | 0) == 3) {
                                n = a[((r[e + 243 >> 0] & 2) == 0 ? e + 372 | 0 : e + 356 | 0) >> 2] | 0;
                                if ((r[e + 240 >> 0] | 0) != 1) {
                                    dn(e);
                                    on(e, 0, 0, -1, 0, 0, n, ((n | 0) < 0) << 31 >> 31, 0);
                                    if (!(mn(a[s >> 2] | 0) | 0)) {
                                        a[e + 416 >> 2] = 262155;
                                        break
                                    }
                                } else {
                                    t = e + 104 | 0;
                                    i = JS(a[t >> 2] | 0, 1) | 0;
                                    if (!i) {
                                        sE();
                                        break
                                    }
                                    a[i + 12 >> 2] = 0;
                                    if ((n | 0) <= (a[i + 20 >> 2] | 0)) {
                                        rP(i, n);
                                        a[e + 280 >> 2] = 0
                                    }
                                    QS(a[t >> 2] | 0, i)
                                }
                                a[e + 416 >> 2] = 65539
                            }
                        } while (0);
                        return
                    }

                    function ua() {
                        a[1644] = (a[1644] | 0) + 1;
                        return
                    }

                    function ha(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = e + 32 | 0;
                        r = a[i >> 2] | 0;
                        if (r | 0) {
                            SI(r) | 0;
                            a[i >> 2] = 0
                        }
                        bi(e);
                        if (t | 0 ? (n = a[e + 36 >> 2] | 0, n | 0) : 0) si(n);
                        return
                    }

                    function la() {
                        return 1
                    }

                    function fa(e) {
                        e = e | 0;
                        a[e + 4 >> 2] = 0;
                        if ((a[e + 24 >> 2] | 0) == 1) si(a[e + 12 >> 2] | 0);
                        return
                    }

                    function ca(e) {
                        e = e | 0;
                        return 2
                    }

                    function da(e) {
                        e = e | 0;
                        e = dE(a[e + 4 >> 2] | 0, 16) | 0;
                        if (e >>> 0 > 65535) {
                            sE();
                            e = 0
                        } else e = e & 65535;
                        return e | 0
                    }

                    function pa(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0;
                        n = p;
                        p = p + 16 | 0;
                        s = n;
                        e = a[e + 4 >> 2] | 0;
                        t = bE(e, 16, t, s) | 0;
                        a[i >> 2] = (a[s + 8 >> 2] | 0) + e;
                        a[r >> 2] = a[s + 4 >> 2];
                        p = n;
                        return t | 0
                    }

                    function va(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        if (!(pE(a[e + 4 >> 2] | 0, 16, t & 65535, i) | 0)) {
                            sE();
                            e = -1
                        } else e = a[i >> 2] | 0;
                        p = r;
                        return e | 0
                    }

                    function ma(e) {
                        e = e | 0;
                        e = (yE(a[e + 4 >> 2] | 0, 16) | 0) & 65535;
                        P = 0;
                        return e | 0
                    }

                    function _a() {
                        return 1
                    }

                    function ba(e) {
                        e = e | 0;
                        return 2
                    }

                    function ga(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 4 | 0;
                        t = a[i >> 2] | 0;
                        a[i >> 2] = 0;
                        Ta(t);
                        if ((a[e + 24 >> 2] | 0) == 1) si(a[e + 12 >> 2] | 0);
                        return
                    }

                    function ya(e) {
                        e = e | 0;
                        return 2
                    }

                    function Aa(e) {
                        e = e | 0;
                        return a[(a[e + 4 >> 2] | 0) + 4 >> 2] & 65535 | 0
                    }

                    function wa(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0;
                        n = p;
                        p = p + 16 | 0;
                        s = n;
                        e = (a[e + 4 >> 2] | 0) + 12 | 0;
                        t = bE(a[e >> 2] | 0, 16, t, s) | 0;
                        a[i >> 2] = (a[e >> 2] | 0) + (a[s + 8 >> 2] | 0);
                        a[r >> 2] = a[s + 4 >> 2];
                        p = n;
                        return t | 0
                    }

                    function xa(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return a[(a[(a[e + 4 >> 2] | 0) + 8 >> 2] | 0) + ((t & 65535) * 84 | 0) + 80 >> 2] | 0
                    }

                    function ka(e) {
                        e = e | 0;
                        return 0
                    }

                    function Ta(e) {
                        e = e | 0;
                        Ea(e);
                        return
                    }

                    function Ea(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 8 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            si(i);
                            a[t >> 2] = 0
                        }
                        t = a[e >> 2] | 0;
                        if ((t | 0) > -1) {
                            Ae(t | 0);
                            a[e >> 2] = -1
                        }
                        si(e);
                        return
                    }

                    function Sa(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 128 | 0;
                        a[1676] = 1;
                        i = e + 7 & -8;
                        e = i;
                        mS(t + 64 | 0, 64, 3754);
                        mS(t, 64, 3785);
                        gS(i, 0, 2544) | 0;
                        a[1677] = e;
                        a[e + 2536 >> 2] = 0;
                        p = t;
                        return
                    }

                    function Pa() {
                        a[1676] = 0;
                        Ia();
                        a[1677] = 0;
                        return
                    }

                    function Ia() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (e | 0) {
                            if ((a[e + 2508 >> 2] | 0) > 0) {
                                NE();
                                e = a[1677] | 0
                            }
                            Ma(e);
                            a[e + 68 >> 2] = 0;
                            a[e + 64 >> 2] = 0
                        }
                        return
                    }

                    function Ma(e) {
                        e = e | 0;
                        e: do {
                            if (e | 0) {
                                r[e + 2504 >> 0] = 0;
                                a[e + 2536 >> 2] = 0;
                                a[e + 68 >> 2] = 0;
                                a[e + 464 >> 2] = 0;
                                a[e + 528 >> 2] = 0;
                                a[e + 588 >> 2] = 0;
                                a[e + 680 >> 2] = 0;
                                a[e + 788 >> 2] = 0;
                                a[e + 892 >> 2] = 0;
                                a[e + 972 >> 2] = 0;
                                a[e + 1036 >> 2] = 0;
                                a[e + 1148 >> 2] = 0;
                                a[e + 1232 >> 2] = 0;
                                a[e + 1296 >> 2] = 0;
                                a[e + 1368 >> 2] = 0;
                                a[e + 1456 >> 2] = 0;
                                a[e + 1520 >> 2] = 0;
                                a[e + 1580 >> 2] = 0;
                                a[e + 1704 >> 2] = 0;
                                a[e + 1816 >> 2] = 0;
                                a[e + 1880 >> 2] = 0;
                                a[e + 1944 >> 2] = 0;
                                a[e + 2024 >> 2] = 0;
                                a[e + 2096 >> 2] = 0;
                                a[e + 2156 >> 2] = 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) == 8) break e;
                                    n[2708 + (e << 1) >> 1] = e;
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function Ca(e) {
                        e = e | 0;
                        if (!(a[1676] | 0)) {
                            a[1677] = e;
                            e = 1
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Oa(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        b = p;
                        p = p + 16 | 0;
                        v = b;
                        m = b + 12 | 0;
                        e: do {
                            if (!((t | 0) == 0 | (i | 0) == 0))
                                if (!(Ra(e, t, i) | 0)) t = 0;
                                else {
                                    d = e + 60 | 0;
                                    if ((a[d >> 2] | 0) >>> 0 < 286720) {
                                        sE();
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if (Da() | 0 ? (c = s[e + 412 >> 0] | 0, (Fa() | 0) >>> 0 < c >>> 0) : 0) {
                                        sE();
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 6, v) | 0) == 1 ? (Na(e + 416 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 7, v) | 0) == 1 ? (La(e + 480 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    a[e + 2536 >> 2] = 0;
                                    t = e + 2504 | 0;
                                    r[t >> 0] = 0;
                                    switch (a[e + 56 >> 2] | 0) {
                                        case 6:
                                        case 0:
                                            {
                                                r[t >> 0] = 1;
                                                if ((Ba(e, 8, v) | 0) == 1 ? (Ua(e + 540 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                                if ((Ba(e, 9, v) | 0) == 1 ? (Va(e + 632 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                                if ((Ba(e, 10, v) | 0) == 1 ? (Xa(e + 740 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                                if ((Ba(e, 11, v) | 0) == 1 ? (ja(e + 844 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                                break
                                            }
                                        default:
                                            NE()
                                    }
                                    if ((Ba(e, 12, v) | 0) == 1 ? (Ga(e + 924 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 13, v) | 0) == 1 ? ($a(e + 988 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 14, v) | 0) == 1 ? (Ha(e + 1100 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 15, v) | 0) == 1 ? (Wa(e + 1184 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 16, v) | 0) == 1 ? (Ya(e + 1248 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 17, v) | 0) == 1 ? (za(e + 1320 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((Ba(e, 18, v) | 0) == 1 ? (qa(e + 1408 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                        Ma(e);
                                        t = 0;
                                        break
                                    }
                                    if ((a[d >> 2] | 0) >>> 0 > 393215) {
                                        if ((Ba(e, 19, v) | 0) == 1 ? (Ja(e + 1472 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                            Ma(e);
                                            t = 0;
                                            break
                                        }
                                        if ((Ba(e, 20, v) | 0) == 1 ? (Qa(e + 1532 | 0, a[v + 4 >> 2] | 0) | 0) == 0 : 0) {
                                            Ma(e);
                                            t = 0;
                                            break
                                        }
                                    } else {
                                        a[e + 1520 >> 2] = 0;
                                        a[e + 1580 >> 2] = 0
                                    }
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 458751) {
                                            t: do {
                                                if ((Ba(e, 22, v) | 0) == 1) {
                                                    c = a[v + 8 >> 2] | 0;
                                                    f = e + 82 | 0;
                                                    t = (n[f >> 1] | 0) == 0;
                                                    do {
                                                        if (!c) {
                                                            if (t) break t
                                                        } else {
                                                            if (t) break;
                                                            l = a[v + 4 >> 2] | 0;
                                                            t = l + 3 & -4;
                                                            u = e + 2512 | 0;
                                                            a[u >> 2] = t;
                                                            h = e + 80 | 0;
                                                            i = 0;
                                                            while (1) {
                                                                t = t + (i * 12 | 0) | 0;
                                                                if ((i | 0) >= (o[h >> 1] << 1 | 0)) break;
                                                                JE(t);
                                                                i = i + 1 | 0;
                                                                t = a[u >> 2] | 0
                                                            }
                                                            u = e + 2516 | 0;
                                                            JE(u);
                                                            i = 0;
                                                            while (1) {
                                                                if ((i | 0) >= (o[f >> 1] | 0)) break;
                                                                zE(t);
                                                                eS(u, t);
                                                                t = t + 8 | 0;
                                                                i = i + 1 | 0
                                                            }
                                                            if ((c + l | 0) >>> 0 >= t >>> 0) break t;
                                                            sE();
                                                            Ma(e);
                                                            t = 0;
                                                            break e
                                                        }
                                                    } while (0);
                                                    sE();
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                            } while (0);
                                            if ((a[d >> 2] | 0) >>> 0 > 8388607) {
                                                if ((Ba(e, 25, v) | 0) == 1) {
                                                    if ($a(e + 1656 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                            } else _ = 77
                                        }
                                        else {
                                            a[e + 2512 >> 2] = 0;
                                            _ = 77
                                        }
                                    } while (0);
                                    if ((_ | 0) == 77) a[e + 1704 >> 2] = 0;
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 8650751) {
                                            do {
                                                if ((Ba(e, 27, v) | 0) == 1) {
                                                    if (Za(e + 1768 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                            } while (0);
                                            if ((Ba(e, 28, v) | 0) == 1) {
                                                if (Ka(e + 1832 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                                Ma(e);
                                                t = 0;
                                                break e
                                            }
                                        } else {
                                            a[e + 1816 >> 2] = 0;
                                            a[e + 1880 >> 2] = 0
                                        }
                                    } while (0);
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 8716287) {
                                            if ((Ba(e, 29, v) | 0) == 1) {
                                                c = a[v + 4 >> 2] | 0;
                                                f = c + 7 & -8;
                                                a[e + 2528 >> 2] = f;
                                                a[e + 2532 >> 2] = f - c + (a[v + 8 >> 2] | 0)
                                            }
                                            if ((Ba(e, 30, v) | 0) != 1) break;
                                            if (es(e + 1896 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                            Ma(e);
                                            t = 0;
                                            break e
                                        } else {
                                            a[e + 2528 >> 2] = 0;
                                            a[e + 2532 >> 2] = 0;
                                            a[e + 1944 >> 2] = 0
                                        }
                                    } while (0);
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 17104895) {
                                            do {
                                                if ((Ba(e, 34, v) | 0) == 1) {
                                                    if (ts(e + 1976 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                            } while (0);
                                            if ((Ba(e, 35, v) | 0) != 1) break;
                                            if (is(e + 2048 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                            Ma(e);
                                            t = 0;
                                            break e
                                        } else {
                                            a[e + 2024 >> 2] = 0;
                                            a[e + 2096 >> 2] = 0
                                        }
                                    } while (0);
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 17170431) {
                                            do {
                                                if ((Ba(e, 36, v) | 0) == 1) {
                                                    if (Ga(e + 2108 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                            } while (0);
                                            if ((a[d >> 2] | 0) >>> 0 <= 17367040) {
                                                _ = 110;
                                                break
                                            }
                                            if ((Ba(e, 38, v) | 0) != 1) break;
                                            if (is(e + 2172 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                            Ma(e);
                                            t = 0;
                                            break e
                                        } else {
                                            a[e + 2156 >> 2] = 0;
                                            _ = 110
                                        }
                                    } while (0);
                                    if ((_ | 0) == 110) a[e + 2220 >> 2] = 0;
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 17891327) {
                                            if ((Ba(e, 39, v) | 0) != 1) break;
                                            t = (a[v + 4 >> 2] | 0) + 1 & -2;
                                            _ = 114
                                        } else {
                                            t = 0;
                                            _ = 114
                                        }
                                    } while (0);
                                    if ((_ | 0) == 114) a[e + 2540 >> 2] = t;
                                    do {
                                        if ((a[d >> 2] | 0) >>> 0 > 17891327) {
                                            if ((Ba(e, 40, v) | 0) == 1) {
                                                i = e + 2232 | 0;
                                                if (!(rs(i, a[v + 4 >> 2] | 0) | 0)) {
                                                    Ma(e);
                                                    t = 0;
                                                    break e
                                                }
                                                u = e + 2280 | 0;
                                                t = 0;
                                                while (1) {
                                                    if (t >>> 0 >= (a[u >> 2] | 0) >>> 0) break;
                                                    ns(a[i >> 2] | 0, t & 65535, m);
                                                    n[2708 + (t << 1) >> 1] = n[m >> 1] | 0;
                                                    t = t + 1 | 0
                                                }
                                            }
                                            if ((a[d >> 2] | 0) >>> 0 <= 18153471) {
                                                _ = 128;
                                                break
                                            }
                                            if ((Ba(e, 41, v) | 0) != 1) break;
                                            if (as(e + 2292 | 0, a[v + 4 >> 2] | 0) | 0) break;
                                            Ma(e);
                                            t = 0;
                                            break e
                                        } else {
                                            a[e + 2280 >> 2] = 0;
                                            _ = 128
                                        }
                                    } while (0);
                                    if ((_ | 0) == 128) a[e + 2340 >> 2] = 0;
                                    if ((a[d >> 2] | 0) >>> 0 <= 19005439) {
                                        a[e + 2468 >> 2] = 0;
                                        t = 1;
                                        break
                                    }
                                    if ((Ba(e, 42, v) | 0) != 1) {
                                        t = 1;
                                        break
                                    }
                                    if (ss(e + 2420 | 0, a[v + 4 >> 2] | 0) | 0) {
                                        t = 1;
                                        break
                                    }
                                    Ma(e);
                                    t = 0
                                }
                            else {
                                sE();
                                Ma(e);
                                t = 0
                            }
                        } while (0);
                        p = b;
                        return t | 0
                    }

                    function Ra(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        l = AE(e + 4 | 0, t, 64, e + 92 | 0, e + 220 | 0, e + 348 | 0) | 0;
                        a[e >> 2] = l;
                        if (!l) u = 0;
                        else {
                            a[e + 48 >> 2] = a[l >> 2];
                            h = l + 8 | 0;
                            p = a[h >> 2] | 0;
                            f = l + 36 | 0;
                            u = a[f >> 2] | 0;
                            a[e + 52 >> 2] = s[p + (o[u + 6 >> 1] | 0) >> 0];
                            a[e + 56 >> 2] = s[p + (o[u + 8 >> 1] | 0) >> 0];
                            c = xE(p + (o[u + 4 >> 1] | 0) | 0) | 0;
                            a[e + 60 >> 2] = c;
                            v = a[l + 16 >> 2] | 0;
                            a[e + 84 >> 2] = v + (xE(p + (o[u + 10 >> 1] | 0) | 0) | 0);
                            if ((o[l + 24 >> 1] | 0) > 22) {
                                v = a[h >> 2] | 0;
                                u = a[f >> 2] | 0;
                                n[e + 80 >> 1] = wE(v + (o[u + 46 >> 1] | 0) | 0) | 0;
                                u = wE(v + (o[u + 48 >> 1] | 0) | 0) | 0
                            } else {
                                n[e + 80 >> 1] = 0;
                                u = 0
                            }
                            n[e + 82 >> 1] = u;
                            do {
                                if (c >>> 0 > 8585215) {
                                    v = a[l + 12 >> 2] | 0;
                                    h = a[h >> 2] | 0;
                                    u = a[f >> 2] | 0;
                                    a[e + 72 >> 2] = v + (xE(h + (o[u + 52 >> 1] | 0) | 0) | 0);
                                    if (c >>> 0 > 8847359) {
                                        r[e + 412 >> 0] = r[h + (o[u + 62 >> 1] | 0) >> 0] | 0;
                                        if (c >>> 0 <= 16908543) {
                                            a[e + 76 >> 2] = 1;
                                            r[e + 413 >> 0] = 0;
                                            u = -1;
                                            break
                                        }
                                        a[e + 76 >> 2] = s[h + (o[u + 64 >> 1] | 0) >> 0];
                                        if (c >>> 0 > 16973823) {
                                            r[e + 413 >> 0] = r[h + (o[u + 66 >> 1] | 0) >> 0] | 0;
                                            if (c >>> 0 > 17367039) u = xE(h + (o[u + 74 >> 1] | 0) | 0) | 0;
                                            else u = -1
                                        } else d = 12
                                    } else d = 8
                                } else {
                                    a[e + 72 >> 2] = 11354;
                                    d = 8
                                }
                            } while (0);
                            if ((d | 0) == 8) {
                                r[e + 412 >> 0] = 4;
                                a[e + 76 >> 2] = 1;
                                d = 12
                            }
                            if ((d | 0) == 12) {
                                r[e + 413 >> 0] = 0;
                                u = -1
                            }
                            a[e + 88 >> 2] = u;
                            a[e + 64 >> 2] = i;
                            a[e + 68 >> 2] = t;
                            u = 1
                        }
                        return u | 0
                    }

                    function Da() {
                        return a[1678] | 0
                    }

                    function Fa() {
                        return a[93] | 0
                    }

                    function Ba(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        switch (t | 0) {
                            case 42:
                            case 41:
                            case 40:
                            case 39:
                            case 38:
                            case 36:
                            case 35:
                            case 34:
                            case 30:
                            case 29:
                            case 28:
                            case 27:
                            case 25:
                            case 22:
                            case 20:
                            case 19:
                            case 18:
                            case 17:
                            case 16:
                            case 15:
                            case 14:
                            case 13:
                            case 12:
                            case 11:
                            case 10:
                            case 9:
                            case 8:
                            case 7:
                            case 6:
                                {
                                    n = a[e >> 2] | 0;e = (a[n + 8 >> 2] | 0) + (o[(a[n + 36 >> 2] | 0) + (t << 1) >> 1] | 0) | 0;a[i + 8 >> 2] = xE(e + 4 | 0) | 0;a[i + 4 >> 2] = (a[n + 16 >> 2] | 0) + (xE(e) | 0);r[i >> 0] = t;e = 1;
                                    break
                                }
                            default:
                                e = 0
                        }
                        return e | 0
                    }

                    function Na(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function La(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ua(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 8, e + 52 | 0, e + 68 | 0, e + 84 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Va(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 11, e + 52 | 0, e + 74 | 0, e + 96 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Xa(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 10, e + 52 | 0, e + 72 | 0, e + 92 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function ja(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 5, e + 52 | 0, e + 62 | 0, e + 72 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ga(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function $a(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 12, e + 52 | 0, e + 76 | 0, e + 100 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ha(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 6, e + 52 | 0, e + 64 | 0, e + 76 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Wa(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ya(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 4, e + 52 | 0, e + 60 | 0, e + 68 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function za(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 7, e + 52 | 0, e + 66 | 0, e + 80 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function qa(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ja(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Qa(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 14, e + 52 | 0, e + 80 | 0, e + 108 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Za(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 14, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function Ka(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function es(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 5, e + 52 | 0, e + 62 | 0, e + 72 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function ts(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 4, e + 52 | 0, e + 60 | 0, e + 68 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function is(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function rs(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function ns(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n[i >> 1] = EE(e, t & 65535, 0) | 0;
                        return
                    }

                    function as(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 15, e + 52 | 0, e + 82 | 0, e + 112 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function ss(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 6, e + 52 | 0, e + 64 | 0, e + 76 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function os() {
                        return a[(a[1677] | 0) + 60 >> 2] | 0
                    }

                    function us(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        do {
                            if (i | 0) {
                                if (a[i + 68 >> 2] | 0) {
                                    sE();
                                    break
                                }
                                if (!(Oa(i, e, t) | 0)) {
                                    sE();
                                    Ia()
                                }
                            }
                        } while (0);
                        return
                    }

                    function hs(e) {
                        e = e | 0;
                        return n[2708 + (e + -7 << 1) >> 1] | 0
                    }

                    function ls(e) {
                        e = e | 0;
                        return n[2708 + (e + -104 << 1) >> 1] | 0
                    }

                    function fs(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (a[(a[1677] | 0) + 2540 >> 2] | 0) n[e + (((cs(t) | 0) & 65535) << 1) >> 1] = i;
                        return
                    }

                    function cs(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        if (((t | 0) != 0 ? (a[t + 68 >> 2] | 0) != 0 : 0) ? (a[t + 60 >> 2] | 0) >>> 0 > 17367040 : 0) return ds(t + 2172 | 0, e) | 0;
                        else t = 0;
                        while (1) {
                            if (t >>> 0 >= 8) {
                                t = -1;
                                break
                            }
                            if (!(JI(a[24 + (t << 2) >> 2] | 0, e) | 0)) {
                                t = t & 65535;
                                break
                            } else t = t + 1 | 0
                        }
                        e = (JI(4157, e) | 0) == 0;
                        return (e ? 0 : t) | 0
                    }

                    function ds(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        return (ps(e, t, i >>> 1, 0, i + -1 | 0) | 0) & 65535 | 0
                    }

                    function ps(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        h = e + 48 | 0;
                        s = i;
                        e: while (1) {
                            i = s;
                            while (1) {
                                if (r >>> 0 > n >>> 0) {
                                    i = -1;
                                    break e
                                }
                                if (!(a[h >> 2] | 0)) {
                                    i = -1;
                                    break e
                                }
                                s = a[e >> 2] | 0;
                                l = a[s + 12 >> 2] | 0;
                                u = (a[s + 8 >> 2] | 0) + (G(a[s + 20 >> 2] | 0, i) | 0) | 0;
                                s = JI(l + (xE(u + (o[a[s + 36 >> 2] >> 1] | 0) | 0) | 0) | 0, t) | 0;
                                if (!s) break e;
                                u = (r | 0) == (n | 0);
                                if ((s | 0) <= 0) break;
                                if (u) {
                                    i = -1;
                                    break e
                                }
                                l = i - r | 0;
                                l = (l >>> 1) + r + (l << 31 >> 31) | 0;
                                n = i + -1 | 0;
                                n = n >>> 0 > i >>> 0 ? i : n;
                                i = (l | 0) < (r | 0) ? r : l
                            }
                            if (u) {
                                i = -1;
                                break
                            }
                            s = n - i | 0;
                            s = (s >>> 1) + i + (s & 1) | 0;
                            s = s >>> 0 > n >>> 0 ? n : s;
                            r = i + 1 | 0
                        }
                        return i | 0
                    }

                    function vs() {
                        var e = 0;
                        e = a[1677] | 0;
                        if ((e | 0) != 0 ? (a[e + 68 >> 2] | 0) != 0 : 0) e = a[e + 84 >> 2] | 0;
                        else e = 0;
                        return e | 0
                    }

                    function ms() {
                        var e = 0;
                        e = a[1677] | 0;
                        if ((e | 0) != 0 ? (a[e + 68 >> 2] | 0) != 0 : 0) {
                            a[2113] = a[e + 72 >> 2];
                            a[2114] = a[e + 64 >> 2];
                            a[2115] = a[e + 60 >> 2];
                            a[2116] = a[e + 76 >> 2];
                            a[2117] = _s() | 0;
                            a[2118] = (bs() | 0) & 65535;
                            a[2119] = (gs() | 0) & 65535;
                            a[2120] = (ys() | 0) & 65535;
                            e = a[1677] | 0;
                            a[2121] = a[e + 972 >> 2];
                            a[2122] = a[e + 1036 >> 2];
                            a[2123] = As() | 0;
                            a[2124] = ws() | 0;
                            a[2125] = xs() | 0;
                            a[2126] = 0;
                            e = ks() | 0;
                            if (!e) e = 1;
                            else {
                                a[2126] = a[e >> 2];
                                e = 1
                            }
                        } else e = 0;
                        return e | 0
                    }

                    function _s() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (e)
                            if (!(r[e + 2504 >> 0] | 0)) e = 0;
                            else e = a[e + 588 >> 2] | 0;
                        else {
                            sE();
                            e = -1
                        }
                        return e | 0
                    }

                    function bs() {
                        return a[(a[1677] | 0) + 1368 >> 2] & 65535 | 0
                    }

                    function gs() {
                        return s[(a[1677] | 0) + 412 >> 0] | 0 | 0
                    }

                    function ys() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else e = a[e + 1580 >> 2] & 65535;
                        return e | 0
                    }

                    function As() {
                        var e = 0;
                        e = a[1677] | 0;
                        do {
                            if (e)
                                if (!(a[e + 68 >> 2] | 0)) {
                                    sE();
                                    e = -1;
                                    break
                                } else {
                                    e = a[e + 1816 >> 2] | 0;
                                    break
                                }
                            else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function ws() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        u = p;
                        p = p + 272 | 0;
                        o = u;
                        e = a[1677] | 0;
                        if (e)
                            if (r[e + 2504 >> 0] | 0)
                                if ((a[e + 60 >> 2] | 0) >>> 0 > 17367040) {
                                    n = _s() | 0;
                                    i = o + 262 | 0;
                                    e = 1;
                                    t = 0;
                                    while (1) {
                                        if ((t | 0) >= (n | 0)) break;
                                        Ps((a[1677] | 0) + 540 | 0, t & 65535, o);
                                        h = s[i >> 0] | 0;
                                        e = (e & 65535) >>> 0 < h >>> 0 ? h : e;
                                        t = t + 1 | 0
                                    }
                                } else e = 8;
                        else e = 0;
                        else {
                            sE();
                            e = -1
                        }
                        p = u;
                        return e | 0
                    }

                    function xs() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = a[1677] | 0;
                        if (t)
                            if (r[t + 2504 >> 0] | 0)
                                if ((a[t + 60 >> 2] | 0) >>> 0 > 17367040) {
                                    Ss(a[t + 2172 >> 2] | 0, 0, e);
                                    e = (a[(a[1677] | 0) + 2220 >> 2] | 0) + (((r[a[e >> 2] >> 0] | 0) == 0) << 31 >> 31) | 0
                                } else e = 8;
                        else e = 0;
                        else {
                            sE();
                            e = -1
                        }
                        p = i;
                        return e | 0
                    }

                    function ks() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        t = f + 8 | 0;
                        l = f;
                        i = a[1677] | 0;
                        if ((i | 0) != 0 ? (a[i + 68 >> 2] | 0) != 0 : 0) {
                            e = a[i + 2536 >> 2] | 0;
                            if (!e) {
                                h = a[i + 480 >> 2] | 0;
                                Ts(a[h + 8 >> 2] | 0, a[h + 16 >> 2] | 0, n[a[h + 36 >> 2] >> 1] | 0, t);
                                h = (a[t >> 2] | 0) + 3 & -4;
                                e = h;
                                o = a[i + 464 >> 2] | 0;
                                a[e >> 2] = o;
                                u = e + 4 | 0;
                                a[u >> 2] = h + 8;
                                h = l + 4 | 0;
                                r = 0;
                                while (1) {
                                    t = r & 65535;
                                    if (o >>> 0 <= t >>> 0) break;
                                    Es(a[i + 416 >> 2] | 0, r, l);
                                    a[(a[u >> 2] | 0) + (t << 2) >> 2] = s[h >> 0];
                                    r = r + 1 << 16 >> 16;
                                    i = a[1677] | 0
                                }
                                a[i + 2536 >> 2] = e
                            }
                        } else e = 0;
                        p = f;
                        return e | 0
                    }

                    function Ts(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = e + (i & 65535) | 0;
                        a[r + 4 >> 2] = xE(e + 4 | 0) | 0;
                        a[r >> 2] = t + (xE(e) | 0);
                        return
                    }

                    function Es(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0;
                        s = a[e + 12 >> 2] | 0;
                        t = t & 65535;
                        n = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) | 0;
                        a[i >> 2] = s + (xE(n + (o[a[e + 36 >> 2] >> 1] | 0) | 0) | 0);
                        r[i + 4 >> 0] = TE(e, t, 1) | 0;
                        return
                    }

                    function Ss(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[e + 12 >> 2] | 0;
                        t = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) | 0;
                        a[i >> 2] = r + (xE(t + (o[a[e + 36 >> 2] >> 1] | 0) | 0) | 0);
                        return
                    }

                    function Ps(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > f >>> 0) {
                            l = a[e >> 2] | 0;
                            s = a[l + 12 >> 2] | 0;
                            u = (a[l + 8 >> 2] | 0) + (G(a[l + 20 >> 2] | 0, f) | 0) | 0;
                            e = a[l + 36 >> 2] | 0;
                            a[i >> 2] = s + (xE(u + (o[e >> 1] | 0) | 0) | 0);
                            e = wE(u + (o[e + 2 >> 1] | 0) | 0) | 0;
                            u = TE(l, f, 2) | 0;
                            s = i + 262 | 0;
                            r[s >> 0] = u;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (u & 255) >>> 0) break;
                                n[i + 4 + (t << 1) >> 1] = e;
                                t = t + 1 | 0;
                                e = e + 1 << 16 >> 16;
                                u = r[s >> 0] | 0
                            }
                            while (1) {
                                if (t >>> 0 >= 64) break;
                                n[i + 4 + (t << 1) >> 1] = -1;
                                t = t + 1 | 0
                            }
                            h = l + 24 | 0;
                            if ((o[h >> 1] | 0) > 3) {
                                t = EE(l, f, 3) | 0;
                                e = TE(l, f, 4) | 0
                            } else {
                                t = 0;
                                e = 0
                            }
                            u = i + 263 | 0;
                            r[u >> 0] = e;
                            s = t;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (e & 255) >>> 0) break;
                                n[i + 132 + (t << 1) >> 1] = s;
                                s = s + 1 << 16 >> 16;
                                t = t + 1 | 0;
                                e = r[u >> 0] | 0
                            }
                            while (1) {
                                if (t >>> 0 >= 64) break;
                                n[i + 132 + (t << 1) >> 1] = -1;
                                t = t + 1 | 0
                            }
                            t = n[h >> 1] | 0;
                            if ((t & 65535) > 5) {
                                e = EE(l, f, 5) | 0;
                                s = i + 260 | 0;
                                n[s >> 1] = e;
                                u = EE(l, f, 6) | 0;
                                h = i + 264 | 0;
                                n[h >> 1] = u;
                                if (u << 16 >> 16) {
                                    n[s >> 1] = (e & 65535) + 1;
                                    n[h >> 1] = (u & 65535) + 65535
                                }
                                if ((t & 65535) > 7) t = EE(l, f, 7) | 0;
                                else t = 0
                            } else {
                                n[i + 260 >> 1] = -1;
                                n[i + 264 >> 1] = 0;
                                t = 0
                            }
                            n[i + 266 >> 1] = t
                        }
                        return
                    }

                    function Is(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        n = u + 4 | 0;
                        s = u;
                        i = a[1677] | 0;
                        e: do {
                            if (!(a[i + 68 >> 2] | 0)) i = 0;
                            else {
                                r = i + 1976 | 0;
                                i = Ms(r, t) | 0;
                                if (i << 16 >> 16 == -1) {
                                    NE();
                                    i = 0;
                                    break
                                }
                                Cs(r, i, n);
                                r = o[n + 6 >> 1] | 0;
                                i = o[n + 4 >> 1] | 0;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= i >>> 0) break;
                                    Ss(a[(a[1677] | 0) + 2048 >> 2] | 0, t + r & 65535, s);
                                    if (!(JI(e, a[s >> 2] | 0) | 0)) {
                                        i = 1;
                                        break e
                                    } else t = t + 1 | 0
                                }
                                NE();
                                i = 0
                            }
                        } while (0);
                        p = u;
                        return i | 0
                    }

                    function Ms(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        if (!i) e = -1;
                        else e = (ps(e, t, i >>> 1, 0, i + -1 | 0) | 0) & 65535;
                        return e | 0
                    }

                    function Cs(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        s = i + 8 | 0;
                        r = i;
                        a[r >> 2] = 0;
                        a[r + 4 >> 2] = 0;
                        n[s >> 1] = -1;
                        r = a[e >> 2] | 0;
                        h = a[r + 12 >> 2] | 0;
                        e = t & 65535;
                        u = (a[r + 8 >> 2] | 0) + (G(a[r + 20 >> 2] | 0, e) | 0) | 0;
                        t = a[r + 36 >> 2] | 0;
                        a[i >> 2] = h + (xE(u + (o[t >> 1] | 0) | 0) | 0);
                        n[i + 4 >> 1] = EE(r, e, 1) | 0;
                        n[i + 6 >> 1] = wE(u + (o[t + 4 >> 1] | 0) | 0) | 0;
                        if ((o[r + 24 >> 1] | 0) > 3) n[s >> 1] = EE(r, e, 3) | 0;
                        return
                    }

                    function Os(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        h = f + 4 | 0;
                        l = f;
                        n[i >> 1] = -1;
                        n[r >> 1] = -1;
                        s = a[1677] | 0;
                        do {
                            if (s) {
                                if (a[s + 68 >> 2] | 0) {
                                    u = s + 1976 | 0;
                                    s = Ms(u, e) | 0;
                                    n[i >> 1] = s;
                                    if (s << 16 >> 16 == -1) {
                                        NE();
                                        break
                                    }
                                    Cs(u, s, h);
                                    e = o[h + 6 >> 1] | 0;
                                    s = o[h + 4 >> 1] | 0;
                                    u = 0;
                                    while (1) {
                                        if (u >>> 0 >= s >>> 0) {
                                            s = 11;
                                            break
                                        }
                                        Ss(a[(a[1677] | 0) + 2048 >> 2] | 0, u + e & 65535, l);
                                        if (!(JI(t, a[l >> 2] | 0) | 0)) {
                                            s = 9;
                                            break
                                        }
                                        u = u + 1 | 0
                                    }
                                    if ((s | 0) == 9) {
                                        n[r >> 1] = u;
                                        break
                                    } else if ((s | 0) == 11) {
                                        NE();
                                        break
                                    }
                                }
                            } else sE()
                        } while (0);
                        p = f;
                        return
                    }

                    function Rs(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        n = h + 4 | 0;
                        s = h;
                        u = a[1677] | 0;
                        if (u) {
                            if (a[u + 68 >> 2] | 0) {
                                Cs(u + 1976 | 0, e, n);
                                Ss(a[u + 2048 >> 2] | 0, (o[n + 6 >> 1] | 0) + (t & 65535) & 65535, s);
                                a[i >> 2] = a[n >> 2];
                                a[r >> 2] = a[s >> 2]
                            }
                        } else sE();
                        p = h;
                        return
                    }

                    function Ds(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        i = a[1677] | 0;
                        if (i)
                            if (!(a[i + 68 >> 2] | 0)) e = -1;
                            else {
                                Cs(i + 1976 | 0, e, t);
                                e = n[t + 8 >> 1] | 0
                            }
                        else {
                            sE();
                            e = -1
                        }
                        p = r;
                        return e | 0
                    }

                    function Fs(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        if (t)
                            if (a[t + 68 >> 2] | 0)
                                if ((Ms(t + 1976 | 0, e) | 0) << 16 >> 16 == -1) {
                                    sE();
                                    e = 0
                                } else e = 1;
                        else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Bs(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = a[1677] | 0;
                        do {
                            if (i) {
                                if (a[i + 68 >> 2] | 0) {
                                    r = i + 1976 | 0;
                                    i = Ms(r, e) | 0;
                                    if (i << 16 >> 16 == -1) {
                                        sE();
                                        break
                                    } else {
                                        Cs(r, i, t);
                                        break
                                    }
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function Ns(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        if (t)
                            if (a[t + 68 >> 2] | 0)
                                if ((ds(t + 2172 | 0, e) | 0) << 16 >> 16 == -1) {
                                    sE();
                                    e = 0
                                } else e = 1;
                        else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Ls() {
                        var e = 0;
                        e = cs(4157) | 0;
                        if (e << 16 >> 16 == -1) e = cs(3817) | 0;
                        return e | 0
                    }

                    function Us(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (!t) {
                                sE();
                                e = 0
                            } else {
                                if (a[t + 68 >> 2] | 0 ? (Vs(t + 416 | 0, e) | 0) << 16 >> 16 != -1 : 0) {
                                    e = 1;
                                    break
                                }
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Vs(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        return (ps(e, t, i >>> 1, 0, i + -1 | 0) | 0) & 65535 | 0
                    }

                    function Xs(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (t) {
                                if (!(a[t + 68 >> 2] | 0)) {
                                    NE();
                                    e = -1;
                                    break
                                }
                                e = Vs(t + 416 | 0, e) | 0;
                                if (e << 16 >> 16 == -1) {
                                    sE();
                                    e = -1
                                }
                            } else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function js(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = p;
                        p = p + 32 | 0;
                        u = f;
                        t = a[1677] | 0;
                        do {
                            if ((t | 0) != 0 ? (a[t + 68 >> 2] | 0) != 0 : 0) {
                                h = a[e >> 2] | 0;
                                l = e + 4 | 0;
                                r = a[t + 1368 >> 2] | 0;
                                if ((r | 0) > (a[l >> 2] | 0)) {
                                    sE();
                                    t = 0;
                                    break
                                }
                                n = r & 65535;
                                s = u + 20 | 0;
                                t = 0;
                                i = 0;
                                while (1) {
                                    if (n >>> 0 <= (t & 65535) >>> 0) break;
                                    Gs((a[1677] | 0) + 1320 | 0, t, u);
                                    c = o[s >> 1] | 0;
                                    t = t + 1 << 16 >> 16;
                                    i = (i | 0) > (c | 0) ? i : c + 1 | 0
                                }
                                if ((i | 0) > (h | 0)) {
                                    sE();
                                    t = 0;
                                    break
                                } else {
                                    a[e >> 2] = i;
                                    a[l >> 2] = r;
                                    t = 1;
                                    break
                                }
                            } else t = 0
                        } while (0);
                        p = f;
                        return t | 0
                    }

                    function Gs(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        u = l;
                        h = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > h >>> 0) {
                            s = a[e >> 2] | 0;
                            a[i + 8 >> 2] = SE(s, h, 0) | 0;
                            n[i + 20 >> 1] = EE(s, h, 1) | 0;
                            if ((o[e + 28 >> 1] | 0) > 2) t = $s(s, h, 2) | 0;
                            else t = -1;
                            a[i + 12 >> 2] = t;
                            if ((o[s + 24 >> 1] | 0) > 3) {
                                ME(s, h, 3, i, u);
                                t = a[e >> 2] | 0;
                                r[i + 22 >> 0] = TE(t, h, 4) | 0;
                                a[i + 24 >> 2] = 0;
                                ME(t, h, 5, i + 4 | 0, i + 28 | 0);
                                t = a[e >> 2] | 0;
                                if ((o[t + 24 >> 1] | 0) > 6) t = $s(t, h, 6) | 0;
                                else t = -1
                            } else {
                                a[i >> 2] = 0;
                                r[i + 22 >> 0] = 4;
                                a[i + 24 >> 2] = 1;
                                a[i + 4 >> 2] = 0;
                                a[i + 28 >> 2] = 0;
                                t = -1
                            }
                            a[i + 16 >> 2] = t
                        }
                        p = l;
                        return
                    }

                    function $s(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        switch (r[(a[e + 32 >> 2] | 0) + i >> 0] | 0) {
                            case 2:
                                {
                                    e = EE(e, t, i) | 0;e = e << 16 >> 16 == -1 ? -1 : e & 65535;
                                    break
                                }
                            case 4:
                                {
                                    e = SE(e, t, i) | 0;
                                    break
                                }
                            default:
                                e = -1
                        }
                        return e | 0
                    }

                    function Hs(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Gs((a[1677] | 0) + 1320 | 0, e, t);
                        return
                    }

                    function Ws(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 48 | 0;
                        s = h + 32 | 0;
                        i = h;
                        t = a[1677] | 0;
                        e: do {
                            if ((a[t + 68 >> 2] | 0) != 0 ? (r = t + 1320 | 0, o = Ys(r, e) | 0, o << 16 >> 16 != -1) : 0) {
                                Gs(r, o, i);
                                i = s + 4 | 0;
                                n[i >> 1] = -1;
                                a[s >> 2] = 11354;
                                e = 0;
                                while (1) {
                                    if ((a[t + 1368 >> 2] & 65535) >>> 0 <= (e & 65535) >>> 0) {
                                        u = 7;
                                        break e
                                    }
                                    zs(t + 1408 | 0, e, s) | 0;
                                    if ((n[i >> 1] | 0) == o << 16 >> 16) {
                                        t = 1;
                                        break e
                                    }
                                    e = e + 1 << 16 >> 16;
                                    t = a[1677] | 0
                                }
                            } else u = 7
                        } while (0);
                        if ((u | 0) == 7) {
                            NE();
                            t = 0
                        }
                        p = h;
                        return t | 0
                    }

                    function Ys(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        return (qs(e, t, i >>> 1, i + -1 | 0) | 0) & 65535 | 0
                    }

                    function zs(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            s = a[e >> 2] | 0;
                            r = a[s + 12 >> 2] | 0;
                            e = (a[s + 8 >> 2] | 0) + (G(a[s + 20 >> 2] | 0, t) | 0) | 0;
                            t = a[s + 36 >> 2] | 0;
                            a[i >> 2] = r + (xE(e + (o[t >> 1] | 0) | 0) | 0);
                            n[i + 4 >> 1] = wE(e + (o[t + 2 >> 1] | 0) | 0) | 0;
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function qs(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        h = e + 48 | 0;
                        n = i;
                        u = 0;
                        e: while (1) {
                            i = n;
                            while (1) {
                                if (u >>> 0 > r >>> 0) {
                                    i = -1;
                                    break e
                                }
                                if (!(a[h >> 2] | 0)) {
                                    i = -1;
                                    break e
                                }
                                n = a[e >> 2] | 0;
                                s = (a[n + 8 >> 2] | 0) + (G(a[n + 20 >> 2] | 0, i) | 0) | 0;
                                n = (xE(s + (o[a[n + 36 >> 2] >> 1] | 0) | 0) | 0) - t | 0;
                                if (!n) break e;
                                s = (u | 0) == (r | 0);
                                if ((n | 0) <= 0) break;
                                if (s) {
                                    i = -1;
                                    break e
                                }
                                s = i - u | 0;
                                s = (s >>> 1) + u + (s << 31 >> 31) | 0;
                                r = i + -1 | 0;
                                r = r >>> 0 > i >>> 0 ? i : r;
                                i = (s | 0) < (u | 0) ? u : s
                            }
                            if (s) {
                                i = -1;
                                break
                            }
                            n = r - i | 0;
                            n = (n >>> 1) + i + (n & 1) | 0;
                            n = n >>> 0 > r >>> 0 ? r : n;
                            u = i + 1 | 0
                        }
                        return i | 0
                    }

                    function Js(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        if ((t | 0) != 0 ? (a[t + 68 >> 2] | 0) != 0 : 0) {
                            e = Ys(t + 1320 | 0, e) | 0;
                            if (e << 16 >> 16 == -1) {
                                sE();
                                e = -1
                            }
                        } else {
                            NE();
                            e = -1
                        }
                        return e | 0
                    }

                    function Qs(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (t)
                                if (!(a[t + 68 >> 2] | 0)) {
                                    NE();
                                    e = -1;
                                    break
                                } else {
                                    e = Zs(t + 1408 | 0, e) | 0;
                                    break
                                }
                            else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function Zs(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        s = a[e + 48 >> 2] | 0;
                        t = (zs(e, (ps(e, t, s >>> 1, 0, s + -1 | 0) | 0) & 65535, i) | 0) == 0;
                        p = r;
                        return (t ? -1 : n[i + 4 >> 1] | 0) | 0
                    }

                    function Ks(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        _ = p;
                        p = p + 80 | 0;
                        d = _ + 40 | 0;
                        v = _ + 32 | 0;
                        u = _ + 16 | 0;
                        l = _ + 8 | 0;
                        f = _;
                        m = t + 12 | 0;
                        a[m >> 2] = -1;
                        c = t + 16 | 0;
                        h[c >> 2] = 1.0;
                        i = a[1677] | 0;
                        if (i)
                            if ((a[i + 1368 >> 2] | 0) >>> 0 > (e & 65535) >>> 0) {
                                Gs(i + 1320 | 0, e, d);
                                s = v + 4 | 0;
                                n[s >> 1] = -1;
                                a[v >> 2] = 11354;
                                r = 0;
                                while (1) {
                                    if ((a[i + 1368 >> 2] & 65535) >>> 0 <= (r & 65535) >>> 0) break;
                                    zs(i + 1408 | 0, r, v) | 0;
                                    if ((n[s >> 1] | 0) == e << 16 >> 16) break;
                                    r = r + 1 << 16 >> 16;
                                    i = a[1677] | 0
                                }
                                n[u >> 1] = 0;
                                n[u + 2 >> 1] = -1;
                                a[u + 4 >> 2] = 0;
                                i = a[d + 12 >> 2] | 0;
                                if ((i | 0) == -1) i = 0;
                                else {
                                    eo();
                                    to(i, l);
                                    i = io() | 0;
                                    if (i | 0) {
                                        s = i + 12 | 0;
                                        ro(a[s >> 2] | 0, l, 0, u, 4, 0, f);
                                        f = a[s >> 2] | 0;
                                        no(+h[f + 244 >> 2], a[f + 284 >> 2] | 0, c, 0) | 0;
                                        ao(i)
                                    }
                                    so();
                                    i = n[u >> 1] | 0
                                }
                                a[t >> 2] = o[d + 20 >> 1];
                                a[t + 4 >> 2] = a[d + 8 >> 2];
                                a[t + 8 >> 2] = a[v >> 2];
                                if (!(i << 16 >> 16)) i = 1;
                                else {
                                    a[m >> 2] = i & 65535;
                                    i = 1
                                }
                            } else i = 0;
                        else {
                            sE();
                            i = 0
                        }
                        p = _;
                        return i | 0
                    }

                    function eo() {
                        vf();
                        return
                    }

                    function to(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) sE();
                        else pf(a[i + 1472 >> 2] | 0, e, t);
                        return
                    }

                    function io() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1681] | 0) + 4 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = ff() | 0;
                            a[e + 12 >> 2] = cf(i, a[1731] & 255, 10, a[e + 8 >> 2] | 0, a[1733] | 0) | 0
                        }
                        p = t;
                        return e | 0
                    }

                    function ro(e, t, i, o, u, l, f) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        u = u | 0;
                        l = l | 0;
                        f = f | 0;
                        var d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0.0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            G = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0,
                            Z = 0,
                            K = 0,
                            ee = 0,
                            te = 0,
                            ie = 0,
                            re = 0,
                            ne = 0,
                            ae = 0,
                            se = 0,
                            oe = 0,
                            ue = 0,
                            he = 0,
                            le = 0,
                            fe = 0,
                            ce = 0,
                            de = 0,
                            pe = 0,
                            ve = 0,
                            me = 0,
                            _e = 0,
                            be = 0,
                            ge = 0,
                            ye = 0,
                            Ae = 0,
                            we = 0,
                            xe = 0,
                            ke = 0,
                            Te = 0,
                            Ee = 0,
                            Se = 0,
                            Pe = 0,
                            Ie = 0,
                            Me = 0,
                            Ce = 0;
                        Ce = p;
                        p = p + 80 | 0;
                        d = Ce + 60 | 0;
                        Ie = Ce + 48 | 0;
                        Me = Ce + 20 | 0;
                        ge = Ce;
                        ye = Ce + 66 | 0;
                        Ae = Ce + 64 | 0;
                        m = a[t >> 2] | 0;
                        a[d >> 2] = 0;
                        a[f >> 2] = 1;
                        we = (i | 0) == 0;
                        if (we) {
                            me = 0;
                            _e = _o() | 0
                        } else {
                            _e = a[i + 56 >> 2] | 0;
                            d = _e + 8 | 0;
                            me = _e + 4 | 0;
                            _e = bo(a[_e + 60 >> 2] | 0) | 0
                        }
                        v = 0;
                        while (1) {
                            if ((v | 0) == 3) break;
                            a[Ie + (v << 2) >> 2] = 0;
                            v = v + 1 | 0
                        }
                        O = t + 4 | 0;
                        ke = Ie + 4 | 0;
                        R = i + 4 | 0;
                        ve = (o | 0) != 0 & (we ^ 1);
                        Te = i + 56 | 0;
                        D = i + 16 | 0;
                        Ee = i + 48 | 0;
                        F = i + 113 | 0;
                        B = (o | 0) == 0;
                        N = o + 2 | 0;
                        L = o + 4 | 0;
                        Se = Ie + 8 | 0;
                        U = (me | 0) == 0;
                        V = i + 24 | 0;
                        X = i + 28 | 0;
                        j = i + 100 | 0;
                        G = i + 144 | 0;
                        $ = i + 8 | 0;
                        H = i + 6 | 0;
                        W = i + 116 | 0;
                        Y = i + 132 | 0;
                        z = i + 134 | 0;
                        q = i + 136 | 0;
                        J = i + 138 | 0;
                        Q = i + 131 | 0;
                        Z = i + 104 | 0;
                        K = i + 112 | 0;
                        Pe = (l | 0) == 0;
                        ee = Me + 4 | 0;
                        te = Me + 8 | 0;
                        ie = Me + 12 | 0;
                        re = Me + 20 | 0;
                        ne = Me + 24 | 0;
                        ae = Me + 16 | 0;
                        se = i + 12 | 0;
                        oe = i + 114 | 0;
                        ue = (u | 0) == 3;
                        he = o + 8 | 0;
                        le = o + 12 | 0;
                        fe = i + 156 | 0;
                        ce = i + 115 | 0;
                        de = i + 160 | 0;
                        pe = o + 14 | 0;
                        M = e + 288 | 0;
                        C = l + 2200 | 0;
                        I = 1;
                        b = 0;
                        S = 0;
                        e: while (1) {
                            if (!I) {
                                be = 281;
                                break
                            }
                            _ = wE(m) | 0;
                            E = m + 3 | 0;
                            g = r[m + 2 >> 0] | 0;
                            t: do {
                                switch (_ << 16 >> 16) {
                                    case 0:
                                        {
                                            v = E;g = 0;_ = S;
                                            break
                                        }
                                    case 2:
                                        {
                                            go(e, 0, +((wE(E) | 0) & 65535) / 1.0e4);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 4:
                                        {
                                            go(e, 0, +yo(_e, 1.0, +((wE(E) | 0) & 65535) / 1.0e4, 0.0, 1.0));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 59:
                                        {
                                            A = +((wE(E) | 0) & 65535) / 1.0e4;go(e, 0, +yo(_e, A, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4, 0.0, A > 1.0 ? A : 1.0));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 87:
                                        {
                                            go(e, 0, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 88:
                                        {
                                            go(e, 0, +yo(_e, 1.0, +((wE(E) | 0) & 65535) / 100.0, 0.0, 1.0));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 89:
                                        {
                                            A = +((wE(E) | 0) & 65535) / 100.0;go(e, 0, +yo(_e, A, +((wE(m + 5 | 0) | 0) & 65535) / 100.0, 0.0, A > 1.0 ? A : 1.0));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 5:
                                        {
                                            go(e, 3, +((wE(E) | 0) << 16 >> 16));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 8:
                                        {
                                            go(e, 3, +yo(_e, 0.0, +((wE(E) | 0) << 16 >> 16), -2400.0, 2400.0));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 60:
                                        {
                                            go(e, 3, +yo(_e, +((wE(E) | 0) << 16 >> 16), +((wE(m + 5 | 0) | 0) << 16 >> 16), -2400.0, 2400.0));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 9:
                                        {
                                            v = m + 5 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                A = +((wE(E) | 0) & 65535);
                                                h[Me >> 2] = 0.0;
                                                Ao(a[M >> 2] | 0, Me, 0);
                                                go(e, 144, +h[Me >> 2] + A);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 10:
                                        {
                                            v = m + 5 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                A = +yo(_e, 0.0, +((wE(E) | 0) << 16 >> 16), 0.0, 6.0e4);
                                                h[Me >> 2] = 0.0;
                                                Ao(a[M >> 2] | 0, Me, 0);
                                                go(e, 144, A + +h[Me >> 2]);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 11:
                                        {
                                            go(e, 5, +((wE(E) | 0) << 16 >> 16) / 10.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 12:
                                        {
                                            go(e, 5, +yo(_e, 0.0, +((wE(E) | 0) << 16 >> 16) / 10.0, -360.0, 360.0));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 61:
                                        {
                                            go(e, 5, +yo(_e, +((wE(E) | 0) << 16 >> 16) / 10.0, +((wE(m + 5 | 0) | 0) << 16 >> 16) / 10.0, -360.0, 360.0));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 14:
                                        {
                                            go(e, 6, +((wE(E) | 0) & 65535) / 1.0e4);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 62:
                                        {
                                            go(e, 6, +yo(_e, 1.0, +((wE(E) | 0) & 65535) / 1.0e4, 0.0, 1.0));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 63:
                                        {
                                            go(e, 6, +yo(_e, +((wE(E) | 0) & 65535) / 1.0e4, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4, 0.0, 1.0));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 16:
                                        {
                                            go(e, 7, +((wE(E) | 0) & 65535) / 1.0e4);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 19:
                                    case 18:
                                        {
                                            go(e, 9, +((wE(E) | 0) & 65535) / 1.0e4);go(e, 10, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4);v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 77:
                                    case 76:
                                        {
                                            go(e, 11, +((wE(E) | 0) & 65535) / 1.0e4);go(e, 12, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4);a[Ie >> 2] = 1;a[ke >> 2] = 1;v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 84:
                                    case 83:
                                        {
                                            go(e, 11, +((wE(E) | 0) & 65535) / 1.0e4);a[Ie >> 2] = 1;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 86:
                                    case 85:
                                        {
                                            go(e, 12, +((wE(E) | 0) & 65535) / 1.0e4);a[ke >> 2] = 1;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 23:
                                        {
                                            go(e, 161, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 24:
                                        {
                                            go(e, 162, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 25:
                                        {
                                            go(e, 163, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 26:
                                        {
                                            go(e, 164, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 27:
                                        {
                                            go(e, 165, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 28:
                                        {
                                            go(e, 166, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 29:
                                        {
                                            go(e, 167, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 30:
                                        {
                                            go(e, 168, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 31:
                                        {
                                            v = r[E >> 0] | 0;
                                            if (v << 24 >> 24 == -1) {
                                                Eo(e);
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            } else {
                                                wo(e, v & 255);
                                                xo(e, +((wE(m + 4 | 0) | 0) & 65535) / 1.0e4);
                                                ko(e, +((wE(m + 6 | 0) | 0) & 65535) / 100.0);
                                                To(e, +((wE(m + 8 | 0) | 0) & 65535) / 100.0);
                                                v = m + 10 | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                        }
                                    case 64:
                                        {
                                            v = r[E >> 0] | 0;
                                            if (v << 24 >> 24 == -1) {
                                                Eo(e);
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            } else {
                                                wo(e, v & 255);
                                                A = +((wE(m + 4 | 0) | 0) & 65535) / 1.0e4;
                                                xo(e, +yo(_e, A, +((wE(m + 6 | 0) | 0) & 65535) / 1.0e4, 0.0, 1.0));
                                                A = +((wE(m + 8 | 0) | 0) & 65535) / 100.0;
                                                ko(e, +yo(_e, A, +((wE(m + 10 | 0) | 0) & 65535) / 100.0, .009999999776482582, 10.0));
                                                To(e, +((wE(m + 12 | 0) | 0) & 65535) / 100.0);
                                                v = m + 14 | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                        }
                                    case 32:
                                        {
                                            A = +((wE(E) | 0) << 16 >> 16) / 1.0e4;
                                            if (!(A >= 0.0)) {
                                                Eo(e);
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            } else {
                                                So(e, A);
                                                Po(e, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4);
                                                v = m + 7 | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                        }
                                    case 33:
                                        {
                                            v = r[E >> 0] | 0;Io(e, 177, v & 255);go(e, 178, v << 24 >> 24 == 0 ? 1.0 : 0.0);v = m + 4 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 34:
                                        {
                                            if (!we) {
                                                T = wE(E) | 0;
                                                r[R >> 0] = (T & 65535) >>> 8;
                                                Mo(e, 145, T & 255)
                                            }
                                            v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 36:
                                        {
                                            go(e, 125, +((wE(E) | 0) & 65535));v = m + 6 | 0;
                                            if (g << 24 >> 24 == 3) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Mo(e, 126, s[m + 5 >> 0] | 0);
                                                go(e, 127, +(s[v >> 0] | 0) / 100.0);
                                                v = m + 7 | 0;
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 37:
                                        {
                                            go(e, 128, +((wE(m + 5 | 0) | 0) & 65535));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 38:
                                        {
                                            go(e, 129, +((wE(E) | 0) & 65535));v = m + 6 | 0;
                                            if (g << 24 >> 24 == 3) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Mo(e, 130, s[m + 5 >> 0] | 0);
                                                go(e, 131, +(s[v >> 0] | 0) / 100.0);
                                                v = m + 7 | 0;
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 39:
                                        {
                                            go(e, 132, +((wE(E) | 0) & 65535) / 1.0e4);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 40:
                                        {
                                            go(e, 133, +((wE(E) | 0) & 65535));v = m + 6 | 0;
                                            if (g << 24 >> 24 == 3) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Mo(e, 134, s[m + 5 >> 0] | 0);
                                                go(e, 135, +(s[v >> 0] | 0) / 100.0);
                                                v = m + 7 | 0;
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 43:
                                        {
                                            v = m + 4 | 0;
                                            if (!we ? (E = r[E >> 0] | 0, (E & 255) <= (~~+yo(_e, 0.0, 100.0, 0.0, 100.0) & 255)) : 0) {
                                                be = 65;
                                                break e
                                            } else {
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 44:
                                        {
                                            Oo(e, cs(3817) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 46:
                                    case 45:
                                        {
                                            Oo(e, cs(3822) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 48:
                                    case 47:
                                        {
                                            Oo(e, cs(3827) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 50:
                                    case 49:
                                        {
                                            Oo(e, cs(3832) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 52:
                                    case 51:
                                        {
                                            Oo(e, cs(3837) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 54:
                                    case 53:
                                        {
                                            Oo(e, cs(3842) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 56:
                                    case 55:
                                        {
                                            Oo(e, cs(3847) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 58:
                                    case 57:
                                        {
                                            Oo(e, cs(3852) | 0, +((wE(E) | 0) & 65535) / 1.0e4) | 0;v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 65:
                                        {
                                            if (!we ? r[F >> 0] | 0 : 0) {
                                                if (!B ? (T = a[Ee >> 2] | 0, n[o >> 1] = n[T + 102 >> 1] | 0, n[N >> 1] = 0, a[L >> 2] = s[T + 100 >> 0], (Ro(o, i, 0) | 0) == 0) : 0) {
                                                    be = 78;
                                                    break e
                                                }
                                                r[F >> 0] = 0
                                            }
                                            v = g & 255;m = (g & 255) >>> 2;b = m & 255;
                                            if (!ve) {
                                                v = E + v | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            k = Do(a[(a[Te >> 2] | 0) + 60 >> 2] | 0) | 0;Fo(e);
                                            if ((k | 0) > 0 & (a[1686] | 0) != 0) {
                                                v = E + v | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            if (!(r[(a[Te >> 2] | 0) + 120 >> 0] | 0)) _ = 1;
                                            else _ = (No() | 0) != 0 & 1;w = m & 255;x = 0;v = E;g = 0;
                                            while (1) {
                                                if ((g & 65535) >>> 0 >= w >>> 0) break;
                                                y = v + 4 | 0;
                                                b = Js(xE(v) | 0) | 0;
                                                i: do {
                                                    if (b << 16 >> 16 != -1) {
                                                        if (a[D >> 2] | 0 ? (a[(a[Ee >> 2] | 0) + 64 >> 2] | 0) >>> 0 < 7340032 : 0) {
                                                            NE();
                                                            v = x;
                                                            break
                                                        }
                                                        Ks(b, Me) | 0;
                                                        m = a[Me >> 2] | 0;
                                                        v = 0;
                                                        while (1) {
                                                            if ((k | 0) <= (v & 65535 | 0)) break;
                                                            Lo(a[(a[Te >> 2] | 0) + 60 >> 2] | 0, v, ge);
                                                            if ((a[ge >> 2] | 0) == (m | 0)) {
                                                                v = x;
                                                                break i
                                                            } else v = v + 1 << 16 >> 16
                                                        }
                                                        if (Uo(e, b, m & 65535) | 0) {
                                                            v = a[Te >> 2] | 0;
                                                            if (!(a[v + 76 >> 2] & 2)) {
                                                                Vo(b);
                                                                v = a[Te >> 2] | 0;
                                                                m = v + 131 | 0;
                                                                if (!(r[m >> 0] | 0)) r[m >> 0] = 1
                                                            }
                                                            n[(a[v + 20 >> 2] | 0) + (x << 1) >> 1] = b;
                                                            v = x + 1 | 0
                                                        } else v = x
                                                    } else v = x
                                                } while (0);
                                                x = v;
                                                v = y;
                                                g = g + 1 << 16 >> 16
                                            }
                                            if ((Xo(a[Te >> 2] | 0) | 0) == 1) {
                                                be = 101;
                                                break e
                                            } else {
                                                g = I;
                                                b = x & 65535
                                            }
                                            break
                                        }
                                    case 66:
                                        {
                                            go(e, 98, +((wE(E) | 0) & 65535) / 1.0e4);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 67:
                                        {
                                            A = +((wE(E) | 0) & 65535) / 1.0e4 * 360.0;jo(Me, ge, A, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4 * 360.0);go(e, 85, +h[Me >> 2]);go(e, 86, +h[ge >> 2]);v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 68:
                                        {
                                            v = xE(E) | 0;go(e, 88, (a[c >> 2] = v, +h[c >> 2]));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 69:
                                        {
                                            v = xE(E) | 0;go(e, 89, (a[c >> 2] = v, +h[c >> 2]));v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 70:
                                        {
                                            Io(e, 100, s[E >> 0] | 0);a[Se >> 2] = 1;v = m + 4 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 71:
                                        {
                                            A = +((wE(E) | 0) & 65535);A = +yo(_e, A, +((wE(m + 5 | 0) | 0) << 16 >> 16), 0.0, 6.0e4);h[Me >> 2] = 0.0;Ao(a[M >> 2] | 0, Me, 0);go(e, 144, A + +h[Me >> 2]);v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 80:
                                        {
                                            v = m + 4 | 0;
                                            if (U) be = 111;
                                            else {
                                                r[me >> 0] = r[E >> 0] | 0;
                                                be = 111
                                            }
                                            break
                                        }
                                    case 72:
                                        {
                                            v = E;be = 111;
                                            break
                                        }
                                    case 81:
                                        {
                                            v = m + 4 | 0;
                                            if (U) {
                                                g = I;
                                                _ = S
                                            } else {
                                                r[me >> 0] = r[E >> 0] | 0;
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 79:
                                    case 73:
                                        {
                                            if (B) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            n[o >> 1] = wE(E) | 0;v = m + 7 | 0;n[N >> 1] = wE(m + 5 | 0) | 0;
                                            if (_ << 16 >> 16 == 79) {
                                                a[L >> 2] = s[v >> 0];
                                                v = m + 8 | 0
                                            }
                                            if (!we) {
                                                if (a[D >> 2] | 0 ? (a[(a[Ee >> 2] | 0) + 64 >> 2] | 0) >>> 0 < 7340032 : 0) {
                                                    NE();
                                                    n[o >> 1] = 0;
                                                    n[N >> 1] = -1;
                                                    g = I;
                                                    _ = S;
                                                    break t
                                                }
                                                if (!(Ro(o, i, 1) | 0)) {
                                                    be = 122;
                                                    break e
                                                } else {
                                                    g = I;
                                                    _ = S
                                                }
                                            } else {
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 74:
                                        {
                                            go(e, 92, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 75:
                                        {
                                            v = m + 5 | 0;m = wE(E) | 0;
                                            if (m << 16 >> 16 == -1) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 93, m & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 78:
                                        {
                                            v = m + 5 | 0;m = wE(E) | 0;
                                            if (m << 16 >> 16 == -1) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 94, m & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 82:
                                        {
                                            v = m + 4 | 0;m = r[E >> 0] | 0;
                                            if (!(m << 24 >> 24)) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 147, m & 255);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 4051:
                                        {
                                            if (!we ? (xe = a[V >> 2] | 0, xe | 0) : 0) {
                                                n[xe + 172 >> 1] = 0;
                                                r[(a[X >> 2] | 0) + 112 >> 0] = 1
                                            }
                                            v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 4052:
                                        {
                                            if (!we ? a[V >> 2] | 0 : 0) r[(a[X >> 2] | 0) + 112 >> 0] = 2;v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 90:
                                        {
                                            go(e, 160, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 91:
                                        {
                                            v = m + 5 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Go(wE(E) | 0, j);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 92:
                                        {
                                            v = m + 5 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                g = wE(E) | 0;
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, g, Me);
                                                $o(a[Me >> 2] | 0, j);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 99:
                                        {
                                            v = m + 5 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                g = wE(E) | 0;
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, g, Me);
                                                Bs(a[Me >> 2] | 0, G);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 100:
                                        {
                                            v = m + 7 | 0;m = xE(E) | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, m >>> 16 & 65535, Me);
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, m & 65535, ge);
                                                Os(a[Me >> 2] | 0, a[ge >> 2] | 0, ye, Ae);
                                                m = n[ye >> 1] | 0;
                                                if (m << 16 >> 16 == -1) {
                                                    be = 149;
                                                    break e
                                                }
                                                _ = n[Ae >> 1] | 0;
                                                if (_ << 16 >> 16 == -1) {
                                                    be = 149;
                                                    break e
                                                }
                                                Ho(e, (m & 65535) << 16 | _ & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 93:
                                        {
                                            v = m + 4 | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                r[(a[X >> 2] | 0) + 113 >> 0] = r[E >> 0] | 0;
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 94:
                                        {
                                            v = m + 9 | 0;
                                            if (!we) {
                                                k = wE(m + 7 | 0) | 0;
                                                x = xE(E) | 0;
                                                T = Wo() | 0;
                                                E = P;
                                                a[$ >> 2] = x;
                                                n[H >> 1] = k;
                                                k = kE(v) | 0;
                                                a[W >> 2] = k;
                                                RE(T, E, v)
                                            }
                                            v = m + 17 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 95:
                                        {
                                            go(e, 153, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 96:
                                        {
                                            go(e, 154, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 97:
                                        {
                                            go(e, 155, +((wE(E) | 0) & 65535) / 100.0);v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 98:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = Yo() | 0;
                                            if (!v) {
                                                be = 164;
                                                break e
                                            }
                                            _ = zo() | 0;
                                            if (!_) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            } else {
                                                a[_ + 12 >> 2] = xE(E) | 0;
                                                r[_ + 16 >> 0] = r[m + 7 >> 0] | 0;
                                                r[_ + 17 >> 0] = r[m + 8 >> 0] | 0;
                                                a[_ + 20 >> 2] = xE(m + 9 | 0) | 0;
                                                tS(v + 24 | 0, _);
                                                a[v + 76 >> 2] = _;
                                                a[(a[Te >> 2] | 0) + 112 >> 2] = v;
                                                v = m + 13 | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                        }
                                    case 101:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            n[Y >> 1] = wE(E) | 0;
                                            n[z >> 1] = wE(m + 5 | 0) | 0;
                                            v = m + 7 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 102:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            n[q >> 1] = wE(E) | 0;
                                            n[J >> 1] = wE(m + 5 | 0) | 0;
                                            v = m + 7 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 103:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            r[Q >> 0] = r[E >> 0] | 0;
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 112:
                                    case 106:
                                    case 104:
                                        {
                                            v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 105:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            r[(a[Te >> 2] | 0) + 124 >> 0] = r[E >> 0] | 0 ? 2 : 0;
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 107:
                                        {
                                            v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 108:
                                        {
                                            v = m + 5 | 0;m = wE(E) | 0;
                                            if (m << 16 >> 16 == -1) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 96, m & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 109:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = m + 4 | 0;g = r[E >> 0] | 0;_ = g & 255;m = 0;
                                            while (1) {
                                                if ((m | 0) >= 8) {
                                                    m = 0;
                                                    break
                                                }
                                                if ((r[Z + m >> 0] | 0) == (_ | 0)) {
                                                    g = I;
                                                    _ = S;
                                                    break t
                                                } else m = m + 1 | 0
                                            }
                                            while (1) {
                                                if ((m | 0) >= 8) {
                                                    g = I;
                                                    _ = S;
                                                    break t
                                                }
                                                _ = Z + m | 0;
                                                if ((r[_ >> 0] | 0) == -1) break;
                                                else m = m + 1 | 0
                                            }
                                            r[_ >> 0] = g;g = I;_ = S;
                                            break
                                        }
                                    case 110:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            r[K >> 0] = r[E >> 0] | 0;
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 111:
                                        {
                                            if (Pe) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            E = wE(E) | 0;Ss(a[C >> 2] | 0, E, Me);E = a[Me >> 2] | 0;v = cs(E) | 0;
                                            if (!(bI(E) | 0)) NE();Oo(e, v, +((wE(m + 5 | 0) | 0) & 65535) / 1.0e4) | 0;v = m + 7 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 113:
                                        {
                                            if (!we ? (a[(a[Te >> 2] | 0) + 112 >> 2] | 0) == 0 : 0) {
                                                T = Yo() | 0;
                                                if (!T) {
                                                    be = 209;
                                                    break e
                                                }
                                                k = wE(E) | 0;
                                                g = (wE(m + 5 | 0) | 0) & 65535;
                                                y = T + 24 | 0;
                                                w = T + 76 | 0;
                                                k = k & 65535;
                                                v = 1;
                                                x = 0;
                                                while (1) {
                                                    if ((x | 0) == (k | 0)) break;
                                                    _ = zo() | 0;
                                                    if (_) {
                                                        qo(a[Ee >> 2] | 0, x + g & 65535, Me);
                                                        a[_ + 12 >> 2] = a[Me >> 2];
                                                        r[_ + 16 >> 0] = a[ee >> 2];
                                                        r[_ + 17 >> 0] = a[te >> 2];
                                                        a[_ + 20 >> 2] = a[ie >> 2];
                                                        a[_ + 24 >> 2] = a[re >> 2];
                                                        a[_ + 28 >> 2] = a[ne >> 2];
                                                        a[_ + 32 >> 2] = a[ae >> 2];
                                                        tS(y, _);
                                                        if (!x) a[w >> 2] = _
                                                    } else v = 0;
                                                    x = x + 1 | 0
                                                }
                                                if (!v) {
                                                    be = 210;
                                                    break e
                                                }
                                                a[(a[Te >> 2] | 0) + 112 >> 2] = T;
                                                v = m + 7 | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = E + (g & 255) | 0;g = I;_ = S;
                                            break
                                        }
                                    case 114:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = m + 4 | 0;E = r[E >> 0] | 0;m = a[Te >> 2] | 0;r[m + 126 >> 0] = E;
                                            if (!(E << 24 >> 24)) {
                                                g = I;
                                                _ = S
                                            } else {
                                                a[se >> 2] = 0;
                                                a[m + 132 >> 2] = 0;
                                                m = a[m + 68 >> 2] | 0;
                                                _ = a[m + 80 >> 2] | 0;
                                                if (_) {
                                                    mI(_ + 324 | 0);
                                                    m = a[(a[Te >> 2] | 0) + 68 >> 2] | 0
                                                }
                                                _ = a[m + 84 >> 2] | 0;
                                                if (_) {
                                                    mI(_ + 156 | 0);
                                                    m = a[(a[Te >> 2] | 0) + 68 >> 2] | 0
                                                }
                                                ho(m);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 115:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            _ = a[X >> 2] | 0;v = a[_ + 16 >> 2] | 0;do {
                                                if (!v) {
                                                    v = zo() | 0;
                                                    if (!v) {
                                                        v = E + (g & 255) | 0;
                                                        g = I;
                                                        _ = S;
                                                        break t
                                                    } else {
                                                        _ = a[X >> 2] | 0;
                                                        break
                                                    }
                                                }
                                            } while (0);a[v + 12 >> 2] = xE(E) | 0;r[v + 16 >> 0] = 0;r[v + 17 >> 0] = 0;a[v + 20 >> 2] = 0;a[v + 24 >> 2] = 0;a[v + 32 >> 2] = xE(m + 7 | 0) | 0;a[v + 28 >> 2] = xE(m + 11 | 0) | 0;a[_ + 16 >> 2] = v;v = m + 15 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 116:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            r[oe >> 0] = r[E >> 0] | 0;
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 117:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = m + 4 | 0;
                                            if ((r[E >> 0] | 0) == 1) {
                                                Mo(e, 152, 0);
                                                g = I;
                                                _ = S
                                            } else {
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 118:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 119:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            a[(a[X >> 2] | 0) + 36 >> 2] = m + 5;
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 120:
                                        if (we) {
                                            if (!ue) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            if (!B) {
                                                n[le >> 1] = wE(E) | 0;
                                                a[he >> 2] = m + 5
                                            }
                                            v = m + 13 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            v = m + 5 | 0;
                                            _ = kE(v) | 0;
                                            g = P;
                                            y = Wo() | 0;
                                            w = P;
                                            if (!((_ | 0) == 0 & (g | 0) == 0) ? (E = wE(E) | 0, T = sM(y | 0, w | 0, _ | 0, g | 0) | 0, x = P, E = fM(E & 65535 | 0, 0, 1e3, 0) | 0, k = P, x >>> 0 < k >>> 0 | (x | 0) == (k | 0) & T >>> 0 < E >>> 0) : 0) {
                                                be = 246;
                                                break e
                                            }
                                            if ((a[f >> 2] | 0) == 1) RE(y, w, v);
                                            v = m + 13 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 121:
                                        {
                                            go(e, 4, +((wE(E) | 0) << 16 >> 16));v = m + 5 | 0;g = I;_ = S;
                                            break
                                        }
                                    case 122:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = m + 4 | 0;
                                            if ((r[E >> 0] | 0) == 1) {
                                                Io(e, 102, 4);
                                                g = I;
                                                _ = S
                                            } else {
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 123:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            a[fe >> 2] = s[E >> 0];
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 124:
                                        {
                                            if (we) {
                                                v = E + (g & 255) | 0;
                                                g = I;
                                                _ = S;
                                                break t
                                            }
                                            v = m + 4 | 0;
                                            if ((r[E >> 0] | 0) == 1) {
                                                r[ce >> 0] = 1;
                                                g = I;
                                                _ = S
                                            } else {
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 125:
                                        {
                                            v = m + 7 | 0;m = xE(E) | 0;
                                            if (we) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, m >>> 16 & 65535, Me);
                                                Ss(a[(a[Ee >> 2] | 0) + 2200 >> 2] | 0, m & 65535, ge);
                                                Os(a[Me >> 2] | 0, a[ge >> 2] | 0, ye, Ae);
                                                m = n[ye >> 1] | 0;
                                                if (m << 16 >> 16 == -1) {
                                                    be = 267;
                                                    break e
                                                }
                                                _ = n[Ae >> 1] | 0;
                                                if (_ << 16 >> 16 == -1) {
                                                    be = 267;
                                                    break e
                                                }
                                                Qo(e, m, _);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 126:
                                        if (we) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            n[de >> 1] = wE(E) | 0;
                                            v = m + 5 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    case 127:
                                        {
                                            v = m + 5 | 0;m = wE(E) | 0;
                                            if (m << 16 >> 16 == -1) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 95, m & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 128:
                                        {
                                            v = m + 5 | 0;m = wE(E) | 0;
                                            if (m << 16 >> 16 == -1) {
                                                g = I;
                                                _ = S
                                            } else {
                                                Io(e, 97, m & 65535);
                                                g = I;
                                                _ = S
                                            }
                                            break
                                        }
                                    case 129:
                                        if (B) {
                                            v = E + (g & 255) | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        } else {
                                            r[pe >> 0] = r[E >> 0] | 0;
                                            v = m + 4 | 0;
                                            g = I;
                                            _ = S;
                                            break t
                                        }
                                    default:
                                        {
                                            NE();v = E + (g & 255) | 0;g = I;_ = S
                                        }
                                }
                            } while (0);
                            if ((be | 0) == 111) {
                                be = 0;
                                a[d >> 2] = (a[d >> 2] | 0) + (s[v >> 0] | 0);
                                v = v + 1 | 0;
                                g = I;
                                _ = S
                            }
                            m = v;
                            I = ((a[O >> 2] | 0) + (a[t >> 2] | 0) | 0) == (v | 0) ? 0 : g;
                            S = _
                        }
                        e: switch (be | 0) {
                            case 65:
                                {
                                    r[F >> 0] = 0;a[f >> 2] = 0;
                                    break
                                }
                            case 78:
                                {
                                    r[F >> 0] = 0;a[f >> 2] = 0;
                                    break
                                }
                            case 101:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 122:
                                {
                                    r[F >> 0] = 0;a[f >> 2] = 0;
                                    break
                                }
                            case 149:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 164:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 209:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 210:
                                {
                                    Jo(T);a[f >> 2] = 0;
                                    break
                                }
                            case 246:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 267:
                                {
                                    a[f >> 2] = 0;
                                    break
                                }
                            case 281:
                                {
                                    t: do {
                                        if (S | 0) {
                                            xe = a[Te >> 2] | 0;
                                            m = a[(a[xe + 60 >> 2] | 0) + 280 >> 2] | 0;
                                            d = Zo(m) | 0;
                                            v = xe + 5 | 0;
                                            if (a[xe + 76 >> 2] & 2 | 0) {
                                                r[v >> 0] = 2;
                                                break
                                            }
                                            r[v >> 0] = 1;
                                            y = (d | 0) == 0;
                                            g = b & 65535;
                                            d = m + 32 | 0;
                                            b = 0;
                                            i: while (1) {
                                                if (b >>> 0 >= g >>> 0) break t;
                                                m = a[Te >> 2] | 0;
                                                _ = n[(a[m + 20 >> 2] | 0) + (b << 1) >> 1] | 0;
                                                do {
                                                    if (_ << 16 >> 16 != -1) {
                                                        if (y)
                                                            if (!(tu(_, m) | 0)) {
                                                                be = 293;
                                                                break i
                                                            } else break;
                                                        v = a[d >> 2] | 0;
                                                        if (!(Ko(v) | 0))
                                                            if (!(tu(_, m) | 0)) {
                                                                be = 291;
                                                                break i
                                                            } else break;
                                                        else if (!(eu(v, _, m) | 0)) {
                                                            be = 289;
                                                            break i
                                                        } else break
                                                    }
                                                } while (0);
                                                b = b + 1 | 0
                                            }
                                            if ((be | 0) == 289) {
                                                a[f >> 2] = 0;
                                                break e
                                            } else if ((be | 0) == 291) {
                                                a[f >> 2] = 0;
                                                break e
                                            } else if ((be | 0) == 293) {
                                                a[f >> 2] = 0;
                                                break e
                                            }
                                        }
                                    } while (0);
                                    switch (u | 0) {
                                        case 0:
                                            {
                                                if (Pe) break e;
                                                if ((iu(a[l + 64 >> 2] | 0) | 0) >>> 0 >= 19136512) break e;v = ru(r[e + 105 >> 0] | 0) | 0;m = Ls() | 0;d = 0;
                                                while (1) {
                                                    if ((d | 0) >= (v | 0)) break;
                                                    nu(e, d, Me);
                                                    if ((n[Me >> 1] | 0) == m << 16 >> 16) break;
                                                    d = d + 1 | 0
                                                }
                                                if ((d | 0) == (v | 0)) Oo(e, m, 1.0) | 0;
                                                break e
                                            }
                                        case 1:
                                            {
                                                if (!(a[Ie >> 2] | 0)) go(e, 11, 0.0);
                                                if (a[ke >> 2] | 0) break e;go(e, 12, 0.0);
                                                break e
                                            }
                                        case 2:
                                            {
                                                if (!((i | 0) != 0 & (a[Se >> 2] | 0) == 0)) break e;
                                                if ((a[(a[Ee >> 2] | 0) + 64 >> 2] | 0) >>> 0 >= 18874368) break e;Io(e, 100, 0);
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                }
                        }
                        p = Ce;
                        return
                    }

                    function no(e, t, i, r) {
                        e = +e;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        h[i >> 2] = e;
                        if ((t | 0) != 0 ? (n = a[t >> 2] | 0, (n | 0) != 2147483647) : 0) {
                            h[i >> 2] = (a[c >> 2] = n, +h[c >> 2]) * e;
                            r = s[t + 36 >> 0] | 0 | r
                        }
                        return r | 0
                    }

                    function ao(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 12 | 0;
                        uo(a[t >> 2] | 0);
                        a[t >> 2] = 0;
                        eS((a[1681] | 0) + 4 | 0, e);
                        return
                    }

                    function so() {
                        oo();
                        return
                    }

                    function oo() {
                        a[1679] = (a[1679] | 0) + -1;
                        return
                    }

                    function uo(e) {
                        e = e | 0;
                        a[1682] = (a[1682] | 0) + -1;
                        a[e + 12 >> 2] = 0;
                        ho(e);
                        lo(e);
                        return
                    }

                    function ho(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        r[e + 8 >> 0] = 1;
                        r[e + 9 >> 0] = 0;
                        r[e + 29 >> 0] = 0;
                        r[e + 101 >> 0] = 0;
                        r[e + 103 >> 0] = 0;
                        r[e + 104 >> 0] = 0;
                        r[e + 105 >> 0] = 0;
                        h[e + 244 >> 2] = 1.0;
                        a[e + 248 >> 2] = 0;
                        a[e + 252 >> 2] = 2147483647;
                        a[e + 208 >> 2] = -1;
                        t = 0;
                        while (1) {
                            if ((t | 0) == 8) break;
                            a[e + 212 + (t << 2) >> 2] = -1;
                            t = t + 1 | 0
                        }
                        a[e + 80 >> 2] = 0;
                        a[e + 84 >> 2] = 0;
                        a[e + 256 >> 2] = 2147483647;
                        a[e + 260 >> 2] = 2147483647;
                        a[e + 264 >> 2] = 2147483647;
                        a[e + 268 >> 2] = 2147483647;
                        a[e + 272 >> 2] = 2147483647;
                        i = e + 32 | 0;
                        t = e + 204 | 0;
                        a[i >> 2] = 0;
                        a[i + 4 >> 2] = 0;
                        a[i + 8 >> 2] = 0;
                        a[i + 12 >> 2] = 0;
                        fo(t);
                        a[t >> 2] = 0;
                        co(e);
                        return
                    }

                    function lo(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 4 >> 2] | 0;
                        a[t >> 2] = a[e >> 2];
                        a[(a[e >> 2] | 0) + 4 >> 2] = t;
                        return
                    }

                    function fo(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e >> 2] | 0;
                        while (1) {
                            if (!t) break;
                            i = a[t >> 2] | 0;
                            vo(t);
                            t = i
                        }
                        a[e >> 2] = 0;
                        return
                    }

                    function co(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        t = e + 284 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 288 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 292 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 296 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 300 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 304 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 308 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 312 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 316 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 320 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 324 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0
                        }
                        t = e + 328 | 0;
                        i = a[t >> 2] | 0;
                        if (!i) t = 0;
                        else {
                            po(i);
                            a[t >> 2] = 0;
                            t = 0
                        }
                        while (1) {
                            if ((t | 0) == 8) break;
                            i = e + 332 + (t << 2) | 0;
                            r = a[i >> 2] | 0;
                            if (r | 0) {
                                po(r);
                                a[i >> 2] = 0
                            }
                            t = t + 1 | 0
                        }
                        a[e + 364 >> 2] = 0;
                        return
                    }

                    function po(e) {
                        e = e | 0;
                        e = e + -4 | 0;
                        a[e >> 2] = a[1683];
                        a[1683] = e;
                        a[1684] = (a[1684] | 0) + -1;
                        return
                    }

                    function vo(e) {
                        e = e | 0;
                        a[1685] = (a[1685] | 0) + -1;
                        mo(e);
                        return
                    }

                    function mo(e) {
                        e = e | 0;
                        if (e | 0) po(e);
                        return
                    }

                    function _o() {
                        var e = 0;
                        e = EP() | 0;
                        if ((e | 0) != 0 ? (lP(a[e + 72 >> 2] | 0) | 0) == 0 : 0) e = 6912;
                        else e = 6908;
                        return a[e >> 2] | 0
                    }

                    function bo(e) {
                        e = e | 0;
                        var t = 0;
                        t = EP() | 0;
                        if ((t | 0) != 0 ? (lP(a[t + 72 >> 2] | 0) | 0) == 0 : 0) e = e + 256 | 0;
                        else e = e + 252 | 0;
                        return a[e >> 2] | 0
                    }

                    function go(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        uf(e, t, (h[c >> 2] = i, a[c >> 2] | 0));
                        return
                    }

                    function yo(e, t, i, r, n) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        r = +r;
                        n = +n;
                        var a = 0.0;
                        if (!(i == 0.0)) {
                            e = lf(e, 0, 2147483647) | 0;
                            a = t - i;
                            a = a < r ? r : a;
                            t = t + i;
                            t = a + ((t > n ? n : t) - a) * +(e | 0) * 4.656612873077393e-10
                        }
                        a = t > r ? t : r;
                        return +(a < n ? a : n)
                    }

                    function Ao(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if (e | 0 ? (r = a[e >> 2] | 0, (r | 0) != 2147483647) : 0) a[t >> 2] = r;
                        return
                    }

                    function wo(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        n = e + 300 | 0;
                        i = a[n >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[n >> 2] = i;
                            if (i | 0) {
                                a[i + 8 >> 2] = t;
                                r[(a[n >> 2] | 0) + 26 >> 0] = 1;
                                r[e + 8 >> 0] = 1
                            }
                        } else {
                            i = i + 8 | 0;
                            if ((a[i >> 2] | 0) != (t | 0)) {
                                a[i >> 2] = t;
                                r[(a[n >> 2] | 0) + 26 >> 0] = 1;
                                r[e + 8 >> 0] = 1
                            }
                        }
                        return
                    }

                    function xo(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + 300 | 0;
                        i = a[o >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[o >> 2] = i;
                            if (i | 0) {
                                h[i + 12 >> 2] = t;
                                s = a[o >> 2] | 0;
                                r[s + 27 >> 0] = 1;
                                r[e + 8 >> 0] = 1;
                                u = 4
                            }
                        } else {
                            s = i;
                            u = 4
                        }
                        if ((u | 0) == 4 ? (n = s + 12 | 0, u = a[n >> 2] | 0, (u | 0) == 2147483647 | (a[c >> 2] = u, +h[c >> 2]) != t) : 0) {
                            h[n >> 2] = t;
                            r[(a[o >> 2] | 0) + 27 >> 0] = 1;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function ko(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + 300 | 0;
                        i = a[o >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[o >> 2] = i;
                            if (i | 0) {
                                h[i + 16 >> 2] = t;
                                s = a[o >> 2] | 0;
                                r[s + 28 >> 0] = 1;
                                r[e + 8 >> 0] = 1;
                                u = 4
                            }
                        } else {
                            s = i;
                            u = 4
                        }
                        if ((u | 0) == 4 ? (n = s + 16 | 0, u = a[n >> 2] | 0, (u | 0) == 2147483647 | (a[c >> 2] = u, +h[c >> 2]) != t) : 0) {
                            h[n >> 2] = t;
                            r[(a[o >> 2] | 0) + 28 >> 0] = 1;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function To(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + 300 | 0;
                        i = a[o >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[o >> 2] = i;
                            if (i | 0) {
                                h[i + 20 >> 2] = t;
                                s = a[o >> 2] | 0;
                                r[s + 29 >> 0] = 1;
                                r[e + 8 >> 0] = 1;
                                u = 4
                            }
                        } else {
                            s = i;
                            u = 4
                        }
                        if ((u | 0) == 4 ? (n = s + 20 | 0, u = a[n >> 2] | 0, (u | 0) == 2147483647 | (a[c >> 2] = u, +h[c >> 2]) != t) : 0) {
                            h[n >> 2] = t;
                            r[(a[o >> 2] | 0) + 29 >> 0] = 1;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Eo(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 300 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            po(i);
                            a[t >> 2] = 0;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function So(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        s = e + 300 | 0;
                        i = a[s >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[s >> 2] = i;
                            if (i | 0) {
                                h[i >> 2] = t;
                                n = a[s >> 2] | 0;
                                r[n + 24 >> 0] = 1;
                                r[e + 8 >> 0] = 1;
                                o = 4
                            }
                        } else {
                            n = i;
                            o = 4
                        }
                        if ((o | 0) == 4 ? (o = a[n >> 2] | 0, (o | 0) == 2147483647 | (a[c >> 2] = o, +h[c >> 2]) != t) : 0) {
                            h[n >> 2] = t;
                            r[(a[s >> 2] | 0) + 24 >> 0] = 1;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Po(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + 300 | 0;
                        i = a[o >> 2] | 0;
                        if (!i) {
                            i = hf() | 0;
                            a[o >> 2] = i;
                            if (i | 0) {
                                h[i + 4 >> 2] = t;
                                s = a[o >> 2] | 0;
                                r[s + 25 >> 0] = 1;
                                r[e + 8 >> 0] = 1;
                                u = 4
                            }
                        } else {
                            s = i;
                            u = 4
                        }
                        if ((u | 0) == 4 ? (n = s + 4 | 0, u = a[n >> 2] | 0, (u | 0) == 2147483647 | (a[c >> 2] = u, +h[c >> 2]) != t) : 0) {
                            h[n >> 2] = t;
                            r[(a[o >> 2] | 0) + 25 >> 0] = 1;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Io(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        uf(e, t, i);
                        return
                    }

                    function Mo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        uf(e, t, i);
                        return
                    }

                    function Co(e) {
                        e = e | 0;
                        if (!e) e = -1;
                        else e = ((e - (a[1634] | 0) | 0) / 164 | 0) << 16 | a[e + 32 >> 2] & 65535;
                        return e | 0
                    }

                    function Oo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return Vl(e, t, 1, 0, i, 0, 0.0) | 0
                    }

                    function Ro(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 16 | 0;
                        f = v;
                        a[f >> 2] = 0;
                        h = n[e >> 1] | 0;
                        do {
                            if (h << 16 >> 16 != 0 ? (d = e + 2 | 0, s = n[d >> 1] | 0, s << 16 >> 16 != -1) : 0) {
                                l = t + 48 | 0;
                                c = a[(a[l >> 2] | 0) + 3352 >> 2] | 0;
                                s = (s & 65535) << 1;
                                e: do {
                                    if ((KE(a[c + (s * 12 | 0) + 8 >> 2] | 0) | 0) == 0 ? (KE(a[c + ((s | 1) * 12 | 0) + 8 >> 2] | 0) | 0) == 0 : 0) {
                                        u = 0;
                                        s = h;
                                        while (1) {
                                            if ((u | 0) >= (s & 65535 | 0)) break e;
                                            rS((a[l >> 2] | 0) + 3356 | 0, f);
                                            eS(c + ((o[d >> 1] << 1 | 1) * 12 | 0) | 0, a[f >> 2] | 0);
                                            u = u + 1 | 0;
                                            s = n[e >> 1] | 0
                                        }
                                    }
                                } while (0);
                                t = t + 56 | 0;
                                u = a[t >> 2] | 0;
                                r[u + 1 >> 0] = a[e + 4 >> 2];
                                if (a[u + 76 >> 2] & 2 | 0) {
                                    s = c + ((o[d >> 1] << 1) * 12 | 0) | 0;
                                    if (!i) {
                                        a[u + 16 >> 2] = s;
                                        r[u + 3 >> 0] = 2;
                                        s = 1;
                                        break
                                    } else {
                                        a[u + 12 >> 2] = s;
                                        r[u + 2 >> 0] = 2;
                                        s = 1;
                                        break
                                    }
                                }
                                s = of (c, n[d >> 1] << 1 & 65535, u) | 0;
                                if (s) {
                                    h = c + ((o[d >> 1] << 1) * 12 | 0) | 0;
                                    u = a[t >> 2] | 0;
                                    if (!i) {
                                        a[u + 16 >> 2] = h;
                                        r[u + 3 >> 0] = 1;
                                        break
                                    } else {
                                        a[u + 12 >> 2] = h;
                                        r[u + 2 >> 0] = 1;
                                        break
                                    }
                                } else s = 0
                            } else s = 1
                        } while (0);
                        p = v;
                        return s | 0
                    }

                    function Do(e) {
                        e = e | 0;
                        do {
                            if (rf(0) | 0)
                                if (!e) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = af(a[(a[e + 192 >> 2] | 0) + 684 >> 2] | 0) | 0;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Fo(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 103 | 0;
                        if (r[t >> 0] | 0) {
                            r[t >> 0] = 0;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Bo(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function No() {
                        var e = 0;
                        e = a[1677] | 0;
                        if ((e | 0) != 0 ? (a[e + 68 >> 2] | 0) != 0 : 0) e = s[e + 413 >> 0] | 0;
                        else e = 0;
                        return e | 0
                    }

                    function Lo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        do {
                            if (rf(0) | 0) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                r = t & 65535;
                                t = a[e + 192 >> 2] | 0;
                                if ((af(a[t + 684 >> 2] | 0) | 0) > (r | 0)) {
                                    Ks(sf(t, r) | 0, i) | 0;
                                    break
                                } else {
                                    sE();
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function Uo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            o = 0;
                        o = e + 103 | 0;
                        n = r[o >> 0] | 0;
                        t = nf(a[e + 96 >> 2] | 0, r[e + 102 >> 0] | 0, o, t, i, 2) | 0;
                        if ((s[o >> 0] | 0) > (n & 255)) r[e + 8 >> 0] = 1;
                        return t | 0
                    }

                    function Vo(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1687] | 0;
                        if (t | 0) {
                            t = (a[t + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 36 | 0;
                            n[t >> 1] = (o[t >> 1] | 0) + 1
                        }
                        return
                    }

                    function Xo(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        f = Wo() | 0;
                        c = P;
                        d = Fa() | 0;
                        e: do {
                            if (!(rf(0) | 0)) {
                                sE();
                                e = 0
                            } else {
                                h = e + 20 | 0;
                                l = (a[1687] | 0) + 12 | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) >= (d | 0)) {
                                        e = 0;
                                        break
                                    }
                                    t = n[(a[h >> 2] | 0) + (e << 1) >> 1] | 0;
                                    if (((t << 16 >> 16 != -1 ? (i = t & 65535, r = a[l >> 2] | 0, s = n[r + (i * 84 | 0) + 42 >> 1] | 0, s << 16 >> 16) : 0) ? (o = kE(a[r + (i * 84 | 0) + 16 >> 2] | 0) | 0, u = P, !((o | 0) == 0 & (u | 0) == 0)) : 0) ? (m = sM(f | 0, c | 0, o | 0, u | 0) | 0, b = P, t = fM(s & 65535 | 0, 0, 1e3, 0) | 0, _ = P, b >>> 0 < _ >>> 0 | (b | 0) == (_ | 0) & m >>> 0 < t >>> 0) : 0) {
                                        e = 1;
                                        break e
                                    }
                                    e = e + 1 | 0
                                }
                                while (1) {
                                    if ((e | 0) >= (d | 0)) {
                                        e = 0;
                                        break e
                                    }
                                    t = n[(a[h >> 2] | 0) + (e << 1) >> 1] | 0;
                                    if (t << 16 >> 16 != -1 ? (p = t & 65535, v = a[l >> 2] | 0, n[v + (p * 84 | 0) + 42 >> 1] | 0) : 0) RE(f, c, a[v + (p * 84 | 0) + 16 >> 2] | 0);
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return e | 0
                    }

                    function jo(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        ef(e, t, i, r);
                        return
                    }

                    function Go(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        n = s;
                        i = a[1677] | 0;
                        do {
                            if (i) {
                                if (!(a[i + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                r = i + 1768 | 0;
                                i = Zl(r, e) | 0;
                                if (i << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    Jl(r, i, n) | 0;
                                    a[t >> 2] = a[n + 4 >> 2];
                                    break
                                }
                            } else sE()
                        } while (0);
                        p = s;
                        return
                    }

                    function $o(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        i = o + 8 | 0;
                        r = o;
                        s = a[1677] | 0;
                        do {
                            if (s) {
                                if (!(a[s + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                if (!(ql(s + 1832 | 0, e, i) | 0)) {
                                    sE();
                                    break
                                } else {
                                    Jl(s + 1768 | 0, n[i >> 1] | 0, r) | 0;
                                    a[t >> 2] = a[r + 4 >> 2];
                                    break
                                }
                            } else sE()
                        } while (0);
                        p = o;
                        return
                    }

                    function Ho(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 208 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Wo() {
                        var e = 0;
                        e = 6368;
                        P = a[e + 4 >> 2] | 0;
                        return a[e >> 2] | 0
                    }

                    function Yo() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(6808, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = e + 8 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + 1 & 65535;
                            i = e + 36 | 0;
                            a[e + 76 >> 2] = 0;
                            a[e + 80 >> 2] = 0;
                            a[i >> 2] = 0;
                            a[i + 4 >> 2] = 0;
                            a[i + 8 >> 2] = 0;
                            a[i + 12 >> 2] = 0;
                            a[i + 16 >> 2] = 0;
                            a[i + 20 >> 2] = 0;
                            a[i + 24 >> 2] = 0;
                            a[i + 28 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function zo() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(6820, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = e + 8 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + 1 & 65535;
                            r[e + 16 >> 0] = 0;
                            a[e + 20 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function qo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        zl(e + 2584 | 0, t, i);
                        return
                    }

                    function Jo(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        l = f;
                        u = e + 12 | 0;
                        rS(u, l);
                        while (1) {
                            t = a[l >> 2] | 0;
                            if (!t) break;
                            o = a[t >> 2] | 0;
                            switch (a[o >> 2] | 0) {
                                case 2:
                                    {
                                        t = vu(a[o + 12 >> 2] | 0) | 0;
                                        if (t | 0) mu(t, 0, 40);
                                        break
                                    }
                                case 6:
                                    {
                                        i = vu(a[o + 12 >> 2] | 0) | 0;t = o + 20 | 0;
                                        if (i | 0) ml(i, a[t >> 2] | 0, 0);sl(a[t >> 2] | 0);a[t >> 2] = 0;
                                        break
                                    }
                                case 1:
                                    {
                                        i = o + 12 | 0;t = a[i >> 2] | 0;n = vu(t) | 0;
                                        if ((n | 0 ? a[n + 32 >> 2] & 1 | 0 : 0) ? (h = a[n + 60 >> 2] | 0, h | 0) : 0) {
                                            s = Bo(a[h + 208 >> 2] | 0) | 0;
                                            if (s) {
                                                _l(s, t);
                                                r[n + 123 >> 0] = 0;
                                                t = a[i >> 2] | 0
                                            }
                                            zu(t, 2)
                                        }
                                        break
                                    }
                                default:
                                    {}
                            }
                            Pu(o);
                            rS(u, l)
                        }
                        t = e + 24 | 0;
                        rS(t, l);
                        while (1) {
                            i = a[l >> 2] | 0;
                            if (!i) break;
                            bl(a[i >> 2] | 0);
                            rS(t, l)
                        }
                        a[e + 76 >> 2] = 0;
                        l = e + 8 | 0;
                        a[l >> 2] = (a[l >> 2] | 0) + 1 & 65535;
                        tS(6808, e);
                        p = f;
                        return
                    }

                    function Qo(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = t & 65535;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= 8) {
                                n = 9;
                                break
                            }
                            s = e + 212 + (t << 2) | 0;
                            o = a[s >> 2] | 0;
                            if ((o >>> 16 | 0) == (u | 0)) {
                                n = 4;
                                break
                            }
                            t = t + 1 | 0
                        }
                        e: do {
                            if ((n | 0) == 4) {
                                if (i << 16 >> 16 == -1) {
                                    a[s >> 2] = -1;
                                    r[e + 8 >> 0] = 1;
                                    break
                                }
                                t = u << 16 | i & 65535;
                                if ((t | 0) != (o | 0)) {
                                    a[s >> 2] = t;
                                    r[e + 8 >> 0] = 1
                                }
                            } else if ((n | 0) == 9 ? (t | 0) == 8 : 0) {
                                t = 0;
                                while (1) {
                                    if ((t | 0) >= 8) break e;
                                    n = e + 212 + (t << 2) | 0;
                                    if ((a[n >> 2] | 0) == -1) break;
                                    else t = t + 1 | 0
                                }
                                a[n >> 2] = u << 16 | i & 65535;
                                r[e + 8 >> 0] = 1
                            }
                        } while (0);
                        return
                    }

                    function Zo(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Ko(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function eu(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return au(e + (t << 16 >> 16 << 4) | 0, i) | 0
                    }

                    function tu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1687] | 0;
                        if (!i) e = 0;
                        else e = au((a[i + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 68 | 0, t) | 0;
                        return e | 0
                    }

                    function iu(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function ru(e) {
                        e = e | 0;
                        return e & 255 | 0
                    }

                    function nu(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = e + 108 + (t * 12 | 0) | 0;
                        a[i >> 2] = a[t >> 2];
                        a[i + 4 >> 2] = a[t + 4 >> 2];
                        a[i + 8 >> 2] = a[t + 8 >> 2];
                        return
                    }

                    function au(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0.0,
                            b = 0,
                            g = 0,
                            y = 0;
                        y = p;
                        p = p + 16 | 0;
                        g = y + 12 | 0;
                        v = y + 8 | 0;
                        m = y + 4 | 0;
                        d = y;
                        a[g >> 2] = 0;
                        b = e + 4 | 0;
                        i = a[b >> 2] | 0;
                        e: do {
                            if (!i) i = 1;
                            else {
                                rS(i, g);
                                i = a[g >> 2] | 0;
                                if (!i) {
                                    i = a[e + 12 >> 2] | 0;
                                    u = a[a[e >> 2] >> 2] | 0;
                                    ZE(u) | 0;
                                    o = a[u >> 2] | 0;
                                    s = a[o + 8 >> 2] | 0;
                                    h[m >> 2] = 0.0;
                                    h[v >> 2] = 0.0;
                                    if ((i | 0) == 1)
                                        if ((su(t, m) | 0) == 1) {
                                            su(o, v) | 0;
                                            i = 1
                                        } else i = 0;
                                    c = (i | 0) == 1;
                                    f = u;
                                    while (1) {
                                        if (!f) break;
                                        i = a[f >> 2] | 0;
                                        u = i + 8 | 0;
                                        l = a[u >> 2] | 0;
                                        if ((l | 0) < (s | 0))
                                            if (c) {
                                                su(i, v) | 0;
                                                s = l
                                            } else s = l;
                                        else if ((l | 0) == (s | 0)) {
                                            h[d >> 2] = 0.0;
                                            if ((c ? (su(i, d) | 0) == 1 : 0) ? (n = +h[d >> 2], +h[v >> 2] < n) : 0) {
                                                h[v >> 2] = n;
                                                s = a[u >> 2] | 0
                                            } else i = o
                                        } else i = o;
                                        o = i;
                                        f = a[f + 4 >> 2] | 0
                                    }
                                    i = a[o + 8 >> 2] | 0;
                                    s = a[t + 8 >> 2] | 0;
                                    t: do {
                                        if ((i | 0) < (s | 0)) {
                                            ou(o, 47);
                                            rS(a[b >> 2] | 0, g)
                                        } else {
                                            do {
                                                if ((i | 0) == (s | 0)) {
                                                    if (!c) {
                                                        if (r[t + 4 >> 0] | 0) break;
                                                        ou(o, 47);
                                                        rS(a[b >> 2] | 0, g);
                                                        break t
                                                    }
                                                    n = +h[v >> 2];
                                                    if (!(n < 0.0) ? (_ = +h[m >> 2], !(_ == n)) : 0) {
                                                        if (!(_ < n)) break;
                                                        ou(o, 47);
                                                        rS(a[b >> 2] | 0, g);
                                                        break t
                                                    }
                                                    if (!(r[t + 4 >> 0] | 0)) {
                                                        ou(o, 47);
                                                        rS(a[b >> 2] | 0, g);
                                                        break t
                                                    }
                                                }
                                            } while (0);
                                            i = 0;
                                            break e
                                        }
                                    } while (0);
                                    i = a[g >> 2] | 0
                                }
                                a[i >> 2] = t;
                                tS(a[e >> 2] | 0, i);
                                i = 1
                            }
                        } while (0);
                        p = y;
                        return i | 0
                    }

                    function su(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        a[r >> 2] = 0;
                        h[t >> 2] = -1.0;
                        i = a[e + 72 >> 2] | 0;
                        if (i | 0) ul(a[(a[(ol(i, 1) | 0) + 92 >> 2] | 0) + 284 >> 2] | 0, r);
                        e = e + 68 | 0;
                        ul(a[(a[e >> 2] | 0) + 284 >> 2] | 0, r);
                        if ((a[r >> 2] | 0) != 0 ? (n = a[e >> 2] | 0, (hl(n) | 0) == 1) : 0) {
                            r = a[n + 80 >> 2] | 0;
                            i = ll(r) | 0;
                            e = a[n + 84 >> 2] | 0;
                            if (!(fl(e) | 0)) e = cl(i) | 0;
                            h[t >> 2] = +dl(e, r, 1.0);
                            e = 1
                        } else e = 0;
                        p = s;
                        return e | 0
                    }

                    function ou(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = e + 60 | 0;
                        uu(Co(e) | 0, t);
                        r[e >> 0] = 1;
                        s = Fa() | 0;
                        o = e + 20 | 0;
                        u = e + 5 | 0;
                        h = e + 131 | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == (s | 0)) break;
                            l = n[(a[o >> 2] | 0) + (i << 1) >> 1] | 0;
                            if (l << 16 >> 16 != -1) {
                                do {
                                    if ((r[u >> 0] | 0) == 1) {
                                        t = a[(a[f >> 2] | 0) + 280 >> 2] | 0;
                                        if (!(Zo(t) | 0)) {
                                            lu(l, e);
                                            break
                                        }
                                        t = a[t + 32 >> 2] | 0;
                                        if (!(Ko(t) | 0)) {
                                            lu(l, e);
                                            break
                                        } else {
                                            hu(t, l, e);
                                            break
                                        }
                                    }
                                } while (0);
                                if ((r[h >> 0] | 0) == 1) fu(n[(a[o >> 2] | 0) + (i << 1) >> 1] | 0)
                            }
                            i = i + 1 | 0
                        }
                        if ((r[h >> 0] | 0) == 1) r[h >> 0] = 2;
                        if (!((a[e + 12 >> 2] | 0) == 0 ? !(a[e + 16 >> 2] | 0) : 0)) cu(e);
                        return
                    }

                    function uu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        pu(e, t);
                        so();
                        return
                    }

                    function hu(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        du(e + (t << 16 >> 16 << 4) | 0, i);
                        return
                    }

                    function lu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1687] | 0;
                        if (i | 0) du((a[i + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 68 | 0, t);
                        return
                    }

                    function fu(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1687] | 0;
                        if (t | 0 ? (e = (a[t + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 36 | 0, t = (o[e >> 1] | 0) + 65535 & 65535, n[e >> 1] = t, t << 16 >> 16 == -1) : 0) sE();
                        return
                    }

                    function cu(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        o = h;
                        a[o >> 2] = 0;
                        t = e + 12 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0 ? (n = e + 2 | 0, (r[n >> 0] | 0) == 1) : 0) {
                            nS(i, e, o);
                            s = a[o >> 2] | 0;
                            if (s | 0) {
                                a[s >> 2] = 0;
                                tS(i + 12 | 0, s)
                            }
                            a[t >> 2] = 0;
                            r[n >> 0] = 0
                        }
                        i = e + 16 | 0;
                        n = a[i >> 2] | 0;
                        if (n | 0 ? (u = e + 3 | 0, (r[u >> 0] | 0) == 1) : 0) {
                            a[o >> 2] = 0;
                            nS(n, e, o);
                            t = a[o >> 2] | 0;
                            if (t | 0) {
                                a[t >> 2] = 0;
                                tS(n + 12 | 0, t)
                            }
                            a[i >> 2] = 0;
                            r[u >> 0] = 0
                        }
                        p = h;
                        return
                    }

                    function du(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = a[e >> 2] | 0;
                        e: do {
                            if (r | 0) {
                                i = a[r >> 2] | 0;
                                ZE(i) | 0;
                                while (1) {
                                    if (!i) break e;
                                    if ((a[i >> 2] | 0) == (t | 0)) break;
                                    i = a[i + 4 >> 2] | 0
                                }
                                iS(r, i);
                                a[i >> 2] = 0;
                                tS(a[e + 4 >> 2] | 0, i)
                            }
                        } while (0);
                        return
                    }

                    function pu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = vu(e) | 0;
                        if (e | 0) mu(e, 0, t);
                        return
                    }

                    function vu(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if ((e & -2147483647 | 0) == 1 ? (t = e >>> 16, (t | 0) < (a[1633] | 0)) : 0) {
                            i = a[1634] | 0;
                            return ((a[i + (t * 164 | 0) + 32 >> 2] | 0) == (e & 65535 | 0) ? i + (t * 164 | 0) | 0 : 0) | 0
                        }
                        return 0
                    }

                    function mu(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        n = a[e + 140 >> 2] | 0;
                        if ((n | 0 ? _u(r[(a[e + 60 >> 2] | 0) + 176 >> 0] | 0) | 0 : 0) ? (r[e + 127 >> 0] | 0) == 0 : 0) {
                            h = a[e + 144 >> 2] | 0;
                            u = Co(e) | 0;
                            u$[n & 63](h, u)
                        }
                        n = a[e + 116 >> 2] | 0;
                        e: do {
                            if (!n) {
                                n = e + 112 | 0;
                                if ((t | 0) != 0 & (a[n >> 2] | 0) != 0 ? (s = bu() | 0, s | 0) : 0) {
                                    a[s >> 2] = 2;
                                    h = Co(e) | 0;
                                    a[s + 12 >> 2] = h;
                                    a[s + 16 >> 2] = h;
                                    gu(a[n >> 2] | 0, s);
                                    break
                                }
                                yu(e);
                                t: do {
                                    if (!(wu(e, i) | 0)) {
                                        n = a[e + 36 >> 2] | 0;
                                        ZE(n) | 0;
                                        while (1) {
                                            if (!n) break t;
                                            xu(a[n >> 2] | 0, i);
                                            n = a[n + 4 >> 2] | 0
                                        }
                                    }
                                } while (0);
                                n = a[e + 48 >> 2] | 0;
                                ZE(n) | 0;
                                while (1) {
                                    if (!n) {
                                        o = 19;
                                        break e
                                    }
                                    mu(a[n >> 2] | 0, t, i);
                                    n = a[n + 4 >> 2] | 0
                                }
                            } else {
                                ku(n);
                                wu(e, i) | 0;
                                n = a[e + 48 >> 2] | 0;
                                ZE(n) | 0;
                                while (1) {
                                    if (!n) {
                                        o = 19;
                                        break e
                                    }
                                    mu(a[n >> 2] | 0, 0, i);
                                    n = a[n + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        if ((o | 0) == 19) {
                            if (!((a[e + 12 >> 2] | 0) == 0 ? !(a[e + 16 >> 2] | 0) : 0)) cu(e);
                            Tu(e);
                            h = e + 112 | 0;
                            Eu(a[h >> 2] | 0);
                            Su(a[h >> 2] | 0)
                        }
                        return
                    }

                    function _u(e) {
                        e = e | 0;
                        return e << 24 >> 24 | 0
                    }

                    function bu() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(6752, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            a[e >> 2] = 0;
                            a[e + 12 >> 2] = -1;
                            a[e + 16 >> 2] = -1;
                            a[e + 20 >> 2] = 0;
                            a[e + 24 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function gu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        h = f;
                        l = e + 12 | 0;
                        o = KE(a[e + 20 >> 2] | 0) | 0;
                        u = t + 20 | 0;
                        s = 0;
                        while (1) {
                            if ((s | 0) >= (o | 0)) break;
                            rS(l, h);
                            e = a[h >> 2] | 0;
                            if (!e) {
                                i = 5;
                                break
                            }
                            r = a[e >> 2] | 0;
                            e = a[t >> 2] | 0;
                            do {
                                if ((e | 0) == (a[r >> 2] | 0)) {
                                    switch (e | 0) {
                                        case 7:
                                        case 1:
                                            {
                                                e = vu(a[r + 12 >> 2] | 0) | 0;
                                                if (!e) i = 12;
                                                else {
                                                    mu(e, 0, 41);
                                                    i = 12
                                                }
                                                break
                                            }
                                        case 6:
                                            {
                                                e = r + 20 | 0;i = a[e >> 2] | 0;
                                                if ((n[i + 20 >> 1] | 0) == (n[(a[u >> 2] | 0) + 20 >> 1] | 0)) {
                                                    sl(i);
                                                    a[e >> 2] = 0;
                                                    i = 12
                                                } else i = 13;
                                                break
                                            }
                                        default:
                                            i = 13
                                    }
                                    if ((i | 0) == 12) {
                                        i = 0;
                                        Pu(r);
                                        break
                                    } else if ((i | 0) == 13) {
                                        i = 0;
                                        tS(l, r + 4 | 0);
                                        break
                                    }
                                } else tS(l, r + 4 | 0)
                            } while (0);
                            s = s + 1 | 0
                        }
                        if ((i | 0) == 5) sE();
                        tS(l, t + 4 | 0);
                        p = f;
                        return
                    }

                    function yu(e) {
                        e = e | 0;
                        r[e + 121 >> 0] = 1;
                        e = a[e + 48 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            yu(a[e >> 2] | 0);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Au(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function wu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        i = a[e + 72 >> 2] | 0;
                        e: do {
                            if (!i) {
                                s = a[(a[1698] | 0) + 88 >> 2] | 0;
                                ZE(s) | 0;
                                i = 0;
                                while (1) {
                                    if (!s) break e;
                                    n = a[(a[s >> 2] | 0) + 8 >> 2] | 0;
                                    ZE(n) | 0;
                                    while (1) {
                                        if (!n) break;
                                        r = a[n >> 2] | 0;
                                        do {
                                            if ((a[r + 4 >> 2] | 0) == (e | 0))
                                                if (!(a[r >> 2] | 0)) {
                                                    Vh(r, 0, t);
                                                    i = 1;
                                                    break
                                                } else {
                                                    Xh(r, t);
                                                    i = 1;
                                                    break
                                                }
                                        } while (0);
                                        n = a[n + 4 >> 2] | 0
                                    }
                                    s = a[s + 4 >> 2] | 0
                                }
                            } else {
                                i = a[i + 8 >> 2] | 0;
                                ZE(i) | 0;
                                while (1) {
                                    if (!i) {
                                        i = 1;
                                        break e
                                    }
                                    r = a[i >> 2] | 0;
                                    if (!(a[r >> 2] | 0)) Vh(r, 0, t);
                                    else Xh(r, t);
                                    i = a[i + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function xu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Bh(e, t);
                        return
                    }

                    function ku(e) {
                        e = e | 0;
                        Iu(0, e);
                        return
                    }

                    function Tu(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        i = a[(a[e + 60 >> 2] | 0) + 280 >> 2] | 0;
                        t = Zo(i) | 0;
                        if ((r[e >> 0] | 0) != 1 ? (l = e + 5 | 0, (r[l >> 0] | 0) == 1) : 0) {
                            f = Fa() | 0;
                            h = e + 20 | 0;
                            o = (t | 0) == 0;
                            i = i + 32 | 0;
                            t = 0;
                            while (1) {
                                if ((t | 0) == (f | 0)) break;
                                s = n[(a[h >> 2] | 0) + (t << 1) >> 1] | 0;
                                do {
                                    if (s << 16 >> 16 != -1) {
                                        if (!o ? (u = a[i >> 2] | 0, Ko(u) | 0) : 0) {
                                            hu(u, s, e);
                                            break
                                        }
                                        lu(s, e)
                                    }
                                } while (0);
                                t = t + 1 | 0
                            }
                            r[l >> 0] = 0
                        }
                        return
                    }

                    function Eu(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        n = o;
                        e: do {
                            if (e | 0) {
                                s = e + 12 | 0;
                                r = KE(a[e + 20 >> 2] | 0) | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (r | 0)) break e;
                                    rS(s, n);
                                    e = a[n >> 2] | 0;
                                    if (!e) break;
                                    t = a[e >> 2] | 0;
                                    if ((a[t >> 2] | 0) == 7) {
                                        e = vu(a[t + 12 >> 2] | 0) | 0;
                                        if (e | 0) mu(e, 0, 41);
                                        Pu(t)
                                    } else tS(s, t + 4 | 0);
                                    i = i + 1 | 0
                                }
                                sE()
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function Su(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        n = o;
                        e: do {
                            if (e | 0) {
                                s = e + 12 | 0;
                                r = KE(a[e + 20 >> 2] | 0) | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (r | 0)) break e;
                                    rS(s, n);
                                    e = a[n >> 2] | 0;
                                    if (!e) break;
                                    t = a[e >> 2] | 0;
                                    if ((a[t >> 2] | 0) == 1) {
                                        e = vu(a[t + 12 >> 2] | 0) | 0;
                                        if (e | 0) mu(e, 0, 41);
                                        Pu(t)
                                    } else tS(s, t + 4 | 0);
                                    i = i + 1 | 0
                                }
                                sE()
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function Pu(e) {
                        e = e | 0;
                        tS(6752, e + 4 | 0);
                        return
                    }

                    function Iu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0.0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 48 | 0;
                        n = o;
                        s = t + 120 | 0;
                        Mu(a[s >> 2] | 0, 0);
                        if (((Cu(a[s >> 2] | 0) | 0) + -1 & 255) < 2) {
                            Ou(a[s >> 2] | 0);
                            uu(a[t + 132 >> 2] | 0, 53)
                        }
                        e = t + 128 | 0;
                        do {
                            if ((Ru(a[e >> 2] | 0) | 0) != 3) {
                                i = +Du(+h[(a[s >> 2] | 0) + 112 >> 2]);
                                r = a[e >> 2] | 0;
                                if (!(i <= 0.0)) {
                                    a[t + 132 >> 2] = r;
                                    a[e >> 2] = -1;
                                    aE(n, 40);
                                    a[n >> 2] = t;
                                    h[n + 4 >> 2] = i;
                                    a[n + 8 >> 2] = 1;
                                    a[n + 12 >> 2] = 34;
                                    a[n + 16 >> 2] = 40;
                                    a[n + 20 >> 2] = t;
                                    h[n + 24 >> 2] = 1.0;
                                    a[n + 28 >> 2] = 2;
                                    a[n + 32 >> 2] = 41;
                                    a[n + 36 >> 2] = 35;
                                    Xu(a[s >> 2] | 0, n);
                                    ju(a[s >> 2] | 0, 0);
                                    Gu(a[s >> 2] | 0, a[t + 144 >> 2] | 0);
                                    $u(a[s >> 2] | 0, 0);
                                    Hu(a[s >> 2] | 0, a[t + 152 >> 2] | 0);
                                    Wu(a[s >> 2] | 0);
                                    break
                                } else {
                                    uu(r, 53);
                                    break
                                }
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function Mu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else r[e + 66 >> 0] = t;
                        return
                    }

                    function Cu(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 4
                        } else e = r[e + 65 >> 0] | 0;
                        return e | 0
                    }

                    function Ou(e) {
                        e = e | 0;
                        if (!e) sE();
                        else r[e + 65 >> 0] = 0;
                        return
                    }

                    function Ru(e) {
                        e = e | 0;
                        eo();
                        e = Eh(e) | 0;
                        so();
                        return e | 0
                    }

                    function Du(e) {
                        e = +e;
                        return +e
                    }

                    function Fu(e, t) {
                        e = e | 0;
                        t = +t;
                        t = +Ah(a[e + 136 >> 2] | 0, t);
                        wh(a[e + 132 >> 2] | 0, t);
                        return
                    }

                    function Bu(e) {
                        e = e | 0;
                        uu(a[e + 132 >> 2] | 0, 53);
                        return
                    }

                    function Nu(e) {
                        e = e | 0;
                        return (Ru(a[e + 132 >> 2] | 0) | 0) != 2 | 0
                    }

                    function Lu(e, t) {
                        e = e | 0;
                        t = +t;
                        t = +Ah(a[e + 136 >> 2] | 0, t);
                        wh(a[e + 128 >> 2] | 0, t);
                        return
                    }

                    function Uu(e) {
                        e = e | 0;
                        return (Ru(a[e + 128 >> 2] | 0) | 0) != 1 | 0
                    }

                    function Vu(e) {
                        e = e | 0;
                        Yu(a[e + 128 >> 2] | 0);
                        return
                    }

                    function Xu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        if (!e) sE();
                        else {
                            i = e + 24 | 0;
                            if (!t) {
                                aE(i, 40);
                                i = 0
                            } else {
                                n = i + 40 | 0;
                                do {
                                    a[i >> 2] = a[t >> 2];
                                    i = i + 4 | 0;
                                    t = t + 4 | 0
                                } while ((i | 0) < (n | 0));
                                i = 1
                            }
                            r[e + 64 >> 0] = i
                        }
                        return
                    }

                    function ju(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | (t | 0) < 0) sE();
                        else a[e + 80 >> 2] = t;
                        return
                    }

                    function Gu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else a[e + 76 >> 2] = t;
                        return
                    }

                    function $u(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (!e) sE();
                        else {
                            i = (t | 0) > -1;
                            a[e + 68 >> 2] = i ? 0 : 0 - t | 0;
                            a[e + 72 >> 2] = i ? t : 0
                        }
                        return
                    }

                    function Hu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | (t | 0) < 0) sE();
                        else a[e + 84 >> 2] = t;
                        return
                    }

                    function Wu(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if (!(r[e + 64 >> 0] | 0)) {
                                    sE();
                                    r[e + 65 >> 0] = 4;
                                    break
                                } else {
                                    r[e + 67 >> 0] = 0;
                                    h[e + 112 >> 2] = 0.0;
                                    a[e + 116 >> 2] = a[e + 28 >> 2];
                                    a[e + 88 >> 2] = a[e + 68 >> 2];
                                    a[e + 92 >> 2] = a[e + 72 >> 2];
                                    a[e + 96 >> 2] = a[e + 76 >> 2];
                                    a[e + 100 >> 2] = a[e + 80 >> 2];
                                    a[e + 104 >> 2] = a[e + 84 >> 2];
                                    r[e + 65 >> 0] = 1;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Yu(e) {
                        e = e | 0;
                        eo();
                        zu(e, 3);
                        so();
                        return
                    }

                    function zu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = vu(e) | 0;
                        if (e | 0) {
                            switch (t | 0) {
                                case 0:
                                    {
                                        t = 65535;
                                        break
                                    }
                                case 1:
                                    break;
                                case 2:
                                    break;
                                case 3:
                                    {
                                        t = 65536;
                                        break
                                    }
                                default:
                                    t = 0
                            }
                            qu(e, t, 0)
                        }
                        return
                    }

                    function qu(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        n = e + 76 | 0;
                        u = a[n >> 2] | 0;
                        o = (i | 0) == 0 ? u & ~t : u | t;
                        a[n >> 2] = o;
                        n = a[e + 60 >> 2] | 0;
                        s = a[n + 208 >> 2] | 0;
                        if (s | 0 ? (n = vu(a[n + 200 >> 2] | 0) | 0, n = (r[e + 122 >> 0] | 0) == 1 ? e : n, (n | 0) == (e | 0) | (n | 0) == 0) : 0) Ju(a[s + 120 >> 2] | 0, o & 65535);
                        n = a[e + 116 >> 2] | 0;
                        if (n | 0) Ju(a[n + 120 >> 2] | 0, o & 65535);
                        Qu(e, i, u, o);
                        if (o | u | 0 ? !((u | 0) != 0 & (o | 0) != 0) : 0) Zu(e, i);
                        n = a[e + 48 >> 2] | 0;
                        ZE(n) | 0;
                        while (1) {
                            if (!n) break;
                            qu(a[n >> 2] | 0, t, i);
                            n = a[n + 4 >> 2] | 0
                        }
                        return
                    }

                    function Ju(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Mu(e, t);
                        return
                    }

                    function Qu(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        e: do {
                            if ((i | 0) != (s | 0) ? (c = Fa() | 0, (t | 0) == 0) : 0) {
                                do {
                                    if ((i & 2 | 0) != 0 & (s & 2 | 0) == 0) {
                                        u = a[(a[e + 60 >> 2] | 0) + 280 >> 2] | 0;
                                        o = Zo(u) | 0;
                                        t = (s | 0) == 0 & 1;
                                        i = e + 5 | 0;
                                        t: do {
                                            if ((r[i >> 0] | 0) == 2) {
                                                r[i >> 0] = 1;
                                                l = e + 20 | 0;
                                                h = (o | 0) == 0;
                                                u = u + 32 | 0;
                                                s = 0;
                                                i = 0;
                                                while (1) {
                                                    if ((s | 0) == (c | 0)) break t;
                                                    o = n[(a[l >> 2] | 0) + (s << 1) >> 1] | 0;
                                                    do {
                                                        if (o << 16 >> 16 != -1) {
                                                            if (!h ? (f = a[u >> 2] | 0, Ko(f) | 0) : 0) {
                                                                o = (eu(f, o, e) | 0) == 0;
                                                                i = o ? 1 : i;
                                                                break
                                                            }
                                                            o = (tu(o, e) | 0) == 0;
                                                            i = o ? 1 : i
                                                        }
                                                    } while (0);
                                                    s = s + 1 | 0
                                                }
                                            } else i = 0
                                        } while (0);
                                        if ((r[e + 2 >> 0] | 0) != 2 ? (r[e + 3 >> 0] | 0) != 2 : 0) {
                                            o = 1;
                                            break
                                        }
                                        if (!(rh(e) | 0)) {
                                            nh(e, 54);
                                            break e
                                        } else o = 1
                                    } else {
                                        o = 0;
                                        t = (s | 0) == 0 & 1;
                                        i = 0
                                    }
                                } while (0);
                                if (t | o | 0) {
                                    h = e + 20 | 0;
                                    o = (o | 0) == 1;
                                    s = e + 131 | 0;
                                    t = 0;
                                    while (1) {
                                        if ((t | 0) == (c | 0)) break;
                                        u = n[(a[h >> 2] | 0) + (t << 1) >> 1] | 0;
                                        if (o & u << 16 >> 16 != -1) {
                                            if (!(r[s >> 0] | 0)) r[s >> 0] = 1;
                                            Vo(u)
                                        }
                                        t = t + 1 | 0
                                    }
                                    if ((i | 0) == 1) nh(e, 47)
                                }
                            }
                        } while (0);
                        return
                    }

                    function Zu(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 36 >> 2] | 0;
                        ZE(e) | 0;
                        t = (t | 0) != 0 & 1;
                        while (1) {
                            if (!e) break;
                            Ku(a[e >> 2] | 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Ku(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eh(e, t);
                        return
                    }

                    function eh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = th(e) | 0;
                        if (e | 0) ih(e, 1, t);
                        return
                    }

                    function th(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if ((e & -2147483647 | 0) == 1 ? (t = e >>> 16, (t | 0) < (a[1664] | 0)) : 0) {
                            i = a[1665] | 0;
                            return ((a[i + (t * 112 | 0) + 8 >> 2] | 0) == (e & 65535 | 0) ? i + (t * 112 | 0) | 0 : 0) | 0
                        }
                        return 0
                    }

                    function ih(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        n = t << 24 >> 24;
                        t = e + 26 | 0;
                        if (n & 1 | 0) r[t >> 0] = r[t >> 0] & 2 | i & 1;
                        if (n & 2 | 0) r[t >> 0] = r[t >> 0] & 1 | i & 2;
                        return
                    }

                    function rh(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        t = e + 12 | 0;
                        i = a[t >> 2] | 0;
                        do {
                            if ((i | 0) != 0 ? (n = e + 2 | 0, (r[n >> 0] | 0) == 2) : 0) {
                                if (yh(i, i + 12 | 0, e) | 0) {
                                    r[n >> 0] = 1;
                                    t = 1;
                                    break
                                }
                                a[t >> 2] = 0;
                                i = e + 16 | 0;
                                a[i >> 2] = 0;
                                r[n >> 0] = 0;
                                t = e + 3 | 0;
                                if ((r[t >> 0] | 0) == 2) {
                                    a[i >> 2] = 0;
                                    r[t >> 0] = 0;
                                    t = 0
                                } else t = 0
                            } else t = 1
                        } while (0);
                        i = e + 16 | 0;
                        n = a[i >> 2] | 0;
                        do {
                            if ((n | 0) != 0 ? (s = e + 3 | 0, (r[s >> 0] | 0) == 2) : 0)
                                if (!(yh(n, n + 12 | 0, e) | 0)) {
                                    a[i >> 2] = 0;
                                    r[s >> 0] = 0;
                                    t = 0;
                                    break
                                } else {
                                    r[s >> 0] = 1;
                                    break
                                }
                        } while (0);
                        return t | 0
                    }

                    function nh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        n = a[e + 140 >> 2] | 0;
                        i = e + 60 | 0;
                        if ((n | 0 ? _u(r[(a[i >> 2] | 0) + 176 >> 0] | 0) | 0 : 0) ? (r[e + 127 >> 0] | 0) == 0 : 0) {
                            o = a[e + 144 >> 2] | 0;
                            s = Co(e) | 0;
                            u$[n & 63](o, s)
                        }
                        yu(e);
                        n = Au(a[(a[i >> 2] | 0) + 104 >> 2] | 0) | 0;
                        wu(e, t) | 0;
                        i = a[e + 36 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            ah(n, a[i >> 2] | 0);
                            i = a[i + 4 >> 2] | 0
                        }
                        if (!((a[e + 12 >> 2] | 0) == 0 ? !(a[e + 16 >> 2] | 0) : 0)) cu(e);
                        i = a[e + 48 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            nh(a[i >> 2] | 0, t);
                            i = a[i + 4 >> 2] | 0
                        }
                        return
                    }

                    function ah(e, t) {
                        e = e | 0;
                        t = t | 0;
                        sh(e, t);
                        return
                    }

                    function sh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = th(t) | 0;
                        if (t | 0) {
                            iS(e + 24 | 0, t);
                            oh(t)
                        }
                        return
                    }

                    function oh(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        a[e + 60 >> 2] = 0;
                        r = e + 12 | 0;
                        n = KE(a[e + 20 >> 2] | 0) | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (n | 0)) break;
                            rS(r, i);
                            uh(a[a[i >> 2] >> 2] | 0);
                            t = t + 1 | 0
                        }
                        n = e + 8 | 0;
                        a[n >> 2] = (a[n >> 2] | 0) + 1 & 65535;
                        tS(6764, e);
                        p = s;
                        return
                    }

                    function uh(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 12 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            hh(i);
                            a[t >> 2] = 0
                        }
                        tS(6776, e);
                        return
                    }

                    function hh(e) {
                        e = e | 0;
                        lh(e);
                        return
                    }

                    function lh(e) {
                        e = e | 0;
                        var t = 0;
                        fh(e);
                        r[e + 507 >> 0] = 0;
                        a[e >> 2] = -1;
                        a[1675] = (a[1675] | 0) + -1;
                        a[1697] = (e - (a[1673] | 0) | 0) / 588 | 0;
                        t = e + 512 | 0;
                        a[t >> 2] = (a[t >> 2] | 0) + 1 & 65535;
                        r[e + 74 >> 0] = 0;
                        return
                    }

                    function fh(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 4 >> 2] | 0;
                        if (t | 0) ch(t);
                        r[e + 506 >> 0] = 0;
                        r[e + 509 >> 0] = 0;
                        return
                    }

                    function ch(e) {
                        e = e | 0;
                        dh(a[e + 4 >> 2] | 0);
                        ph(e);
                        return
                    }

                    function dh(e) {
                        e = e | 0;
                        mh(a[e + 236 >> 2] | 0, 14, 0);
                        _h(e, 0, 0);
                        bh(e, 0, 0);
                        h[e + 472 >> 2] = 0.0;
                        a[e + 308 >> 2] = 0;
                        n[e + 312 >> 1] = -1;
                        vh(e);
                        return
                    }

                    function ph(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0;
                        if (e | 0) {
                            i = e + 4 | 0;
                            vh(a[i >> 2] | 0);
                            r = e + 12 | 0;
                            s = a[r >> 2] | 0;
                            t = e + 8 | 0;
                            if (s | 0) u$[s & 63](a[t >> 2] | 0, e);
                            a[e + 16 >> 2] = -1;
                            a[e + 20 >> 2] = 0;
                            a[e + 24 >> 2] = 0;
                            a[e + 28 >> 2] = 0;
                            a[r >> 2] = 0;
                            a[t >> 2] = 0;
                            s = (a[e >> 2] | 0) + 14 | 0;
                            n[s >> 1] = (n[s >> 1] | 0) + -1 << 16 >> 16;
                            dh(a[i >> 2] | 0)
                        }
                        return
                    }

                    function vh(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 416 | 0;
                        switch (((a[t >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                            case 1:
                            case 2:
                            case 4:
                                {
                                    r[e + 421 >> 0] = 1;
                                    break
                                }
                            default:
                                {
                                    a[t >> 2] = 0;nr(e, 0) | 0
                                }
                        }
                        return
                    }

                    function mh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gh(e, t, i);
                        return
                    }

                    function _h(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 484 >> 2] = t;
                        a[e + 488 >> 2] = i;
                        return
                    }

                    function bh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 508 >> 2] = t;
                        a[e + 512 >> 2] = i;
                        return
                    }

                    function gh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Kr();
                        e = a[e >> 2] | 0;
                        l$[a[(a[e >> 2] | 0) + 88 >> 2] & 7](a[e + 4 >> 2] | 0, t, i);
                        en();
                        return
                    }

                    function yh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        s = u;
                        a[s >> 2] = 0;
                        rS(t, s);
                        n = a[s >> 2] | 0;
                        if (!n)
                            if ((r[i + 1 >> 0] | 0) != 1) {
                                n = a[e >> 2] | 0;
                                ZE(n) | 0;
                                ou(a[n >> 2] | 0, 54);
                                rS(t, s);
                                n = a[s >> 2] | 0;
                                if (!n) n = 1;
                                else o = 4
                            } else n = 0;
                        else o = 4;
                        if ((o | 0) == 4) {
                            a[n >> 2] = i;
                            tS(e, n);
                            n = 1
                        }
                        p = u;
                        return n | 0
                    }

                    function Ah(e, t) {
                        e = e | 0;
                        t = +t;
                        return + +RS(Th(e) | 0, t)
                    }

                    function wh(e, t) {
                        e = e | 0;
                        t = +t;
                        e = vu(e) | 0;
                        do {
                            if (e | 0)
                                if (!(r[e + 122 >> 0] | 0)) {
                                    kh(a[e + 68 >> 2] | 0, t);
                                    break
                                } else {
                                    xh(a[e + 72 >> 2] | 0, t);
                                    break
                                }
                        } while (0);
                        return
                    }

                    function xh(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0;
                        e: do {
                            if (e | 0) {
                                e = a[e + 8 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) break e;
                                    i = a[e >> 2] | 0;
                                    if (!(a[i >> 2] | 0)) go(a[i + 92 >> 2] | 0, 146, t);
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function kh(e, t) {
                        e = e | 0;
                        t = +t;
                        go(e, 146, t);
                        return
                    }

                    function Th(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Eh(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = vu(e) | 0;
                        e: do {
                            if (!e) e = 3;
                            else {
                                t = Sh(e, i) | 0;
                                if ((t | 0) > -1 ? (Ph(e) | 0) == 1 : 0) {
                                    e = 1;
                                    break
                                }
                                t: do {
                                    switch (Ih(e) | 0) {
                                        case 2:
                                            {
                                                e = 2;
                                                break e
                                            }
                                        case 1:
                                            {
                                                if (!t) {
                                                    e = 1;
                                                    break e
                                                }
                                                if ((t | 0) < 0 ? 1 : (t | 0) == (a[e + 132 >> 2] | 0)) {
                                                    e = 1;
                                                    break e
                                                }
                                                break
                                            }
                                        default:
                                            if (KE(a[e + 56 >> 2] | 0) | 0) {
                                                e = a[e + 48 >> 2] | 0;
                                                ZE(e) | 0;
                                                while (1) {
                                                    if (!e) break t;
                                                    if ((Eh(Co(a[e >> 2] | 0) | 0) | 0) != 3) break t;
                                                    e = a[e + 4 >> 2] | 0
                                                }
                                            }
                                    }
                                } while (0);
                                e = 2
                            }
                        } while (0);
                        p = i;
                        return e | 0
                    }

                    function Sh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0.0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            f = 0.0;
                        f = +l[(a[1698] | 0) + 160 >> 3] * (+h[94] + -1.0);
                        i = a[e + 72 >> 2] | 0;
                        e: do {
                            if (!i) i = -1;
                            else {
                                o = a[i + 8 >> 2] | 0;
                                ZE(o) | 0;
                                u = i + 24 | 0;
                                i = -1;
                                while (1) {
                                    if (!o) break e;
                                    n = a[o >> 2] | 0;
                                    if (!(a[n >> 2] | 0)) {
                                        if (Dh(n, e, t) | 0) {
                                            if ((a[n + 4 >> 2] | 0) != (e | 0)) {
                                                i = 0;
                                                break e
                                            }
                                            s = u;
                                            r = +((a[s >> 2] | 0) >>> 0) + 4294967296.0 * +((a[s + 4 >> 2] | 0) >>> 0);
                                            if (f < r) s = 11;
                                            else {
                                                i = 0;
                                                break e
                                            }
                                        }
                                    } else if (Fh(a[n + 36 >> 2] | 0, e, t) | 0) {
                                        if ((a[n + 12 >> 2] | 0) != (e | 0)) {
                                            i = 0;
                                            break e
                                        }
                                        s = u;
                                        r = +((a[s >> 2] | 0) >>> 0) + 4294967296.0 * +((a[s + 4 >> 2] | 0) >>> 0);
                                        if (f < r) s = 11;
                                        else {
                                            i = 0;
                                            break e
                                        }
                                    }
                                    if ((s | 0) == 11) {
                                        s = 0;
                                        i = ~~((r - f) / 1.0e3);
                                        if ((i | 0) >= 0) break e
                                    }
                                    o = a[o + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function Ph(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        a[s >> 2] = 0;
                        t = a[e + 72 >> 2] | 0;
                        e: do {
                            if (t) {
                                r = a[t + 8 >> 2] | 0;
                                ZE(r) | 0;
                                n = 0;
                                while (1) {
                                    if (!r) break;
                                    t = a[r >> 2] | 0;
                                    if (!(a[t >> 2] | 0)) i = Oh(t, e, s) | 0;
                                    else i = Rh(t, e, s) | 0;
                                    t = a[s >> 2] | 0;
                                    if (t | 0) break e;
                                    r = a[r + 4 >> 2] | 0;
                                    n = i + n | 0
                                }
                                if (!n) {
                                    a[s >> 2] = 0;
                                    t = 0;
                                    break
                                } else {
                                    a[s >> 2] = 2;
                                    t = 2;
                                    break
                                }
                            } else t = 0
                        } while (0);
                        p = o;
                        return t | 0
                    }

                    function Ih(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        t = a[e + 36 >> 2] | 0;
                        if (!(ZE(t) | 0)) {
                            t = a[e + 48 >> 2] | 0;
                            if ((ZE(t) | 0) != 0 ? (i = a[(a[t >> 2] | 0) + 36 >> 2] | 0, (ZE(i) | 0) != 0) : 0) {
                                t = i;
                                r = 4
                            } else t = 0
                        } else r = 4;
                        if ((r | 0) == 4) {
                            t = a[t >> 2] | 0;
                            t = Mh(Au(a[(a[e + 60 >> 2] | 0) + 104 >> 2] | 0) | 0, t) | 0
                        }
                        return t | 0
                    }

                    function Mh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return Ch(e, t) | 0
                    }

                    function Ch(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = th(t) | 0;
                        e: do {
                            if (!t) t = (r[e + 56 >> 0] | 0) == 0 ? 0 : 3;
                            else switch (r[t + 24 >> 0] | 0) {
                                case 0:
                                    {
                                        t = 0;
                                        break e
                                    }
                                case 3:
                                case 2:
                                case 1:
                                    {
                                        t = 1;
                                        break e
                                    }
                                case 4:
                                    {
                                        t = 2;
                                        break e
                                    }
                                case 5:
                                    {
                                        t = 3;
                                        break e
                                    }
                                default:
                                    {
                                        t = 4;
                                        break e
                                    }
                            }
                        } while (0);
                        return t | 0
                    }

                    function Oh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        n = s;
                        a[n >> 2] = 0;
                        if ((a[e + 4 >> 2] | 0) == (t | 0)) {
                            if ((a[e + 56 >> 2] | 0) == -1) a[i >> 2] = 1;
                            if (!(a[e + 52 >> 2] | 0)) i = 1;
                            else {
                                a[i >> 2] = 1;
                                i = 1
                            }
                        } else i = 0;
                        r = a[e + 8 >> 2] | 0;
                        ZE(r) | 0;
                        while (1) {
                            if (!r) break;
                            e = a[r >> 2] | 0;
                            if (!(a[e >> 2] | 0)) e = Oh(e, t, n) | 0;
                            else e = Rh(e, t, n) | 0;
                            r = a[r + 4 >> 2] | 0;
                            i = e + i | 0
                        }
                        p = s;
                        return i | 0
                    }

                    function Rh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[e + 20 >> 2] | 0;
                        ZE(r) | 0;
                        e = 0;
                        while (1) {
                            if (!r) break;
                            e = (Oh(a[r >> 2] | 0, t, i) | 0) + e | 0;
                            if (a[i >> 2] | 0) break;
                            r = a[r + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function Dh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        e: do {
                            if ((a[e + 4 >> 2] | 0) == (t | 0)) {
                                t = e + 160 | 0;
                                e = aM(a[t >> 2] | 0, a[t + 4 >> 2] | 0, a[e + 56 >> 2] | 0, 0) | 0;
                                a[i >> 2] = (e | 0) / 1e3 | 0;
                                e = 1
                            } else {
                                e = a[e + 8 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) {
                                        e = 0;
                                        break e
                                    }
                                    r = a[e >> 2] | 0;
                                    if (!(a[r >> 2] | 0)) {
                                        if (Dh(r, t, i) | 0) {
                                            e = 1;
                                            break e
                                        }
                                    } else if (Fh(a[r + 36 >> 2] | 0, t, i) | 0) {
                                        e = 1;
                                        break e
                                    }
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return e | 0
                    }

                    function Fh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!e) e = 0;
                        else e = Dh(e, t, i) | 0;
                        return e | 0
                    }

                    function Bh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = th(e) | 0;
                        if (e | 0) Nh(e, t);
                        return
                    }

                    function Nh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 12 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            Lh(a[e >> 2] | 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Lh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 24 >> 2] = t;
                        r[e + 8 >> 0] = 1;
                        Uh(a[(a[e + 12 >> 2] | 0) + 4 >> 2] | 0);
                        return
                    }

                    function Uh(e) {
                        e = e | 0;
                        if (e | 0) a[e + 24 >> 2] = -32768;
                        return
                    }

                    function Vh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0;
                        n = a[e + 116 >> 2] | 0;
                        ZE(n) | 0;
                        while (1) {
                            if (!n) break;
                            jh(a[n >> 2] | 0, t, i);
                            n = a[n + 4 >> 2] | 0
                        }
                        n = a[e + 8 >> 2] | 0;
                        ZE(n) | 0;
                        while (1) {
                            if (!n) break;
                            s = a[n >> 2] | 0;
                            if (!(a[s >> 2] | 0)) Vh(s, t, i);
                            else Xh(s, i);
                            n = a[n + 4 >> 2] | 0
                        }
                        if (t >>> 0 < 2) r[e + 68 >> 0] = 1;
                        if ((t + -1 | 0) >>> 0 < 2) r[e + 187 >> 0] = 1;
                        return
                    }

                    function Xh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            Vh(a[e >> 2] | 0, 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function jh(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0;
                        a[e + 68 >> 2] = 0;
                        n[e + 100 >> 1] = -1;
                        switch (t | 0) {
                            case 1:
                                {
                                    if (!((i + -71 | 0) >>> 0 < 2 | (r[e + 112 >> 0] | 0) == 1)) s = 4;
                                    break
                                }
                            case 2:
                                break;
                            default:
                                if ((i + -71 | 0) >>> 0 >= 2) s = 4
                        }
                        e: do {
                            if ((s | 0) == 4) {
                                e = a[e + 48 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) break e;
                                    s = a[e + 4 >> 2] | 0;
                                    Gh(a[e >> 2] | 0, i);
                                    e = s
                                }
                            }
                        } while (0);
                        return
                    }

                    function Gh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        e: do {
                            switch (a[e + 8 >> 2] | 0) {
                                case 10:
                                case 8:
                                case 1:
                                    {
                                        n = a[e + 20 >> 2] | 0;i = a[e + 16 >> 2] | 0;
                                        if (!(r[e + 40 >> 0] | 0)) {
                                            $h(n, i, t);
                                            break e
                                        } else {
                                            Hh(n, i);
                                            break e
                                        }
                                    }
                                case 7:
                                    {
                                        $h(a[e + 20 >> 2] | 0, a[e + 16 >> 2] | 0, t);
                                        break
                                    }
                                case 2:
                                    {
                                        if ((t | 0) != 52) {
                                            iS((a[e + 56 >> 2] | 0) + 48 | 0, e);
                                            Wh(e)
                                        }
                                        break
                                    }
                                case 3:
                                    {
                                        Yh(a[e + 16 >> 2] | 0, t);
                                        break
                                    }
                                case 4:
                                    {
                                        zh(a[e + 16 >> 2] | 0, t);
                                        break
                                    }
                                case 6:
                                case 5:
                                    {
                                        if ((t | 0) != 52) {
                                            iS((a[e + 56 >> 2] | 0) + 48 | 0, e);
                                            Wh(e)
                                        }
                                        break
                                    }
                                default:
                                    {}
                            }
                        } while (0);
                        return
                    }

                    function $h(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        nl(e, t, i);
                        return
                    }

                    function Hh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Zh(e, t);
                        return
                    }

                    function Wh(e) {
                        e = e | 0;
                        Qh(e);
                        tS((a[1698] | 0) + 100 | 0, e);
                        return
                    }

                    function Yh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = Jh(e) | 0;
                        if (e | 0) Vh(e, 0, t);
                        return
                    }

                    function zh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = qh(e) | 0;
                        if (e | 0) Xh(e, t);
                        return
                    }

                    function qh(e) {
                        e = e | 0;
                        var t = 0;
                        if (!(e & 65536)) return 0;
                        else {
                            t = a[(a[1698] | 0) + 32 >> 2] | 0;
                            e = e & 65535;
                            return ((a[t + (e * 56 | 0) + 44 >> 2] & 65536 | 0) == 0 ? 0 : t + (e * 56 | 0) | 0) | 0
                        }
                        return 0
                    }

                    function Jh(e) {
                        e = e | 0;
                        var t = 0;
                        if (!(e & 65536)) return 0;
                        else {
                            t = a[(a[1698] | 0) + 48 >> 2] | 0;
                            e = e & 65535;
                            return ((a[t + (e * 200 | 0) + 60 >> 2] & 65536 | 0) == 0 ? 0 : t + (e * 200 | 0) | 0) | 0
                        }
                        return 0
                    }

                    function Qh(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 8 | 0;
                        a[t >> 2] = 0;
                        a[t + 4 >> 2] = 0;
                        a[t + 8 >> 2] = 0;
                        a[t + 12 >> 2] = 0;
                        a[e + 24 >> 2] = -1;
                        t = e + 28 | 0;
                        a[e + 56 >> 2] = 0;
                        e = e + 60 | 0;
                        a[t >> 2] = 0;
                        a[t + 4 >> 2] = 0;
                        a[t + 8 >> 2] = 0;
                        n[t + 12 >> 1] = 0;
                        t = a[e >> 2] | 0;
                        if (t | 0) {
                            ao(t);
                            a[e >> 2] = 0
                        }
                        return
                    }

                    function Zh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = th(e) | 0;
                        if (e | 0) Kh(e, t);
                        return
                    }

                    function Kh(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = el(e, t) | 0;
                        if (e | 0) tl(a[(a[e + 12 >> 2] | 0) + 4 >> 2] | 0);
                        return
                    }

                    function el(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 12 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) {
                                e = 0;
                                break
                            }
                            e = a[i >> 2] | 0;
                            if ((n[e + 10 >> 1] | 0) == (t | 0)) break;
                            i = a[i + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function tl(e) {
                        e = e | 0;
                        il(e);
                        return
                    }

                    function il(e) {
                        e = e | 0;
                        if (e | 0) rl(a[e + 4 >> 2] | 0);
                        return
                    }

                    function rl(e) {
                        e = e | 0;
                        if (!e) sE();
                        else a[e + 460 >> 2] = 1;
                        return
                    }

                    function nl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = th(e) | 0;
                        if (e | 0) al(e, t, i);
                        return
                    }

                    function al(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = el(e, t) | 0;
                        if (e | 0) Lh(e, i);
                        return
                    }

                    function sl(e) {
                        e = e | 0;
                        tS((a[1698] | 0) + 112 | 0, e);
                        return
                    }

                    function ol(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        e = a[e + 8 >> 2] | 0;
                        ZE(e) | 0;
                        t = (t | 0) == 1;
                        while (1) {
                            if (!e) {
                                i = 0;
                                break
                            }
                            r = a[e >> 2] | 0;
                            if (a[r >> 2] | 0) {
                                if (t) {
                                    i = a[r + 36 >> 2] | 0;
                                    n = 7
                                }
                            } else {
                                i = r;
                                n = 7
                            }
                            if ((n | 0) == 7 ? (n = 0, i | 0) : 0) break;
                            e = a[e + 4 >> 2] | 0
                        }
                        return i | 0
                    }

                    function ul(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (e | 0 ? (i = a[e + 24 >> 2] | 0, (i | 0) != 2147483647) : 0) a[t >> 2] = i;
                        return
                    }

                    function hl(e) {
                        e = e | 0;
                        do {
                            if (!(a[e + 80 >> 2] | 0)) e = 0;
                            else {
                                if ((a[e + 84 >> 2] | 0) == 0 ? (vl() | 0) == 0 : 0) {
                                    e = 0;
                                    break
                                }
                                e = 1
                            }
                        } while (0);
                        return e | 0
                    }

                    function ll(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function fl(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function cl(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0.0,
                            n = 0,
                            s = 0.0,
                            o = 0;
                        i = a[1699] | 0;
                        e: do {
                            if (!(ZE(i) | 0)) t = 0;
                            else {
                                n = a[i >> 2] | 0;
                                t = n;
                                r = +dl(n, e, 1.0);
                                while (1) {
                                    i = a[i + 4 >> 2] | 0;
                                    if (!i) break e;
                                    o = a[i >> 2] | 0;
                                    s = +dl(o, e, 1.0);
                                    n = !(s <= r);
                                    t = n ? t : o;
                                    r = n ? r : s
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function dl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0,
                            n = 0,
                            a = 0.0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        u = +h[e >> 2];
                        o = +h[e + 4 >> 2];
                        s = +h[e + 8 >> 2];
                        a = +h[e + 64 >> 2];
                        pl(u + (+h[e + 52 >> 2] - u) * a, o + (+h[e + 56 >> 2] - o) * a, s + (+h[e + 60 >> 2] - s) * a, +h[t >> 2], +h[t + 4 >> 2], +h[t + 8 >> 2], r);
                        p = n;
                        return +(+h[r >> 2] * i)
                    }

                    function pl(e, t, i, r, n, a, s) {
                        e = +e;
                        t = +t;
                        i = +i;
                        r = +r;
                        n = +n;
                        a = +a;
                        s = s | 0;
                        r = r - e;
                        n = n - t;
                        a = a - i;
                        h[s >> 2] = +C(+(r * r + n * n + a * a));
                        return
                    }

                    function vl() {
                        return (KE(a[1701] | 0) | 0) != 0 | 0
                    }

                    function ml(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        u = h;
                        r = e + 112 | 0;
                        if ((i | 0) != 0 & (a[r >> 2] | 0) != 0 ? (n = bu() | 0, (n | 0) != 0) : 0) {
                            a[n >> 2] = 6;
                            u = Co(e) | 0;
                            a[n + 12 >> 2] = u;
                            a[n + 16 >> 2] = u;
                            a[n + 20 >> 2] = t;
                            gu(a[r >> 2] | 0, n)
                        } else s = 4;
                        e: do {
                            if ((s | 0) == 4) {
                                Al(e, t);
                                o = e + 48 | 0;
                                n = KE(a[e + 56 >> 2] | 0) | 0;
                                r = 0;
                                while (1) {
                                    if ((r | 0) >= (n | 0)) break e;
                                    rS(o, u);
                                    s = a[u >> 2] | 0;
                                    if (!s) break;
                                    e = a[s >> 2] | 0;
                                    Al(e, t);
                                    ml(e, t, i);
                                    tS(o, s);
                                    r = r + 1 | 0
                                }
                                sE()
                            }
                        } while (0);
                        p = h;
                        return
                    }

                    function _l(e, t) {
                        e = e | 0;
                        t = t | 0;
                        gl(0, e, t);
                        return
                    }

                    function bl(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 8 | 0;
                        a[t >> 2] = (a[t >> 2] | 0) + 1 & 65535;
                        tS(6820, e);
                        return
                    }

                    function gl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0.0,
                            u = 0;
                        s = p;
                        p = p + 48 | 0;
                        r = s;
                        n = t + 120 | 0;
                        if (((Cu(a[n >> 2] | 0) | 0) + -1 & 255) < 2) {
                            Ou(a[n >> 2] | 0);
                            e = t + 132 | 0;
                            uu(a[e >> 2] | 0, 53)
                        } else e = t + 132 | 0;
                        o = +Du(+h[(a[n >> 2] | 0) + 112 >> 2]);
                        u = t + 128 | 0;
                        a[e >> 2] = a[u >> 2];
                        a[u >> 2] = i;
                        aE(r, 40);
                        a[r >> 2] = t;
                        h[r + 4 >> 2] = o;
                        a[r + 8 >> 2] = 1;
                        a[r + 12 >> 2] = 34;
                        a[r + 16 >> 2] = 40;
                        a[r + 20 >> 2] = t;
                        h[r + 24 >> 2] = 1.0;
                        a[r + 28 >> 2] = 2;
                        a[r + 32 >> 2] = 41;
                        a[r + 36 >> 2] = 35;
                        Xu(a[n >> 2] | 0, r);
                        r = t + 148 | 0;
                        ju(a[n >> 2] | 0, a[r >> 2] | 0);
                        Gu(a[n >> 2] | 0, a[t + 144 >> 2] | 0);
                        $u(a[n >> 2] | 0, a[t + 140 >> 2] | 0);
                        Hu(a[n >> 2] | 0, a[t + 152 >> 2] | 0);
                        u = a[u >> 2] | 0;
                        i = t + 136 | 0;
                        wh(u, +Ah(a[i >> 2] | 0, (a[r >> 2] | 0) > 0 ? 0.0 : 1.0));
                        t = a[e >> 2] | 0;
                        wh(t, +Ah(a[i >> 2] | 0, o));
                        Wu(a[n >> 2] | 0);
                        yl(a[e >> 2] | 0);
                        p = s;
                        return
                    }

                    function yl(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (e | 0) r[e + 130 >> 0] = 1;
                        return
                    }

                    function Al(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = a[e + 72 >> 2] | 0;
                        e: do {
                            if (!i) {
                                i = a[(a[1698] | 0) + 88 >> 2] | 0;
                                ZE(i) | 0;
                                while (1) {
                                    if (!i) break e;
                                    r = a[(a[i >> 2] | 0) + 8 >> 2] | 0;
                                    ZE(r) | 0;
                                    while (1) {
                                        if (!r) break;
                                        n = a[r >> 2] | 0;
                                        do {
                                            if ((a[n + 4 >> 2] | 0) == (e | 0))
                                                if (!(a[n >> 2] | 0)) {
                                                    wl(n, t);
                                                    break
                                                } else {
                                                    xl(n, t);
                                                    break
                                                }
                                        } while (0);
                                        r = a[r + 4 >> 2] | 0
                                    }
                                    i = a[i + 4 >> 2] | 0
                                }
                            } else {
                                i = a[i + 8 >> 2] | 0;
                                ZE(i) | 0;
                                while (1) {
                                    if (!i) break e;
                                    r = a[i >> 2] | 0;
                                    if (!(a[r >> 2] | 0)) wl(r, t);
                                    else xl(r, t);
                                    i = a[i + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function wl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 116 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            kl(a[i >> 2] | 0, t);
                            i = a[i + 4 >> 2] | 0
                        }
                        i = a[e + 8 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            e = a[i >> 2] | 0;
                            if (!(a[e >> 2] | 0)) wl(e, t);
                            else xl(e, t);
                            i = a[i + 4 >> 2] | 0
                        }
                        return
                    }

                    function xl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            wl(a[e >> 2] | 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function kl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        i = h;
                        u = t + 12 | 0;
                        if ((n[t + 20 >> 1] | 0) == (n[e + 94 >> 1] | 0)) {
                            s = e + 8 | 0;
                            if (!(Tl(a[(a[s >> 2] | 0) + 288 >> 2] | 0, i, 1) | 0)) {
                                a[i >> 2] = 0;
                                i = 0
                            } else i = a[i >> 2] | 0;
                            e = a[u >> 2] | 0;
                            e = (r[t + 16 >> 0] | 0) == 0 ? i & ~e : e | i;
                            if ((i | 0) != (e | 0)) {
                                Io(a[s >> 2] | 0, 177, e);
                                El(a[s >> 2] | 0, 178, e | 0 ? 0.0 : 1.0, o[u + 10 >> 1] | 0, 0, 1.0)
                            }
                        }
                        p = h;
                        return
                    }

                    function Tl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (r = a[e + 16 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 40 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function El(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = r | 0;
                        n = n | 0;
                        a = +a;
                        var s = 0,
                            o = 0,
                            u = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        if (Sl(e, t & 65535, s) | 0) {
                            u = Wo() | 0;
                            u = dM(u | 0, P | 0, 1e3, 0) | 0;
                            Pl(e, e + 204 | 0, t, u, +h[s >> 2], i, r, n, a, 0)
                        }
                        p = o;
                        return
                    }

                    function Sl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 32 | 0;
                        d = m + 28 | 0;
                        v = m + 16 | 0;
                        o = m + 12 | 0;
                        u = m + 4 | 0;
                        l = m + 8 | 0;
                        f = m;
                        do {
                            if (!(Fl(t) | 0)) {
                                if (!(Nl(t) | 0)) {
                                    if (!(Ul(e, t, v, l) | 0)) n = 0;
                                    else {
                                        s = a[v >> 2] | 0;
                                        n = a[s >> 2] | 0;
                                        if ((n | 0) == 2147483647) {
                                            Wl(f, t & 65535);
                                            a[s >> 2] = a[f >> 2];
                                            r[a[l >> 2] >> 0] = 1;
                                            r[e + 8 >> 0] = 1;
                                            n = a[a[v >> 2] >> 2] | 0
                                        }
                                        a[i >> 2] = n;
                                        n = 1
                                    }
                                    break
                                }
                                if (t >>> 0 < 112) {
                                    s = ls(t) | 0;
                                    n = Yl(e, s, v) | 0;
                                    if (!n) {
                                        Wl(o, t & 65535);
                                        n = a[o >> 2] | 0;
                                        a[i >> 2] = n;
                                        n = Oo(e, s, (a[c >> 2] = n, +h[c >> 2])) | 0
                                    } else a[i >> 2] = a[v + 4 >> 2];
                                    break
                                } else {
                                    s = ls(t + -8 | 0) | 0;
                                    n = Yl(e, s, v) | 0;
                                    if (!n) {
                                        Wl(u, t & 65535);
                                        n = a[u >> 2] | 0;
                                        a[i >> 2] = n;
                                        n = Ll(e, s, (a[c >> 2] = n, +h[c >> 2])) | 0
                                    } else a[i >> 2] = a[v + 4 >> 2];
                                    break
                                }
                            } else {
                                s = Bl(e, t, 0.0, 0) | 0;
                                if ((s | 0) == -1) n = 0;
                                else {
                                    o = e + 20 | 0;
                                    u = (a[o >> 2] | 0) + (s << 2) | 0;
                                    n = a[u >> 2] | 0;
                                    if ((n | 0) == 2147483647) {
                                        Wl(d, t & 65535);
                                        a[u >> 2] = a[d >> 2];
                                        r[(a[e + 24 >> 2] | 0) + s >> 0] = 1;
                                        r[e + 8 >> 0] = 1;
                                        n = a[(a[o >> 2] | 0) + (s << 2) >> 2] | 0
                                    }
                                    a[i >> 2] = n;
                                    n = 1
                                }
                            }
                        } while (0);
                        p = m;
                        return n | 0
                    }

                    function Pl(e, t, i, r, n, a, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = +n;
                        a = +a;
                        s = s | 0;
                        o = o | 0;
                        u = +u;
                        h = h | 0;
                        Il(e, t, i, r, n, a - n, s, o, u, h);
                        return
                    }

                    function Il(e, t, i, s, o, u, l, f, d, p) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = +o;
                        u = +u;
                        l = l | 0;
                        f = f | 0;
                        d = +d;
                        p = p | 0;
                        var v = 0,
                            m = 0,
                            _ = 0;
                        _ = 0;
                        v = t;
                        while (1) {
                            v = a[v >> 2] | 0;
                            if (!v) {
                                v = 0;
                                m = 0;
                                break
                            }
                            if ((n[v + 28 >> 1] | 0) == i << 16 >> 16) {
                                m = 1;
                                break
                            }
                            _ = v
                        }
                        do {
                            if (!l) {
                                d = +Ml(o, u, 1.0);
                                Cl(e, i, (h[c >> 2] = d, a[c >> 2] | 0));
                                if (m) {
                                    a[(_ | 0 ? _ : t) >> 2] = a[v >> 2];
                                    vo(v)
                                }
                            } else {
                                if (!v) {
                                    Cl(e, i, (h[c >> 2] = o, a[c >> 2] | 0));
                                    v = Ol() | 0;
                                    if (!v) break;
                                    Rl(v, t)
                                }
                                h[v + 4 >> 2] = u;
                                h[v + 8 >> 2] = o;
                                a[v + 12 >> 2] = f;
                                h[v + 16 >> 2] = d;
                                a[v + 20 >> 2] = s;
                                a[v + 24 >> 2] = l;
                                n[v + 28 >> 1] = i;
                                r[v + 30 >> 0] = p;
                                r[v + 31 >> 0] = 0
                            }
                        } while (0);
                        return
                    }

                    function Ml(e, t, i) {
                        e = +e;
                        t = +t;
                        i = +i;
                        return +(t * i + e)
                    }

                    function Cl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        s = l + 4 | 0;
                        o = l;
                        u = t & 65535;
                        do {
                            if (!(Fl(u) | 0)) {
                                if (Nl(u) | 0)
                                    if ((t & 65535) < 112) {
                                        u = ls(u) | 0;
                                        Oo(e, u, (a[c >> 2] = i, +h[c >> 2])) | 0;
                                        break
                                    } else {
                                        u = ls(u + -8 | 0) | 0;
                                        Ll(e, u, (a[c >> 2] = i, +h[c >> 2])) | 0;
                                        break
                                    }
                                if (Ul(e, u, s, o) | 0 ? (n = a[s >> 2] | 0, (a[n >> 2] | 0) != (i | 0)) : 0) {
                                    a[n >> 2] = i;
                                    r[a[o >> 2] >> 0] = 1;
                                    r[e + 8 >> 0] = 1
                                }
                            } else Bl(e, u, (a[c >> 2] = i, +h[c >> 2]), 1) | 0
                        } while (0);
                        p = l;
                        return
                    }

                    function Ol() {
                        a[1685] = (a[1685] | 0) + 1;
                        return Dl() | 0
                    }

                    function Rl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e >> 2] = a[t >> 2];
                        a[t >> 2] = e;
                        return
                    }

                    function Dl() {
                        var e = 0;
                        e = a[1683] | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else {
                            a[1683] = a[e >> 2];
                            gS(e, 0, 64) | 0;
                            a[1684] = (a[1684] | 0) + 1;
                            e = e + 4 | 0
                        }
                        return e | 0
                    }

                    function Fl(e) {
                        e = e | 0;
                        return e >>> 0 > 999 & (e | 0) != 65535 & 1 | 0
                    }

                    function Bl(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        s = s | 0;
                        var o = 0,
                            u = 0;
                        o = Hl(e, t) | 0;
                        do {
                            if ((o | 0) == -1) {
                                s = e + 29 | 0;
                                u = r[s >> 0] | 0;
                                o = u & 255;
                                if (u << 24 >> 24 == (r[e + 28 >> 0] | 0)) {
                                    sE();
                                    o = -1;
                                    break
                                } else {
                                    h[(a[e + 20 >> 2] | 0) + (o << 2) >> 2] = i;
                                    n[(a[e + 16 >> 2] | 0) + (o << 1) >> 1] = t;
                                    r[(a[e + 24 >> 2] | 0) + o >> 0] = 1;
                                    r[s >> 0] = (r[s >> 0] | 0) + 1 << 24 >> 24;
                                    r[e + 8 >> 0] = 1;
                                    break
                                }
                            } else if ((s | 0) != 0 ? (u = (a[e + 20 >> 2] | 0) + (o << 2) | 0, +h[u >> 2] != i) : 0) {
                                h[u >> 2] = i;
                                r[(a[e + 24 >> 2] | 0) + o >> 0] = 1;
                                r[e + 8 >> 0] = 1
                            }
                        } while (0);
                        return o | 0
                    }

                    function Nl(e) {
                        e = e | 0;
                        return (e + -104 | 0) >>> 0 < 16 | 0
                    }

                    function Ll(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return Vl(e, t, 0, 0, 0.0, 1, i) | 0
                    }

                    function Ul(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        a[i >> 2] = 0;
                        a[r >> 2] = 0;
                        e: do {
                            switch (t | 0) {
                                case 100:
                                case 152:
                                case 148:
                                case 147:
                                case 4:
                                case 3:
                                case 2:
                                case 1:
                                case 0:
                                    {
                                        n = e + 284 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 24 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 28 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 32 >> 2] = 2147483647
                                        }
                                        switch (t | 0) {
                                            case 0:
                                                {
                                                    a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 36;o = 126;
                                                    break e
                                                }
                                            case 1:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 28;a[r >> 2] = (a[n >> 2] | 0) + 43;o = 126;
                                                    break e
                                                }
                                            case 2:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 32;a[r >> 2] = (a[n >> 2] | 0) + 44;o = 126;
                                                    break e
                                                }
                                            case 3:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 37;o = 126;
                                                    break e
                                                }
                                            case 4:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 38;o = 126;
                                                    break e
                                                }
                                            case 147:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 39;o = 126;
                                                    break e
                                                }
                                            case 148:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 40;o = 126;
                                                    break e
                                                }
                                            case 152:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 41;o = 126;
                                                    break e
                                                }
                                            case 100:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 24;a[r >> 2] = (a[n >> 2] | 0) + 42;o = 126;
                                                    break e
                                                }
                                            default:
                                                {
                                                    o = 126;
                                                    break e
                                                }
                                        }
                                    }
                                case 178:
                                case 177:
                                case 160:
                                case 146:
                                case 144:
                                case 123:
                                case 122:
                                case 121:
                                case 120:
                                    {
                                        n = e + 288 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 24 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 28 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 32 >> 2] = 2147483647
                                        }
                                        switch (t | 0) {
                                            case 120:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 41;o = 126;
                                                    break e
                                                }
                                            case 121:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 24;a[r >> 2] = (a[n >> 2] | 0) + 42;o = 126;
                                                    break e
                                                }
                                            case 122:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 28;a[r >> 2] = (a[n >> 2] | 0) + 43;o = 126;
                                                    break e
                                                }
                                            case 123:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 32;a[r >> 2] = (a[n >> 2] | 0) + 44;o = 126;
                                                    break e
                                                }
                                            case 144:
                                                {
                                                    a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 36;o = 126;
                                                    break e
                                                }
                                            case 146:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 38;o = 126;
                                                    break e
                                                }
                                            case 160:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 37;o = 126;
                                                    break e
                                                }
                                            case 177:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 40;o = 126;
                                                    break e
                                                }
                                            case 178:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 39;o = 126;
                                                    break e
                                                }
                                            default:
                                                {
                                                    o = 126;
                                                    break e
                                                }
                                        }
                                    }
                                case 103:
                                case 102:
                                case 101:
                                case 14:
                                case 13:
                                case 12:
                                case 11:
                                case 10:
                                case 9:
                                case 7:
                                case 6:
                                case 5:
                                    {
                                        n = e + 304 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 24 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 28 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 32 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 36 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 40 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 44 >> 2] = 2147483647
                                        }
                                        do {
                                            switch (t | 0) {
                                                case 5:
                                                    {
                                                        a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 48;o = 126;
                                                        break e
                                                    }
                                                case 6:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 49;o = 126;
                                                        break e
                                                    }
                                                case 7:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 50;o = 126;
                                                        break e
                                                    }
                                                case 9:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 51;o = 126;
                                                        break e
                                                    }
                                                case 10:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 52;o = 126;
                                                        break e
                                                    }
                                                case 11:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 53;o = 126;
                                                        break e
                                                    }
                                                case 12:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 24;a[r >> 2] = (a[n >> 2] | 0) + 54;o = 126;
                                                        break e
                                                    }
                                                case 13:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 28;a[r >> 2] = (a[n >> 2] | 0) + 55;o = 126;
                                                        break e
                                                    }
                                                case 14:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 32;a[r >> 2] = (a[n >> 2] | 0) + 56;o = 126;
                                                        break e
                                                    }
                                                case 101:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 36;a[r >> 2] = (a[n >> 2] | 0) + 57;o = 126;
                                                        break e
                                                    }
                                                case 102:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 40;a[r >> 2] = (a[n >> 2] | 0) + 58;o = 126;
                                                        break e
                                                    }
                                                case 103:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 44;a[r >> 2] = (a[n >> 2] | 0) + 59;o = 126;
                                                        break e
                                                    }
                                                default:
                                                    {
                                                        o = 126;
                                                        break e
                                                    }
                                            }
                                        } while (0)
                                    }
                                case 84:
                                case 83:
                                case 82:
                                case 81:
                                case 80:
                                case 79:
                                    {
                                        n = e + 296 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647
                                        }
                                        switch (t | 0) {
                                            case 79:
                                                {
                                                    a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 24;o = 126;
                                                    break e
                                                }
                                            case 80:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 25;o = 126;
                                                    break e
                                                }
                                            case 81:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 26;o = 126;
                                                    break e
                                                }
                                            case 82:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 27;o = 126;
                                                    break e
                                                }
                                            case 83:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 28;o = 126;
                                                    break e
                                                }
                                            case 84:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 29;o = 126;
                                                    break e
                                                }
                                            default:
                                                {
                                                    o = 126;
                                                    break e
                                                }
                                        }
                                    }
                                case 135:
                                case 134:
                                case 133:
                                case 132:
                                case 131:
                                case 130:
                                case 129:
                                case 128:
                                case 127:
                                case 126:
                                case 125:
                                    {
                                        n = e + 292 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 24 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 28 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 32 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 36 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 40 >> 2] = 2147483647
                                        }
                                        do {
                                            switch (t | 0) {
                                                case 125:
                                                    {
                                                        a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 44;o = 126;
                                                        break e
                                                    }
                                                case 126:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 45;o = 126;
                                                        break e
                                                    }
                                                case 127:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 46;o = 126;
                                                        break e
                                                    }
                                                case 128:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 47;o = 126;
                                                        break e
                                                    }
                                                case 129:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 48;o = 126;
                                                        break e
                                                    }
                                                case 130:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 49;o = 126;
                                                        break e
                                                    }
                                                case 131:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 24;a[r >> 2] = (a[n >> 2] | 0) + 50;o = 126;
                                                        break e
                                                    }
                                                case 132:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 28;a[r >> 2] = (a[n >> 2] | 0) + 51;o = 126;
                                                        break e
                                                    }
                                                case 133:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 32;a[r >> 2] = (a[n >> 2] | 0) + 52;o = 126;
                                                        break e
                                                    }
                                                case 134:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 36;a[r >> 2] = (a[n >> 2] | 0) + 53;o = 126;
                                                        break e
                                                    }
                                                case 135:
                                                    {
                                                        a[i >> 2] = (a[n >> 2] | 0) + 40;a[r >> 2] = (a[n >> 2] | 0) + 54;o = 126;
                                                        break e
                                                    }
                                                default:
                                                    {
                                                        o = 126;
                                                        break e
                                                    }
                                            }
                                        } while (0)
                                    }
                                case 98:
                                case 92:
                                case 91:
                                case 90:
                                case 89:
                                case 88:
                                case 87:
                                case 86:
                                case 85:
                                    {
                                        n = e + 308 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 20 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 24 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 28 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 32 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 36 >> 2] = 2147483647;
                                            a[a[n >> 2] >> 2] = 2147483647
                                        }
                                        switch (t | 0) {
                                            case 85:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 41;o = 126;
                                                    break e
                                                }
                                            case 86:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 42;o = 126;
                                                    break e
                                                }
                                            case 87:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 43;o = 126;
                                                    break e
                                                }
                                            case 88:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 16;a[r >> 2] = (a[n >> 2] | 0) + 44;o = 126;
                                                    break e
                                                }
                                            case 89:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 20;a[r >> 2] = (a[n >> 2] | 0) + 45;o = 126;
                                                    break e
                                                }
                                            case 90:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 24;a[r >> 2] = (a[n >> 2] | 0) + 46;o = 126;
                                                    break e
                                                }
                                            case 91:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 28;a[r >> 2] = (a[n >> 2] | 0) + 47;o = 126;
                                                    break e
                                                }
                                            case 92:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 32;a[r >> 2] = (a[n >> 2] | 0) + 48;o = 126;
                                                    break e
                                                }
                                            case 98:
                                                {
                                                    a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 40;o = 126;
                                                    break e
                                                }
                                            default:
                                                {
                                                    o = 126;
                                                    break e
                                                }
                                        }
                                    }
                                case 182:
                                case 181:
                                case 180:
                                case 179:
                                    {
                                        n = e + 312 | 0;
                                        if (!(a[n >> 2] | 0)) {
                                            e = Dl() | 0;
                                            a[n >> 2] = e;
                                            if (!e) {
                                                n = 0;
                                                break e
                                            }
                                            a[e >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 4 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 8 >> 2] = 2147483647;
                                            a[(a[n >> 2] | 0) + 12 >> 2] = 2147483647
                                        }
                                        switch (t | 0) {
                                            case 179:
                                                {
                                                    a[i >> 2] = a[n >> 2];a[r >> 2] = (a[n >> 2] | 0) + 16;o = 126;
                                                    break e
                                                }
                                            case 180:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 4;a[r >> 2] = (a[n >> 2] | 0) + 17;o = 126;
                                                    break e
                                                }
                                            case 181:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 8;a[r >> 2] = (a[n >> 2] | 0) + 18;o = 126;
                                                    break e
                                                }
                                            case 182:
                                                {
                                                    a[i >> 2] = (a[n >> 2] | 0) + 12;a[r >> 2] = (a[n >> 2] | 0) + 19;o = 126;
                                                    break e
                                                }
                                            default:
                                                {
                                                    o = 126;
                                                    break e
                                                }
                                        }
                                    }
                                case 93:
                                    {
                                        a[i >> 2] = e + 256;a[r >> 2] = e + 277;o = 126;
                                        break
                                    }
                                case 94:
                                    {
                                        a[i >> 2] = e + 260;a[r >> 2] = e + 278;o = 126;
                                        break
                                    }
                                case 95:
                                    {
                                        a[i >> 2] = e + 264;a[r >> 2] = e + 279;o = 126;
                                        break
                                    }
                                case 96:
                                    {
                                        a[i >> 2] = e + 268;a[r >> 2] = e + 280;o = 126;
                                        break
                                    }
                                case 97:
                                    {
                                        a[i >> 2] = e + 272;a[r >> 2] = e + 281;o = 126;
                                        break
                                    }
                                case 145:
                                    {
                                        a[i >> 2] = e + 252;a[r >> 2] = e + 276;o = 126;
                                        break
                                    }
                                case 78:
                                case 77:
                                case 76:
                                case 75:
                                case 74:
                                case 73:
                                case 72:
                                case 71:
                                case 70:
                                case 69:
                                case 68:
                                case 67:
                                case 66:
                                case 65:
                                case 64:
                                case 63:
                                case 62:
                                case 61:
                                case 60:
                                case 59:
                                case 58:
                                case 57:
                                case 56:
                                case 55:
                                case 54:
                                case 53:
                                case 52:
                                case 51:
                                case 50:
                                case 49:
                                case 48:
                                case 47:
                                case 46:
                                case 45:
                                case 44:
                                case 43:
                                case 42:
                                case 41:
                                case 40:
                                case 39:
                                case 38:
                                case 37:
                                case 36:
                                case 35:
                                case 34:
                                case 33:
                                case 32:
                                case 31:
                                case 30:
                                case 29:
                                case 28:
                                case 27:
                                case 26:
                                case 25:
                                case 24:
                                case 23:
                                case 22:
                                case 21:
                                case 20:
                                case 19:
                                case 18:
                                case 17:
                                case 16:
                                case 15:
                                    {
                                        s = t + -15 | 0;t = s & 7;s = e + 332 + (s >>> 3 << 2) | 0;n = a[s >> 2] | 0;t: do {
                                            if (!n) {
                                                n = Dl() | 0;
                                                a[s >> 2] = n;
                                                if (!n) {
                                                    n = 0;
                                                    break e
                                                }
                                                a[e + 364 >> 2] = 1;
                                                e = 0;
                                                while (1) {
                                                    n = a[s >> 2] | 0;
                                                    if ((e | 0) == 8) break t;
                                                    a[n + (e << 2) >> 2] = 2147483647;
                                                    e = e + 1 | 0
                                                }
                                            }
                                        } while (0);a[i >> 2] = n + (t << 2);a[r >> 2] = (a[s >> 2] | 0) + 32 + t;o = 126;
                                        break
                                    }
                                case 143:
                                case 142:
                                case 141:
                                case 140:
                                case 139:
                                case 138:
                                case 137:
                                case 136:
                                    {
                                        s = t + -136 | 0;t = e + 316 | 0;n = a[t >> 2] | 0;t: do {
                                            if (!n) {
                                                n = Dl() | 0;
                                                a[t >> 2] = n;
                                                if (!n) {
                                                    n = 0;
                                                    break e
                                                }
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == 8) break t;
                                                    a[n + (e << 2) >> 2] = 2147483647;
                                                    e = e + 1 | 0;
                                                    n = a[t >> 2] | 0
                                                }
                                            }
                                        } while (0);a[i >> 2] = n + (s << 2);a[r >> 2] = (a[t >> 2] | 0) + 32 + s;o = 126;
                                        break
                                    }
                                case 151:
                                case 150:
                                case 149:
                                    {
                                        o = 126;
                                        break
                                    }
                                case 159:
                                case 158:
                                case 157:
                                case 156:
                                case 155:
                                case 154:
                                case 153:
                                    {
                                        s = t + -153 | 0;t = e + 328 | 0;n = a[t >> 2] | 0;t: do {
                                            if (!n) {
                                                n = Dl() | 0;
                                                a[t >> 2] = n;
                                                if (!n) {
                                                    n = 0;
                                                    break e
                                                }
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == 8) break t;
                                                    a[n + (e << 2) >> 2] = 2147483647;
                                                    e = e + 1 | 0;
                                                    n = a[t >> 2] | 0
                                                }
                                            }
                                        } while (0);a[i >> 2] = n + (s << 2);a[r >> 2] = (a[t >> 2] | 0) + 32 + s;o = 126;
                                        break
                                    }
                                case 168:
                                case 167:
                                case 166:
                                case 165:
                                case 164:
                                case 163:
                                case 162:
                                case 161:
                                    {
                                        s = t + -161 | 0;t = e + 320 | 0;n = a[t >> 2] | 0;t: do {
                                            if (!n) {
                                                n = Dl() | 0;
                                                a[t >> 2] = n;
                                                if (!n) {
                                                    n = 0;
                                                    break e
                                                }
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == 8) break t;
                                                    a[n + (e << 2) >> 2] = 2147483647;
                                                    e = e + 1 | 0;
                                                    n = a[t >> 2] | 0
                                                }
                                            }
                                        } while (0);a[i >> 2] = n + (s << 2);a[r >> 2] = (a[t >> 2] | 0) + 32 + s;o = 126;
                                        break
                                    }
                                case 176:
                                case 175:
                                case 174:
                                case 173:
                                case 172:
                                case 171:
                                case 170:
                                case 169:
                                    {
                                        s = t + -169 | 0;t = e + 324 | 0;n = a[t >> 2] | 0;t: do {
                                            if (!n) {
                                                n = Dl() | 0;
                                                a[t >> 2] = n;
                                                if (!n) {
                                                    n = 0;
                                                    break e
                                                }
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == 8) break t;
                                                    a[n + (e << 2) >> 2] = 2147483647;
                                                    e = e + 1 | 0;
                                                    n = a[t >> 2] | 0
                                                }
                                            }
                                        } while (0);a[i >> 2] = n + (s << 2);a[r >> 2] = (a[t >> 2] | 0) + 32 + s;o = 126;
                                        break
                                    }
                                default:
                                    n = 0
                            }
                        } while (0);
                        if ((o | 0) == 126) n = 1;
                        return n | 0
                    }

                    function Vl(e, t, i, s, o, u, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = +o;
                        u = u | 0;
                        l = +l;
                        var f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0;
                        v = e + 105 | 0;
                        d = r[v >> 0] | 0;
                        f = 0;
                        while (1) {
                            m = f & 255;
                            if ((f & 255) >= (d & 255)) {
                                f = 0;
                                c = 12;
                                break
                            }
                            p = e + 108 + (m * 12 | 0) | 0;
                            c = n[p >> 1] | 0;
                            if (c << 16 >> 16 == t << 16 >> 16) {
                                c = 4;
                                break
                            }
                            if ((c & 65535) > (t & 65535)) {
                                f = 1;
                                c = 12;
                                break
                            } else f = f + 1 << 24 >> 24
                        }
                        do {
                            if ((c | 0) == 4) {
                                if (i | 0) {
                                    f = e + 108 + (m * 12 | 0) + 4 | 0;
                                    if (s) o = +h[f >> 2] * o;
                                    h[f >> 2] = o;
                                    Xl(p);
                                    jl(p)
                                }
                                if (u | 0) {
                                    h[e + 108 + (m * 12 | 0) + 8 >> 2] = l;
                                    Gl(p);
                                    $l(p)
                                }
                                r[e + 8 >> 0] = 1;
                                f = 1
                            } else if ((c | 0) == 12) {
                                if ((d & 255) > 7) {
                                    sE();
                                    f = 0;
                                    break
                                }
                                e: do {
                                    if (f) {
                                        f = d & 255;
                                        while (1) {
                                            if ((f | 0) <= (m | 0)) break e;
                                            d = e + 108 + (f * 12 | 0) | 0;
                                            p = f + -1 | 0;
                                            s = e + 108 + (p * 12 | 0) | 0;
                                            a[d >> 2] = a[s >> 2];
                                            a[d + 4 >> 2] = a[s + 4 >> 2];
                                            a[d + 8 >> 2] = a[s + 8 >> 2];
                                            f = p
                                        }
                                    }
                                } while (0);
                                f = e + 108 + (m * 12 | 0) | 0;
                                n[f >> 1] = t;
                                t = e + 108 + (m * 12 | 0) + 2 | 0;
                                n[t >> 1] = 0;
                                n[t + 2 >> 1] = 0;
                                n[t + 4 >> 1] = 0;
                                n[t + 6 >> 1] = 0;
                                n[t + 8 >> 1] = 0;
                                if (i | 0) {
                                    h[e + 108 + (m * 12 | 0) + 4 >> 2] = o;
                                    Xl(f);
                                    jl(f)
                                }
                                if (u | 0) {
                                    h[e + 108 + (m * 12 | 0) + 8 >> 2] = l;
                                    Gl(f);
                                    $l(f)
                                }
                                r[v >> 0] = (r[v >> 0] | 0) + 1 << 24 >> 24;
                                r[e + 8 >> 0] = 1;
                                f = 1
                            }
                        } while (0);
                        return f | 0
                    }

                    function Xl(e) {
                        e = e | 0;
                        e = e + 3 | 0;
                        r[e >> 0] = r[e >> 0] | 1;
                        return
                    }

                    function jl(e) {
                        e = e | 0;
                        e = e + 2 | 0;
                        r[e >> 0] = r[e >> 0] | 1;
                        return
                    }

                    function Gl(e) {
                        e = e | 0;
                        e = e + 3 | 0;
                        r[e >> 0] = r[e >> 0] | 2;
                        return
                    }

                    function $l(e) {
                        e = e | 0;
                        e = e + 2 | 0;
                        r[e >> 0] = r[e >> 0] | 2;
                        return
                    }

                    function Hl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = e + 16 | 0;
                        i = s[e + 29 >> 0] | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (i | 0)) {
                                e = -1;
                                break
                            }
                            if ((o[(a[r >> 2] | 0) + (e << 1) >> 1] | 0 | 0) == (t | 0)) break;
                            e = e + 1 | 0
                        }
                        return e | 0
                    }

                    function Wl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            switch (t << 16 >> 16) {
                                case 152:
                                    {
                                        t = -1;
                                        break
                                    }
                                case 88:
                                    {
                                        t = a[1712] | 0;
                                        break
                                    }
                                case 89:
                                    {
                                        t = a[1713] | 0;
                                        break
                                    }
                                case 90:
                                    {
                                        t = a[1714] | 0;
                                        break
                                    }
                                case 91:
                                    {
                                        t = a[1715] | 0;
                                        break
                                    }
                                case 85:
                                    {
                                        t = a[1709] | 0;
                                        break
                                    }
                                case 86:
                                    {
                                        t = a[1710] | 0;
                                        break
                                    }
                                case 87:
                                    {
                                        t = a[1711] | 0;
                                        break
                                    }
                                case 92:
                                    {
                                        t = a[1716] | 0;
                                        break
                                    }
                                case 99:
                                    {
                                        t = a[1717] | 0;
                                        break
                                    }
                                case 98:
                                    {
                                        t = a[1708] | 0;
                                        break
                                    }
                                case 97:
                                case 96:
                                case 95:
                                case 94:
                                case 93:
                                    {
                                        t = 65535;
                                        break
                                    }
                                case 123:
                                case 122:
                                case 121:
                                case 120:
                                case 151:
                                case 150:
                                case 149:
                                case 143:
                                case 142:
                                case 141:
                                case 140:
                                case 139:
                                case 138:
                                case 137:
                                case 136:
                                case 134:
                                case 133:
                                case 130:
                                case 129:
                                case 128:
                                case 126:
                                case 125:
                                case 124:
                                case 102:
                                case 100:
                                case 81:
                                case 177:
                                case 148:
                                case 147:
                                case 4:
                                case 2:
                                case 1:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 101:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 79:
                                case 145:
                                case 176:
                                case 175:
                                case 174:
                                case 173:
                                case 172:
                                case 171:
                                case 170:
                                case 169:
                                case 119:
                                case 118:
                                case 117:
                                case 116:
                                case 115:
                                case 114:
                                case 113:
                                case 112:
                                case 14:
                                case 13:
                                case 5:
                                case 144:
                                case 3:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 83:
                                case 82:
                                    {
                                        t = 1065353216;
                                        break
                                    }
                                case 103:
                                case 7:
                                case 6:
                                case 84:
                                case 80:
                                case 132:
                                case 135:
                                case 131:
                                case 127:
                                case 160:
                                case 178:
                                case 146:
                                case 0:
                                    {
                                        t = 1065353216;
                                        break
                                    }
                                case 12:
                                case 11:
                                case 10:
                                case 9:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 104:
                                    {
                                        t = 1065353216;
                                        break
                                    }
                                case 111:
                                case 110:
                                case 109:
                                case 108:
                                case 107:
                                case 106:
                                case 105:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 153:
                                    {
                                        t = 1065353216;
                                        break
                                    }
                                case 159:
                                case 158:
                                case 157:
                                case 156:
                                case 155:
                                case 154:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 78:
                                case 77:
                                case 76:
                                case 75:
                                case 74:
                                case 73:
                                case 72:
                                case 71:
                                case 70:
                                case 69:
                                case 68:
                                case 67:
                                case 66:
                                case 65:
                                case 64:
                                case 63:
                                case 62:
                                case 61:
                                case 60:
                                case 59:
                                case 58:
                                case 57:
                                case 56:
                                case 55:
                                case 54:
                                case 53:
                                case 52:
                                case 51:
                                case 50:
                                case 49:
                                case 48:
                                case 47:
                                case 46:
                                case 45:
                                case 44:
                                case 43:
                                case 42:
                                case 41:
                                case 40:
                                case 39:
                                case 38:
                                case 37:
                                case 36:
                                case 35:
                                case 34:
                                case 33:
                                case 32:
                                case 31:
                                case 30:
                                case 29:
                                case 28:
                                case 27:
                                case 26:
                                case 25:
                                case 24:
                                case 23:
                                case 22:
                                case 21:
                                case 20:
                                case 19:
                                case 18:
                                case 17:
                                case 16:
                                case 15:
                                case 168:
                                case 167:
                                case 166:
                                case 165:
                                case 164:
                                case 163:
                                case 162:
                                case 161:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 182:
                                case 180:
                                case 179:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 181:
                                    {
                                        t = 0;
                                        break
                                    }
                                default:
                                    {
                                        t = (Fl(t & 65535) | 0) == 0;t = t ? 2147483647 : 0
                                    }
                            }
                        } while (0);
                        a[e >> 2] = t;
                        return
                    }

                    function Yl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        o = r[e + 105 >> 0] | 0;
                        s = 0;
                        while (1) {
                            if ((s & 255) >= (o & 255)) {
                                s = 0;
                                break
                            }
                            u = e + 108 + ((s & 255) * 12 | 0) | 0;
                            if ((n[u >> 1] | 0) == t << 16 >> 16) {
                                h = 4;
                                break
                            } else s = s + 1 << 24 >> 24
                        }
                        if ((h | 0) == 4) {
                            a[i >> 2] = a[u >> 2];
                            a[i + 4 >> 2] = a[u + 4 >> 2];
                            a[i + 8 >> 2] = a[u + 8 >> 2];
                            s = 1
                        }
                        return s | 0
                    }

                    function zl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        PE(a[e >> 2] | 0, t, 0, i);
                        e = a[e >> 2] | 0;
                        a[i + 4 >> 2] = SE(e, t, 1) | 0;
                        a[i + 8 >> 2] = SE(e, t, 2) | 0;
                        a[i + 12 >> 2] = SE(e, t, 3) | 0;
                        a[i + 16 >> 2] = SE(e, t, 4) | 0;
                        a[i + 20 >> 2] = SE(e, t, 5) | 0;
                        a[i + 24 >> 2] = SE(e, t, 6) | 0;
                        return
                    }

                    function ql(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0;
                        r = p;
                        p = p + 16 | 0;
                        s = r;
                        o = a[e + 48 >> 2] | 0;
                        t = Ql(e, (ps(e, t, o >>> 1, 0, o + -1 | 0) | 0) & 65535, s) | 0;
                        n[i >> 1] = n[s + 4 >> 1] | 0;
                        p = r;
                        return t | 0
                    }

                    function Jl(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            r = a[e >> 2] | 0;
                            e = (a[r + 8 >> 2] | 0) + (G(a[r + 20 >> 2] | 0, t) | 0) | 0;
                            t = a[r + 36 >> 2] | 0;
                            n[i >> 1] = wE(e + (o[t >> 1] | 0) | 0) | 0;
                            a[i + 4 >> 2] = xE(e + (o[t + 2 >> 1] | 0) | 0) | 0;
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function Ql(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            s = a[e >> 2] | 0;
                            r = (a[s + 8 >> 2] | 0) + (G(a[s + 20 >> 2] | 0, t) | 0) | 0;
                            e = a[s + 36 >> 2] | 0;
                            n[i + 4 >> 1] = wE(r + (o[e + 2 >> 1] | 0) | 0) | 0;
                            s = a[s + 12 >> 2] | 0;
                            t = 1;
                            e = s + (xE(r + (o[e >> 1] | 0) | 0) | 0) | 0
                        } else {
                            n[i + 4 >> 1] = -1;
                            t = 0;
                            e = 0
                        }
                        a[i >> 2] = e;
                        return t | 0
                    }

                    function Zl(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        if (!i) e = -1;
                        else e = (Kl(e, t & 65535, i >>> 1, i + -1 | 0) | 0) & 65535;
                        return e | 0
                    }

                    function Kl(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        h = e + 48 | 0;
                        n = i;
                        u = 0;
                        e: while (1) {
                            i = n;
                            while (1) {
                                if (u >>> 0 > r >>> 0) {
                                    i = -1;
                                    break e
                                }
                                if (!(a[h >> 2] | 0)) {
                                    i = -1;
                                    break e
                                }
                                n = a[e >> 2] | 0;
                                s = (a[n + 8 >> 2] | 0) + (G(a[n + 20 >> 2] | 0, i) | 0) | 0;
                                n = ((wE(s + (o[a[n + 36 >> 2] >> 1] | 0) | 0) | 0) & 65535) - t | 0;
                                if (!n) break e;
                                s = (u | 0) == (r | 0);
                                if ((n | 0) <= 0) break;
                                if (s) {
                                    i = -1;
                                    break e
                                }
                                s = i - u | 0;
                                s = (s >>> 1) + u + (s << 31 >> 31) | 0;
                                r = i + -1 | 0;
                                r = r >>> 0 > i >>> 0 ? i : r;
                                i = (s | 0) < (u | 0) ? u : s
                            }
                            if (s) {
                                i = -1;
                                break
                            }
                            n = r - i | 0;
                            n = (n >>> 1) + i + (n & 1) | 0;
                            n = n >>> 0 > r >>> 0 ? r : n;
                            u = i + 1 | 0
                        }
                        return i | 0
                    }

                    function ef(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        i = i * .5;
                        r = r * .5;
                        h[e >> 2] = +tf(i < r ? i : r);
                        h[t >> 2] = +tf(r < 180.0 ? r : 180.0);
                        return
                    }

                    function tf(e) {
                        e = +e;
                        return +(e / 360.0 * 6.2831854820251465)
                    }

                    function rf(e) {
                        e = e | 0;
                        if (!(a[1721] | 0))
                            if (!e) e = 0;
                            else {
                                sE();
                                e = 0
                            }
                        else e = 1;
                        return e | 0
                    }

                    function nf(e, t, i, a, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = r[i >> 0] | 0;
                        u = 0;
                        while (1) {
                            if ((u & 255) >= (f & 255)) {
                                l = 8;
                                break
                            }
                            h = u & 255;
                            if ((n[e + (h << 2) + 2 >> 1] | 0) == s << 16 >> 16) {
                                l = 4;
                                break
                            } else u = u + 1 << 24 >> 24
                        }
                        e: do {
                            if ((l | 0) == 4) {
                                u = e + (h << 2) | 0;
                                if ((n[u >> 1] | 0) == a << 16 >> 16) u = 1;
                                else switch (o | 0) {
                                    case 0:
                                        {
                                            n[u >> 1] = a;u = 1;
                                            break e
                                        }
                                    case 2:
                                        {
                                            sE();u = 0;
                                            break e
                                        }
                                    default:
                                        {
                                            u = 1;
                                            break e
                                        }
                                }
                            } else if ((l | 0) == 8) {
                                u = f & 255;
                                if ((f & 255) < (t & 255)) {
                                    n[e + (u << 2) + 2 >> 1] = s;
                                    n[e + (u << 2) >> 1] = a;
                                    r[i >> 0] = f + 1 << 24 >> 24;
                                    u = 1
                                } else u = 0
                            }
                        } while (0);
                        return u | 0
                    }

                    function af(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function sf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return n[e + 608 + (t << 1) >> 1] | 0
                    }

                    function of (e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t << 16 >> 16;
                        return (yh(e + (t * 12 | 0) | 0, e + ((t + 1 | 0) * 12 | 0) | 0, i) | 0) != 0 | 0
                    }

                    function uf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Cl(e, t, i);
                        return
                    }

                    function hf() {
                        var e = 0;
                        e = Dl() | 0;
                        if (e | 0) {
                            a[e >> 2] = 2147483647;
                            a[e + 4 >> 2] = 2147483647;
                            a[e + 8 >> 2] = 2147483647;
                            a[e + 12 >> 2] = 2147483647;
                            a[e + 16 >> 2] = 2147483647;
                            a[e + 20 >> 2] = 2147483647
                        }
                        return e | 0
                    }

                    function lf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[1725] | 0;
                        if (!r) {
                            sE();
                            r = a[1725] | 0
                        }
                        return t$[r & 7](e, t, i) | 0
                    }

                    function ff() {
                        return r[3857] | 0
                    }

                    function cf(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0;
                        aE(n, s);
                        u = n + 7 & -8;
                        s = u;
                        u = u + 368 | 0;
                        a[s + 88 >> 2] = u;
                        n = e & 255;
                        o = n << 2;
                        u = u + o | 0;
                        a[s + 20 >> 2] = u;
                        o = u + o | 0;
                        a[s + 96 >> 2] = o;
                        o = o + ((t & 255) << 2) | 0;
                        a[s + 16 >> 2] = o;
                        n = n << 1;
                        o = o + n | 0;
                        a[s + 92 >> 2] = o;
                        a[s + 24 >> 2] = o + n;
                        r[s + 28 >> 0] = e;
                        r[s + 100 >> 0] = e;
                        r[s + 102 >> 0] = t;
                        a[s + 12 >> 2] = i;
                        ho(s);
                        df(s);
                        a[1682] = (a[1682] | 0) + 1;
                        return s | 0
                    }

                    function df(e) {
                        e = e | 0;
                        a[e + 4 >> 2] = a[1735];
                        a[e >> 2] = 6936;
                        a[a[1735] >> 2] = e;
                        a[1735] = e;
                        return
                    }

                    function pf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            u = 0;
                        s = a[e + 8 >> 2] | 0;
                        n = e + 20 | 0;
                        u = s + (G(a[n >> 2] | 0, t) | 0) | 0;
                        r = o[a[e + 36 >> 2] >> 1] | 0;
                        a[i + 4 >> 2] = xE(u + r + 4 | 0) | 0;
                        e = a[e + 16 >> 2] | 0;
                        a[i >> 2] = e + (xE(s + (G(a[n >> 2] | 0, t) | 0) + r | 0) | 0);
                        return
                    }

                    function vf() {
                        a[1679] = (a[1679] | 0) + 1;
                        return
                    }

                    function mf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            if (t) {
                                i = a[1677] | 0;
                                if (!i) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = _f(i, e, t) | 0;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function _f(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        gS(i, 0, 268) | 0;
                        do {
                            if (a[e + 68 >> 2] | 0) {
                                if (!(r[e + 2504 >> 0] | 0)) {
                                    NE();
                                    e = 0;
                                    break
                                }
                                n = e + 540 | 0;
                                if (!(a[e + 588 >> 2] | 0)) {
                                    NE();
                                    e = 0;
                                    break
                                }
                                e = bf(n, t) | 0;
                                if (e << 16 >> 16 == -1) e = 0;
                                else {
                                    Ps(n, e, i);
                                    e = 1
                                }
                            } else {
                                NE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function bf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        return (ps(e, t, i >>> 1, 0, i + -1 | 0) | 0) & 65535 | 0
                    }

                    function gf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        do {
                            if (t) {
                                if (!(a[1677] | 0)) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                gS(t, 0, 264) | 0;
                                n = a[1677] | 0;
                                if (!(a[n + 68 >> 2] | 0)) {
                                    NE();
                                    e = 0;
                                    break
                                }
                                if (!(r[n + 2504 >> 0] | 0)) {
                                    NE();
                                    e = 0;
                                    break
                                }
                                i = a[n + 1944 >> 2] | 0;
                                if (!i) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                if (i >>> 0 > (e & 65535) >>> 0) {
                                    e = yf(n + 1896 | 0, e, t) | 0;
                                    break
                                } else {
                                    sE();
                                    e = 0;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function yf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = t & 65535;
                        e: do {
                            if ((a[e + 48 >> 2] | 0) >>> 0 > l >>> 0) {
                                h = a[e >> 2] | 0;
                                a[i >> 2] = IE(h, l, 0) | 0;
                                e = (a[h + 8 >> 2] | 0) + (G(a[h + 20 >> 2] | 0, l) | 0) | 0;
                                e = wE(e + (o[(a[h + 36 >> 2] | 0) + 2 >> 1] | 0) | 0) | 0;
                                u = TE(h, l, 2) | 0;
                                s = i + 4 | 0;
                                r[s >> 0] = u;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= (u & 255) >>> 0) break;
                                    n[i + 8 + (t << 1) >> 1] = e;
                                    t = t + 1 | 0;
                                    e = e + 1 << 16 >> 16;
                                    u = r[s >> 0] | 0
                                }
                                while (1) {
                                    if (t >>> 0 >= 64) break;
                                    n[i + 8 + (t << 1) >> 1] = -1;
                                    t = t + 1 | 0
                                }
                                e = EE(h, l, 3) | 0;
                                u = TE(h, l, 4) | 0;
                                s = i + 5 | 0;
                                r[s >> 0] = u;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= (u & 255) >>> 0) break;
                                    n[i + 136 + (t << 1) >> 1] = e;
                                    e = e + 1 << 16 >> 16;
                                    t = t + 1 | 0;
                                    u = r[s >> 0] | 0
                                }
                                while (1) {
                                    if (t >>> 0 >= 64) {
                                        t = 1;
                                        break e
                                    }
                                    n[i + 136 + (t << 1) >> 1] = -1;
                                    t = t + 1 | 0
                                }
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function Af(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0;
                        s = a[1677] | 0;
                        gS(i, 0, 264) | 0;
                        do {
                            if (a[1677] | 0) {
                                if (!(a[s + 68 >> 2] | 0)) {
                                    NE();
                                    s = 0;
                                    break
                                }
                                if (!(r[s + 2504 >> 0] | 0)) {
                                    NE();
                                    s = 0;
                                    break
                                }
                                u = s + 1896 | 0;
                                if (!(a[s + 1944 >> 2] | 0)) {
                                    NE();
                                    s = 0;
                                    break
                                }
                                s = n[e + 264 >> 1] | 0;
                                if (!(s << 16 >> 16)) {
                                    NE();
                                    s = 0;
                                    break
                                }
                                e = (o[e + 260 >> 1] | 0) + -1 | 0;
                                s = wf(u, t, e & 65535, e + (s & 65535) & 65535) | 0;
                                if (s << 16 >> 16 == -1) {
                                    NE();
                                    s = 0;
                                    break
                                } else {
                                    yf(u, s, i) | 0;
                                    s = 1;
                                    break
                                }
                            } else {
                                sE();
                                s = 0
                            }
                        } while (0);
                        return s | 0
                    }

                    function wf(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        r = r & 65535;
                        i = i & 65535;
                        return (ps(e, t, ((r - i | 0) / 2 | 0) + i | 0, i, r) | 0) & 65535 | 0
                    }

                    function xf() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else e = a[e + 2528 >> 2] | 0;
                        return e | 0
                    }

                    function kf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            if (t) {
                                i = a[1677] | 0;
                                if (!i) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = Tf(i, e, t) | 0;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Tf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(i, 0, 168) | 0;
                        if ((a[e + 68 >> 2] | 0) != 0 ? (Ef(e + 632 | 0, t, e + 2172 | 0, i) | 0) != 0 : 0) e = 1;
                        else e = 0;
                        return e | 0
                    }

                    function Ef(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = t & 65535;
                        do {
                            if ((a[e + 48 >> 2] | 0) >>> 0 > c >>> 0) {
                                l = a[e >> 2] | 0;
                                f = s + 164 | 0;
                                n[f >> 1] = EE(l, c, 0) | 0;
                                PE(l, c, 1, s + 4 | 0);
                                PE(a[e >> 2] | 0, c, 2, s + 8 | 0);
                                PE(a[e >> 2] | 0, c, 3, s + 12 | 0);
                                PE(a[e >> 2] | 0, c, 4, s + 16 | 0);
                                l = a[e >> 2] | 0;
                                e = EE(l, c, 5) | 0;
                                h = TE(l, c, 6) | 0;
                                u = s + 166 | 0;
                                r[u >> 0] = h;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= (h & 255) >>> 0) break;
                                    n[s + 20 + (t << 1) >> 1] = e;
                                    t = t + 1 | 0;
                                    e = e + 1 << 16 >> 16;
                                    h = r[u >> 0] | 0
                                }
                                while (1) {
                                    if (t >>> 0 >= 8) break;
                                    n[s + 20 + (t << 1) >> 1] = -1;
                                    t = t + 1 | 0
                                }
                                e = EE(l, c, 7) | 0;
                                h = TE(l, c, 8) | 0;
                                u = s + 167 | 0;
                                r[u >> 0] = h;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= (h & 255) >>> 0) break;
                                    n[s + 36 + (t << 1) >> 1] = e;
                                    e = e + 1 << 16 >> 16;
                                    t = t + 1 | 0;
                                    h = r[u >> 0] | 0
                                }
                                while (1) {
                                    if (t >>> 0 >= 64) break;
                                    n[s + 36 + (t << 1) >> 1] = -1;
                                    t = t + 1 | 0
                                }
                                if ((n[l + 24 >> 1] | 0) != 11) {
                                    a[s >> 2] = a[24 + (o[f >> 1] << 2) >> 2];
                                    t = 1;
                                    break
                                }
                                if (!(a[i + 48 >> 2] | 0)) t = a[24 + (o[f >> 1] << 2) >> 2] | 0;
                                else {
                                    t = EE(l, c, 10) | 0;
                                    t = IE(a[i >> 2] | 0, t & 65535, 0) | 0
                                }
                                a[s >> 2] = t;
                                t = 1
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function Sf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!t)
                            if ((e | 0) == 255) e = 255;
                            else {
                                sE();
                                e = 0
                            }
                        return e | 0
                    }

                    function Pf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            o = 0;
                        o = p;
                        p = p + 48 | 0;
                        r = o;
                        a[t >> 2] = 0;
                        n = a[1677] | 0;
                        if (n)
                            if ((a[n + 68 >> 2] | 0) != 0 ? (If(n + 740 | 0, e, r) | 0) != 0 : 0) {
                                e = a[r + 12 >> 2] | 0;
                                a[t >> 2] = Sf(s[r + 32 >> 0] | 0, e) | 0;
                                a[i >> 2] = e;
                                e = 1
                            } else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        p = o;
                        return e | 0
                    }

                    function If(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        a[i >> 2] = 11354;
                        n = i + 34 | 0;
                        r[n >> 0] = 0;
                        u = t & 65535;
                        e: do {
                            if ((a[e + 48 >> 2] | 0) >>> 0 > u >>> 0) {
                                t = a[e >> 2] | 0;
                                h = i + 32 | 0;
                                r[h >> 0] = TE(t, u, 0) | 0;
                                ME(t, u, 1, i + 8 | 0, i + 20 | 0);
                                t = a[e >> 2] | 0;
                                t: do {
                                    switch (10 - (o[t + 24 >> 1] | 0) | 0) {
                                        case 0:
                                            {
                                                r[n >> 0] = TE(t, u, 9) | 0;l = 4;
                                                break
                                            }
                                        case 1:
                                            {
                                                l = 4;
                                                break
                                            }
                                        case 6:
                                            {
                                                l = 5;
                                                break
                                            }
                                        default:
                                            {
                                                t = r[h >> 0] | 0;
                                                if ((t & 255) < 64) {
                                                    a[i + 12 >> 2] = 0;
                                                    t = 1;
                                                    break t
                                                }
                                                if ((t & 255) < 80) {
                                                    a[i + 12 >> 2] = 1;
                                                    r[h >> 0] = (t & 255) + 192;
                                                    t = 1;
                                                    break e
                                                }
                                                if ((t & 255) < 96) {
                                                    a[i + 12 >> 2] = 3;
                                                    r[h >> 0] = (t & 255) + 176;
                                                    t = 1;
                                                    break e
                                                }
                                                if ((t & 255) < 112) {
                                                    a[i + 12 >> 2] = 4;
                                                    r[h >> 0] = (t & 255) + 160;
                                                    t = 1;
                                                    break e
                                                }
                                                if ((t & 255) >= 115) {
                                                    t = 0;
                                                    break e
                                                }
                                                a[i + 12 >> 2] = 5;r[h >> 0] = (t & 255) + 144;t = 1;
                                                break e
                                            }
                                    }
                                } while (0);
                                if ((l | 0) == 4) {
                                    a[i >> 2] = IE(t, u, 4) | 0;
                                    a[i + 24 >> 2] = (EE(t, u, 5) | 0) & 65535;
                                    ME(t, u, 6, i + 4 | 0, i + 16 | 0);
                                    t = a[e >> 2] | 0;
                                    a[i + 28 >> 2] = (EE(t, u, 7) | 0) & 65535;
                                    r[i + 33 >> 0] = TE(t, u, 8) | 0;
                                    l = 5
                                }
                                if ((l | 0) == 5) {
                                    t = TE(t, u, 3) | 0;
                                    a[i + 12 >> 2] = t & 255;
                                    t = t << 24 >> 24 == 0
                                }
                                if (t & (r[a[i >> 2] >> 0] | 0) == 0) {
                                    a[i >> 2] = a[88 + (s[h >> 0] << 2) >> 2];
                                    t = 1
                                } else t = 1
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function Mf(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 48 | 0;
                        t = r;
                        i = a[1677] | 0;
                        if (i)
                            if ((a[i + 68 >> 2] | 0) != 0 ? (If(i + 740 | 0, e, t) | 0) != 0 : 0) e = a[t >> 2] | 0;
                            else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        p = r;
                        return e | 0
                    }

                    function Cf(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        do {
                            if (a[1677] | 0) {
                                gS(t, 0, i) | 0;
                                if (!(a[(a[1677] | 0) + 68 >> 2] | 0)) {
                                    NE();
                                    e = 0;
                                    break
                                }
                                if ((r | 0) > 0) e = 0;
                                else e = Of(e, t, i, n) | 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Of(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 48 | 0;
                        h = f;
                        l = a[1677] | 0;
                        do {
                            if (((If(l + 740 | 0, e, h) | 0) != 0 ? (o = h + 8 | 0, (a[h + 12 >> 2] | 0) == 0) : 0) ? (r[h + 32 >> 0] | 0) == -1 : 0) {
                                u = a[h + 28 >> 2] | 0;
                                if (u >>> 0 > i >>> 0) {
                                    NE();
                                    e = -1;
                                    break
                                }
                                e = a[o >> 2] | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) == (u | 0)) break;
                                    a[t + (i << 2) >> 2] = xE(e) | 0;
                                    e = e + 4 | 0;
                                    i = i + 1 | 0
                                }
                                e = s[h + 33 >> 0] | 0;
                                a[n >> 2] = e;
                                a[n >> 2] = (a[l + 60 >> 2] | 0) >>> 0 > 18219007 ? e : 0;
                                e = u << 2
                            } else e = -1
                        } while (0);
                        p = f;
                        return e | 0
                    }

                    function Rf(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0.0;
                        d = p;
                        p = p + 2096 | 0;
                        l = d + 2056 | 0;
                        f = d + 1032 | 0;
                        c = d + 8 | 0;
                        u = d;
                        o = a[1677] | 0;
                        if (o)
                            if ((If(o + 740 | 0, e, l) | 0) != 0 ? (a[l + 12 >> 2] | 0) == 0 : 0)
                                if (!(s << 16 >> 16)) {
                                    Df(e, f, n);
                                    t = Of(t, c, 1024, u) | 0;
                                    if ((t | 0) < 0) e = -1;
                                    else {
                                        o = t >>> 2;
                                        e: do {
                                            if (!(Ff(a[l >> 2] | 0) | 0)) {
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == (o | 0)) break e;
                                                    a[i + (e << 2) >> 2] = a[c + (e << 2) >> 2];
                                                    e = e + 1 | 0
                                                }
                                            } else {
                                                e = 0;
                                                while (1) {
                                                    if ((e | 0) == (o | 0)) break e;
                                                    v = +h[f + (e << 2) >> 2];
                                                    h[i + (e << 2) >> 2] = v + (+h[c + (e << 2) >> 2] - v) * r;
                                                    e = e + 1 | 0
                                                }
                                            }
                                        } while (0);
                                        e = t & -4
                                    }
                                } else e = 0;
                        else e = -1;
                        else {
                            sE();
                            e = -1
                        }
                        p = d;
                        return e | 0
                    }

                    function Df(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n = a[1677] | 0;
                        if (n) {
                            if (a[n + 2528 >> 2] | 0 ? Nf(a[n + 740 >> 2] | 0, e, r) | 0 : 0) nE(t, 1024, (o[r >> 1] | 0) + i | 0, 1024)
                        } else sE();
                        p = s;
                        return
                    }

                    function Ff(e) {
                        e = e | 0;
                        e = Bf(e) | 0;
                        if (!e) return 0;
                        else return (a[e + 4 >> 2] | 2 | 0) != 2 | 0;
                        return 0
                    }

                    function Bf(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = 0;
                        while (1) {
                            if (i >>> 0 >= 9) {
                                t = 0;
                                break
                            }
                            t = 380 + (i * 12 | 0) | 0;
                            if (!(JI(e, a[t >> 2] | 0) | 0)) break;
                            else i = i + 1 | 0
                        }
                        return t | 0
                    }

                    function Nf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        switch (10 - (o[e + 24 >> 1] | 0) | 0) {
                            case 6:
                            case 5:
                            case 0:
                                {
                                    r = 1;e = wE((a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) + (o[(a[e + 36 >> 2] | 0) + 4 >> 1] | 0) | 0) | 0;
                                    break
                                }
                            default:
                                {
                                    r = 0;e = -1
                                }
                        }
                        n[i >> 1] = e;
                        return r | 0
                    }

                    function Lf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (i) {
                            if (a[i + 68 >> 2] | 0) Uf(i + 844 | 0, e, t) | 0
                        } else sE();
                        return
                    }

                    function Uf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > r >>> 0) {
                            t = a[e >> 2] | 0;
                            a[i >> 2] = (TE(t, r, 0) | 0) & 255;
                            PE(t, r, 1, i + 4 | 0);
                            e = a[e >> 2] | 0;
                            t = EE(e, r, 2) | 0;
                            n[i + 8 >> 1] = t;
                            if ((n[e + 24 >> 1] | 0) == 5) t = EE(e, r, 4) | 0;
                            n[i + 10 >> 1] = t;
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function Vf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        s = a[e + 12 >> 2] | 0;
                        t = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) | 0;
                        r = a[e + 36 >> 2] | 0;
                        a[i >> 2] = s + (xE(t + (o[r >> 1] | 0) | 0) | 0);
                        r = wE(t + (o[r + 2 >> 1] | 0) | 0) | 0;
                        i = i + 4 | 0;
                        n[i >> 1] = r;
                        e = r & 32767;
                        t = e & 65535;
                        switch (((e & 65535) / 1e4 | 0) & 3) {
                            case 1:
                                {
                                    e = t + 56536 & 65535;
                                    break
                                }
                            case 2:
                                {
                                    e = t + 47536 & 65535;
                                    break
                                }
                            case 3:
                                {
                                    e = t + 38536 & 65535;
                                    break
                                }
                            default:
                                {}
                        }
                        n[i >> 1] = (e & 65535) + (r & -32768 & 65535);
                        return
                    }

                    function Xf(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        if (t)
                            if ((jf(t + 924 | 0, e) | 0) << 16 >> 16 == -1) {
                                NE();
                                e = 0
                            } else e = 1;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function jf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        return (ps(e, t, i >>> 1, 0, i + -1 | 0) | 0) & 65535 | 0
                    }

                    function Gf(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        t = a[1677] | 0;
                        if (t) {
                            i = t + 924 | 0;
                            t = jf(i, e) | 0;
                            if (t << 16 >> 16 == -1) t = -1;
                            else {
                                Vf(a[i >> 2] | 0, t, r);
                                t = n[r + 4 >> 1] | 0
                            }
                        } else {
                            sE();
                            t = -1
                        }
                        p = s;
                        return t | 0
                    }

                    function $f(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (!t) {
                                sE();
                                e = 0
                            } else {
                                if (a[t + 68 >> 2] | 0 ? (Hf(t + 1184 | 0, e) | 0) << 16 >> 16 != -1 : 0) {
                                    e = 1;
                                    break
                                }
                                NE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Hf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        s = a[e + 48 >> 2] | 0;
                        t = (Wf(e, (ps(e, t, s >>> 1, 0, s + -1 | 0) | 0) & 65535, i) | 0) == 0;
                        p = r;
                        return (t ? -1 : n[i + 4 >> 1] | 0) | 0
                    }

                    function Wf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            s = a[e >> 2] | 0;
                            r = a[s + 12 >> 2] | 0;
                            e = (a[s + 8 >> 2] | 0) + (G(a[s + 20 >> 2] | 0, t) | 0) | 0;
                            t = a[s + 36 >> 2] | 0;
                            a[i >> 2] = r + (xE(e + (o[t >> 1] | 0) | 0) | 0);
                            n[i + 4 >> 1] = wE(e + (o[t + 2 >> 1] | 0) | 0) | 0;
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function Yf(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (t)
                                if (!(a[t + 68 >> 2] | 0)) {
                                    NE();
                                    e = -1;
                                    break
                                } else {
                                    e = Hf(t + 1184 | 0, e) | 0;
                                    break
                                }
                            else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function zf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) {
                            sE();
                            e = 0
                        } else e = qf(i + 988 | 0, e, t) | 0;
                        return e | 0
                    }

                    function qf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        u = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > u >>> 0) {
                            l = i + 1 | 0;
                            r[l >> 0] = 0;
                            f = i + 24 | 0;
                            h[f >> 2] = 0.0;
                            r[i + 2 >> 0] = -1;
                            s = i + 12 | 0;
                            a[s >> 2] = 0;
                            m = a[e >> 2] | 0;
                            r[i >> 0] = TE(m, u, 1) | 0;
                            d = i + 4 | 0;
                            n[d >> 1] = EE(m, u, 2) | 0;
                            PE(m, u, 3, i + 20 | 0);
                            m = a[e >> 2] | 0;
                            n[i + 6 >> 1] = EE(m, u, 4) | 0;
                            v = a[m + 8 >> 2] | 0;
                            p = m + 20 | 0;
                            _ = v + (G(a[p >> 2] | 0, u) | 0) | 0;
                            t = o[(a[m + 36 >> 2] | 0) + 10 >> 1] | 0;
                            a[i + 16 >> 2] = xE(_ + t + 4 | 0) | 0;
                            m = a[m + 16 >> 2] | 0;
                            a[i + 8 >> 2] = m + (xE(v + (G(a[p >> 2] | 0, u) | 0) + t | 0) | 0);
                            t = a[e >> 2] | 0;
                            if ((o[t + 24 >> 1] | 0) > 7 ? (r[l >> 0] = TE(t, u, 6) | 0, PE(t, u, 7, f), c = a[e >> 2] | 0, (o[c + 24 >> 1] | 0) > 9) : 0) {
                                _ = (a[c + 8 >> 2] | 0) + (G(a[c + 20 >> 2] | 0, u) | 0) | 0;
                                m = a[c + 16 >> 2] | 0;
                                a[s >> 2] = m + (xE(_ + (o[(a[c + 36 >> 2] | 0) + 18 >> 1] | 0) | 0) | 0)
                            }
                            i = n[d >> 1] | 0;
                            t = i & 32767;
                            s = t & 65535;
                            switch (((t & 65535) / 1e4 | 0) & 3) {
                                case 1:
                                    {
                                        t = s + 56536 & 65535;
                                        break
                                    }
                                case 2:
                                    {
                                        t = s + 47536 & 65535;
                                        break
                                    }
                                case 3:
                                    {
                                        t = s + 38536 & 65535;
                                        break
                                    }
                                default:
                                    {}
                            }
                            n[d >> 1] = (t & 65535) + (i & -32768 & 65535);
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function Jf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        do {
                            if (i) {
                                e = e & 65535;
                                if (e & 32768 | 0) {
                                    e = zf(e & 32767, t) | 0;
                                    break
                                }
                                if (qf(i + 1656 | 0, e & 16383, t) | 0)
                                    if ((n[t + 6 >> 1] | 0) == -1) e = 1;
                                    else {
                                        e = t + 4 | 0;
                                        n[e >> 1] = n[e >> 1] | 16384;
                                        e = 1
                                    }
                                else e = 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Qf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        r = a[1677] | 0;
                        if (!r) sE();
                        else {
                            u = a[(e << 16 >> 16 > -1 ? r + 1656 | 0 : r + 988 | 0) >> 2] | 0;
                            s = a[u + 8 >> 2] | 0;
                            n = u + 20 | 0;
                            e = e & 16383;
                            h = s + (G(a[n >> 2] | 0, e) | 0) | 0;
                            r = o[(a[u + 36 >> 2] | 0) + 10 >> 1] | 0;
                            a[i >> 2] = xE(h + r + 4 | 0) | 0;
                            i = a[u + 16 >> 2] | 0;
                            a[t >> 2] = i + (xE(s + (G(a[n >> 2] | 0, e) | 0) + r | 0) | 0)
                        }
                        return
                    }

                    function Zf(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) sE();
                        else Kf(i + 1100 | 0, e, t);
                        return
                    }

                    function Kf(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        gS(i, 0, 36) | 0;
                        l = a[e >> 2] | 0;
                        r = t & 65535;
                        n[i >> 1] = EE(l, r, 0) | 0;
                        s = a[l + 8 >> 2] | 0;
                        u = l + 20 | 0;
                        t = s + (G(a[u >> 2] | 0, r) | 0) | 0;
                        h = o[(a[l + 36 >> 2] | 0) + 2 >> 1] | 0;
                        a[i + 8 >> 2] = xE(t + h + 4 | 0) | 0;
                        l = a[l + 16 >> 2] | 0;
                        a[i + 4 >> 2] = l + (xE(s + (G(a[u >> 2] | 0, r) | 0) + h | 0) | 0);
                        h = a[e >> 2] | 0;
                        u = a[h + 8 >> 2] | 0;
                        s = h + 20 | 0;
                        l = u + (G(a[s >> 2] | 0, r) | 0) | 0;
                        t = o[(a[h + 36 >> 2] | 0) + 4 >> 1] | 0;
                        a[i + 16 >> 2] = xE(l + t + 4 | 0) | 0;
                        h = a[h + 16 >> 2] | 0;
                        a[i + 12 >> 2] = h + (xE(u + (G(a[s >> 2] | 0, r) | 0) + t | 0) | 0);
                        ME(a[e >> 2] | 0, r, 3, i + 20 | 0, i + 24 | 0);
                        t = a[e >> 2] | 0;
                        e = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, r) | 0) | 0;
                        t = a[t + 36 >> 2] | 0;
                        a[i + 28 >> 2] = xE(e + (o[t + 8 >> 1] | 0) | 0) | 0;
                        a[i + 32 >> 2] = xE(e + (o[t + 10 >> 1] | 0) | 0) | 0;
                        return
                    }

                    function ec(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[1677] | 0;
                        do {
                            if (t) {
                                t = a[t + 1100 >> 2] | 0;
                                i = n[a[t + 40 >> 2] >> 1] | 0;
                                if (!(i << 16 >> 16)) {
                                    e = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, e & 65535) | 0) | 0;
                                    t = wE(e + (o[a[t + 36 >> 2] >> 1] | 0) | 0) | 0;
                                    break
                                } else {
                                    t = wE((a[t + 4 >> 2] | 0) + (i & 65535) | 0) | 0;
                                    break
                                }
                            } else {
                                sE();
                                t = -1
                            }
                        } while (0);
                        return t | 0
                    }

                    function tc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) sE();
                        else ic(i + 1100 | 0, e, t);
                        return
                    }

                    function ic(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[e >> 2] | 0;
                        t = t & 65535;
                        BE(a[r + 8 >> 2] | 0, a[r + 20 >> 2] | 0, a[r + 36 >> 2] | 0, t, 4, +h[i + 28 >> 2]);
                        e = a[e >> 2] | 0;
                        BE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, a[e + 36 >> 2] | 0, t, 5, +h[i + 32 >> 2]);
                        return
                    }

                    function rc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) sE();
                        else nc(a[i + 1248 >> 2] | 0, e, t);
                        return
                    }

                    function nc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        r[i >> 0] = TE(e, t, 0) | 0;
                        r[i + 1 >> 0] = TE(e, t, 1) | 0;
                        a[i + 4 >> 2] = SE(e, t, 2) | 0;
                        if ((o[e + 24 >> 1] | 0) > 3) t = SE(e, t, 3) | 0;
                        else t = -1;
                        a[i + 8 >> 2] = t;
                        return
                    }

                    function ac() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 64 | 0;
                        e = i;
                        t = a[1677] | 0;
                        if (t)
                            if (!(a[t + 68 >> 2] | 0)) e = 0;
                            else {
                                sc(t + 2292 | 0, e);
                                e = a[e + 56 >> 2] | 0
                            }
                        else {
                            sE();
                            e = 0
                        }
                        p = i;
                        return e | 0
                    }

                    function sc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        gS(t, 0, 60) | 0;
                        r = t + 28 | 0;
                        a[r >> 2] = 1;
                        n = t + 56 | 0;
                        a[n >> 2] = 0;
                        if (a[e + 48 >> 2] | 0 ? (i = a[e >> 2] | 0, a[t >> 2] = SE(i, 0, 0) | 0, a[t + 4 >> 2] = SE(i, 0, 1) | 0, a[t + 8 >> 2] = SE(i, 0, 2) | 0, a[t + 12 >> 2] = SE(i, 0, 3) | 0, a[t + 16 >> 2] = SE(i, 0, 4) | 0, PE(i, 0, 5, t + 20 | 0), i = a[e >> 2] | 0, a[t + 24 >> 2] = SE(i, 0, 6) | 0, a[r >> 2] = (TE(i, 0, 7) | 0) & 255, a[t + 32 >> 2] = SE(i, 0, 8) | 0, a[t + 36 >> 2] = SE(i, 0, 9) | 0, a[t + 40 >> 2] = SE(i, 0, 10) | 0, a[t + 44 >> 2] = SE(i, 0, 11) | 0, a[t + 48 >> 2] = SE(i, 0, 12) | 0, a[t + 52 >> 2] = SE(i, 0, 13) | 0, (o[i + 24 >> 1] | 0) > 14) : 0) {
                            r = a[i + 12 >> 2] | 0;
                            a[n >> 2] = r + (xE((a[i + 8 >> 2] | 0) + (o[(a[i + 36 >> 2] | 0) + 28 >> 1] | 0) | 0) | 0)
                        }
                        return
                    }

                    function oc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1677] | 0;
                        if (!i) sE();
                        else uc(i + 1532 | 0, e, t) | 0;
                        return
                    }

                    function uc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0;
                        l = i + 12 | 0;
                        f = i + 16 | 0;
                        c = i + 13 | 0;
                        d = i + 14 | 0;
                        p = i + 20 | 0;
                        v = i + 32 | 0;
                        a[l >> 2] = 0;
                        a[l + 4 >> 2] = 0;
                        a[l + 8 >> 2] = 0;
                        h[v >> 2] = 1.0;
                        m = i + 24 | 0;
                        a[m >> 2] = 0;
                        o = i + 36 | 0;
                        h[o >> 2] = 1.0;
                        u = i + 40 | 0;
                        a[u >> 2] = 0;
                        s = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > s >>> 0) {
                            t = a[e >> 2] | 0;
                            n[i >> 1] = EE(t, s, 0) | 0;
                            n[i + 2 >> 1] = EE(t, s, 1) | 0;
                            n[i + 4 >> 1] = EE(t, s, 2) | 0;
                            n[i + 6 >> 1] = EE(t, s, 3) | 0;
                            PE(t, s, 4, i + 8 | 0);
                            t = a[e >> 2] | 0;
                            e = n[t + 24 >> 1] | 0;
                            if (((((e & 65535) > 5 ? (r[l >> 0] = TE(t, s, 5) | 0, a[f >> 2] = (EE(t, s, 6) | 0) & 65535, (e & 65535) > 7) : 0) ? (r[c >> 0] = TE(t, s, 7) | 0, e << 16 >> 16 != 8) : 0) ? (n[d >> 1] = EE(t, s, 8) | 0, (e & 65535) > 12) : 0) ? (a[p >> 2] = (TE(t, s, 9) | 0) & 255, h[v >> 2] = +((TE(t, s, 10) | 0) & 255) / 100.0, a[m >> 2] = (TE(t, s, 11) | 0) & 255, h[o >> 2] = +((TE(t, s, 12) | 0) & 255) / 100.0, e << 16 >> 16 != 13) : 0) {
                                a[u >> 2] = IE(t, s, 13) | 0;
                                t = 1
                            } else t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function hc() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else e = a[e + 2512 >> 2] | 0;
                        return e | 0
                    }

                    function lc() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        a[e >> 2] = 0;
                        t = a[1677] | 0;
                        if (!t) {
                            sE();
                            e = 0
                        } else {
                            rS(t + 2516 | 0, e);
                            e = a[e >> 2] | 0
                        }
                        p = i;
                        return e | 0
                    }

                    function fc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        r = f + 8 | 0;
                        l = f;
                        h = a[1677] | 0;
                        e: do {
                            if (h) {
                                if (!(a[h + 68 >> 2] | 0)) {
                                    sE();
                                    i = 0;
                                    break
                                }
                                i = Jl(h + 1768 | 0, e, r) | 0;
                                if (!i) i = 0;
                                else {
                                    a[t + 4 >> 2] = o[r >> 1];
                                    a[t + 8 >> 2] = a[r + 4 >> 2];
                                    u = l + 4 | 0;
                                    s = 0;
                                    r = h;
                                    while (1) {
                                        if ((a[r + 1880 >> 2] & 65535) >>> 0 <= (s & 65535) >>> 0) break e;
                                        Ql(r + 1832 | 0, s, l) | 0;
                                        a[t >> 2] = a[l >> 2];
                                        if ((n[u >> 1] | 0) == e << 16 >> 16) break e;
                                        s = s + 1 << 16 >> 16;
                                        r = a[1677] | 0
                                    }
                                }
                            } else {
                                sE();
                                i = 0
                            }
                        } while (0);
                        p = f;
                        return i | 0
                    }

                    function cc(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        i = a[1677] | 0;
                        do {
                            if (i)
                                if (!(a[i + 68 >> 2] | 0)) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = (ql(i + 1832 | 0, e, t) | 0) != 0 & 1;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = r;
                        return e | 0
                    }

                    function dc(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1677] | 0;
                        do {
                            if (t)
                                if (!(a[t + 68 >> 2] | 0)) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = (Zl(t + 1768 | 0, e) | 0) << 16 >> 16 != -1 & 1;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function pc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        i = l + 8 | 0;
                        h = l;
                        u = a[1677] | 0;
                        e: do {
                            if (u) {
                                if (!(a[u + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                r = u + 1768 | 0;
                                s = Zl(r, e) | 0;
                                if (s << 16 >> 16 == -1) {
                                    sE();
                                    break
                                }
                                if (Jl(r, s, i) | 0) {
                                    a[t + 4 >> 2] = o[i >> 1];
                                    a[t + 8 >> 2] = a[i + 4 >> 2];
                                    r = h + 4 | 0;
                                    i = 0;
                                    e = u;
                                    while (1) {
                                        if ((a[e + 1880 >> 2] & 65535) >>> 0 <= (i & 65535) >>> 0) break e;
                                        Ql(e + 1832 | 0, i, h) | 0;
                                        a[t >> 2] = a[h >> 2];
                                        if ((n[r >> 1] | 0) == s << 16 >> 16) break e;
                                        i = i + 1 << 16 >> 16;
                                        e = a[1677] | 0
                                    }
                                }
                            } else sE()
                        } while (0);
                        p = l;
                        return
                    }

                    function vc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        i = u;
                        r = u + 8 | 0;
                        s = a[1677] | 0;
                        do {
                            if (s) {
                                if (!(a[s + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                if (!(ql(s + 1832 | 0, e, r) | 0)) {
                                    sE();
                                    break
                                }
                                if (Jl(s + 1768 | 0, n[r >> 1] | 0, i) | 0) {
                                    a[t + 4 >> 2] = o[i >> 1];
                                    a[t + 8 >> 2] = a[i + 4 >> 2];
                                    a[t >> 2] = e
                                }
                            } else sE()
                        } while (0);
                        p = u;
                        return
                    }

                    function mc(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            r = 0;
                        i = a[1677] | 0;
                        do {
                            if (i) {
                                if (!(a[i + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                r = i + 1768 | 0;
                                i = Zl(r, e) | 0;
                                if (i << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    _c(r, i, t);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function _c(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            e = a[e >> 2] | 0;
                            BE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, a[e + 36 >> 2] | 0, t, 1, i)
                        }
                        return
                    }

                    function bc(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        r = a[1677] | 0;
                        do {
                            if (r) {
                                if (!(a[r + 68 >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                if (!(ql(r + 1832 | 0, e, i) | 0)) {
                                    sE();
                                    break
                                } else {
                                    _c(r + 1768 | 0, n[i >> 1] | 0, t);
                                    break
                                }
                            } else sE()
                        } while (0);
                        p = s;
                        return
                    }

                    function gc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n = a[1677] | 0;
                        if (n) {
                            if (a[n + 2528 >> 2] | 0 ? yc(a[n + 632 >> 2] | 0, e, r) | 0 : 0) nE((o[r >> 1] | 0) + i | 0, 16, t, 16)
                        } else sE();
                        p = s;
                        return
                    }

                    function yc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if ((n[e + 24 >> 1] | 1) << 16 >> 16 == 11) {
                            t = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) | 0;
                            r = 1;
                            t = wE(t + (o[(a[e + 36 >> 2] | 0) + 18 >> 1] | 0) | 0) | 0
                        } else {
                            r = 0;
                            t = -1
                        }
                        n[i >> 1] = t;
                        return r | 0
                    }

                    function Ac(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n = a[1677] | 0;
                        if (n) {
                            if (a[n + 2528 >> 2] | 0 ? yc(a[n + 632 >> 2] | 0, e, r) | 0 : 0) nE(t, 16, (o[r >> 1] | 0) + i | 0, 16)
                        } else sE();
                        p = s;
                        return
                    }

                    function wc(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        s = h;
                        u = a[1677] | 0;
                        if (u) {
                            if (a[u + 2528 >> 2] | 0 ? Nf(a[u + 740 >> 2] | 0, e, s) | 0 : 0) nE((n & 65535) + r + (o[s >> 1] | 0) | 0, i, t, i)
                        } else sE();
                        p = h;
                        return
                    }

                    function xc(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        n = u;
                        s = u + 4 | 0;
                        h[n >> 2] = t;
                        r = a[1677] | 0;
                        if (r) {
                            if (a[r + 2528 >> 2] | 0 ? kc(a[r + 844 >> 2] | 0, e, s) | 0 : 0) nE((o[s >> 1] | 0) + i | 0, 4, n, 4)
                        } else sE();
                        p = u;
                        return
                    }

                    function kc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if ((o[e + 24 >> 1] | 0) > 3) {
                            r = 1;
                            e = EE(e, t & 65535, 3) | 0
                        } else {
                            r = 0;
                            e = -1
                        }
                        n[i >> 1] = e;
                        return r | 0
                    }

                    function Tc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n = a[1677] | 0;
                        if (a[n + 2528 >> 2] | 0 ? kc(a[n + 844 >> 2] | 0, e, r) | 0 : 0) nE(t, 4, (o[r >> 1] | 0) + i | 0, 4);
                        p = s;
                        return
                    }

                    function Ec() {
                        var e = 0;
                        e = a[1677] | 0;
                        if (!e) e = 0;
                        else e = a[e + 2220 >> 2] << 1;
                        return e | 0
                    }

                    function Sc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        switch (a[e >> 2] | 0) {
                            case 1:
                                {
                                    r = Pc(a[(a[e + 4 >> 2] | 0) + 8 >> 2] | 0) | 0;a[t >> 2] = r;
                                    if (r | 0 ? (Ic(r, a[e + 8 >> 2] | 0, i) | 0) == 0 : 0) sE();
                                    break
                                }
                            case 2:
                                {
                                    r = Pc(a[(a[e + 4 >> 2] | 0) + 8 >> 2] | 0) | 0;a[t >> 2] = r;
                                    if (r | 0 ? (Mc(r, a[e + 8 >> 2] | 0, i) | 0) == 0 : 0) sE();
                                    break
                                }
                            case 3:
                                {
                                    r = Pc(a[(a[e + 4 >> 2] | 0) + 8 >> 2] | 0) | 0;a[t >> 2] = r;
                                    if (r | 0 ? (Cc(r, a[e + 8 >> 2] & 65535, i) | 0) == 0 : 0) sE();
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function Pc(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Ic(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!(a[e + 68 >> 2] | 0)) {
                            n[i >> 1] = -1;
                            e = 0
                        } else {
                            e = Dc(e + 424 | 0, t) | 0;
                            n[i >> 1] = e;
                            e = e << 16 >> 16 != -1 & 1
                        }
                        return e | 0
                    }

                    function Mc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n[i >> 1] = -1;
                        do {
                            if (a[e + 68 >> 2] | 0) {
                                if (a[e + 472 >> 2] | 0 ? (a[e + 576 >> 2] | 0) == 0 : 0) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                if (Oc(e + 528 | 0, t, r) | 0) {
                                    n[i >> 1] = n[r + 4 >> 1] | 0;
                                    e = 1
                                } else e = 0
                            } else e = 0
                        } while (0);
                        p = s;
                        return e | 0
                    }

                    function Cc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if (!(a[e + 68 >> 2] | 0)) {
                            r = 0;
                            e = -1
                        } else {
                            e = (a[e + 472 >> 2] | 0) >>> 0 > (t & 65535) >>> 0;
                            r = e & 1;
                            e = e ? t : -1
                        }
                        n[i >> 1] = e;
                        return r | 0
                    }

                    function Oc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[e + 48 >> 2] | 0;
                        return Rc(e, (ps(e, t, r >>> 1, 0, r + -1 | 0) | 0) & 65535, i) | 0
                    }

                    function Rc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            s = a[e >> 2] | 0;
                            r = a[s + 12 >> 2] | 0;
                            e = (a[s + 8 >> 2] | 0) + (G(a[s + 20 >> 2] | 0, t) | 0) | 0;
                            t = a[s + 36 >> 2] | 0;
                            a[i >> 2] = r + (xE(e + (o[t >> 1] | 0) | 0) | 0);
                            n[i + 4 >> 1] = wE(e + (o[t + 2 >> 1] | 0) | 0) | 0;
                            t = 1
                        } else t = 0;
                        return t | 0
                    }

                    function Dc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 48 >> 2] | 0;
                        if ((t | 0) == -1 | (i | 0) < 1) e = -1;
                        else e = (qs(e, t, i >>> 1, i + -1 | 0) | 0) & 65535;
                        return e | 0
                    }

                    function Fc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return Bc(e, t & 65535) | 0
                    }

                    function Bc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 32 | 0;
                        i = r;
                        t = (Nc(e + 424 | 0, t, i) | 0) != 0;
                        p = r;
                        return t & (a[i + 12 >> 2] | 0) == 1 & 1 | 0
                    }

                    function Nc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 16 | 0;
                        f = m;
                        d = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > d >>> 0) {
                            l = i + 20 | 0;
                            a[l >> 2] = 0;
                            v = i + 29 | 0;
                            r[v >> 0] = 1;
                            c = i + 30 | 0;
                            n[c >> 1] = 0;
                            t = a[e >> 2] | 0;
                            s = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, d) | 0) | 0;
                            u = a[t + 36 >> 2] | 0;
                            a[i >> 2] = xE(s + (o[u >> 1] | 0) | 0) | 0;
                            a[i + 12 >> 2] = (TE(t, d, 1) | 0) & 255;
                            n[i + 4 >> 1] = EE(t, d, 2) | 0;
                            a[i + 8 >> 2] = IE(t, d, 3) | 0;
                            n[i + 6 >> 1] = EE(t, d, 4) | 0;
                            h = n[t + 24 >> 1] | 0;
                            if ((h & 65535) > 6 ? (a[l >> 2] = SE(t, d, 6) | 0, h << 16 >> 16 != 7) : 0) {
                                ME(t, d, 5, i + 16 | 0, f);
                                t = 0;
                                s = TE(a[e >> 2] | 0, d, 7) | 0
                            } else {
                                a[i + 16 >> 2] = s + (o[u + 10 >> 1] | 0);
                                t = 1;
                                s = 4
                            }
                            r[i + 28 >> 0] = s;
                            a[i + 24 >> 2] = t;
                            t = a[e >> 2] | 0;
                            s = n[t + 24 >> 1] | 0;
                            if ((s & 65535) > 8 ? (r[v >> 0] = TE(t, d, 8) | 0, s << 16 >> 16 != 9) : 0) {
                                n[c >> 1] = EE(t, d, 9) | 0;
                                t = 1
                            } else t = 1
                        } else t = 0;
                        p = m;
                        return t | 0
                    }

                    function Lc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0.0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0;
                        w = p;
                        p = p + 224 | 0;
                        _ = w + 48 | 0;
                        A = w + 44 | 0;
                        b = w + 16 | 0;
                        g = w;
                        aE(_, 164);
                        n[_ >> 1] = e;
                        n[_ + 2 >> 1] = -1;
                        o = i + 8 | 0;
                        a[_ + 48 >> 2] = a[o >> 2];
                        m = a[i + 4 >> 2] | 0;
                        u = _ + 56 | 0;
                        a[u >> 2] = m;
                        a[_ + 64 >> 2] = a[i + 20 >> 2];
                        e = a[i + 16 >> 2] | 0;
                        a[m + 132 >> 2] = e;
                        a[_ + 12 >> 2] = e;
                        n[_ + 6 >> 1] = -1;
                        n[_ + 124 >> 1] = -1;
                        gS(_ + 68 | 0, 255, (Fa() | 0) << 1) | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 8) break;
                            r[_ + 104 + e >> 0] = -1;
                            e = e + 1 | 0
                        }
                        n[_ + 160 >> 1] = -1;
                        e = a[u >> 2] | 0;
                        m = a[e + 68 >> 2] | 0;
                        s = +h[(a[o >> 2] | 0) + 96 >> 2];
                        if (s != 1.0) {
                            Uc(m, s);
                            e = a[u >> 2] | 0
                        }
                        v = Vc(a[(a[e + 60 >> 2] | 0) + 248 >> 2] | 0) | 0;
                        i = e + 8 | 0;
                        a[i >> 2] = (a[i >> 2] | 0) + v;
                        i = Xc(r[m + 101 >> 0] | 0) | 0;
                        e: do {
                            if ((i | 0) > 0) {
                                o = b + 6 | 0;
                                u = b + 1 | 0;
                                l = b + 4 | 0;
                                f = b + 24 | 0;
                                c = g + 1 | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) == (i | 0)) break e;
                                    d = jc(m, e) | 0;
                                    do {
                                        if (zf(d & 32767, b) | 0) {
                                            v = n[o >> 1] | 0;
                                            if (v << 16 >> 16 != -1) {
                                                Gc(0, v, g);
                                                if ((r[c >> 0] | 0) == 1) $c(m, d, g);
                                                break
                                            }
                                            if (r[u >> 0] | 0 ? (y = n[l >> 1] | 0, Hc(g, m, y), (a[g >> 2] | 0) == 2147483647) : 0) go(m, y, +h[f >> 2])
                                        }
                                    } while (0);
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        r[_ + 130 >> 0] = 0;
                        Wc(t, _);
                        e = _ + 36 | 0;
                        rS(e, A);
                        while (1) {
                            i = a[A >> 2] | 0;
                            if (!i) break;
                            ao(a[i >> 2] | 0);
                            rS(e, A)
                        }
                        p = w;
                        return
                    }

                    function Uc(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0;
                        i = e + 244 | 0;
                        if (+h[i >> 2] != t) {
                            h[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function Vc(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Xc(e) {
                        e = e | 0;
                        return e & 255 | 0
                    }

                    function jc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((t | 0) >= 0 ? (s[e + 101 >> 0] | 0 | 0) > (t | 0) : 0) e = n[(a[e + 92 >> 2] | 0) + (t << 1) >> 1] | 0;
                        else e = -1;
                        return e | 0
                    }

                    function Gc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        n = s;
                        if (!e) rc(t, n);
                        else nc(a[e + 2128 >> 2] | 0, t, n);
                        r[i >> 0] = r[n >> 0] | 0;
                        r[i + 1 >> 0] = r[n + 1 >> 0] | 0;
                        a[i + 4 >> 2] = a[n + 4 >> 2];
                        a[i + 8 >> 2] = a[n + 8 >> 2];
                        p = s;
                        return
                    }

                    function $c(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        n = iv(t) | 0;
                        t = (r[i >> 0] | 0) == 2 & 1;
                        go(e, n, 0.0);
                        rv(e, n, a[i + 4 >> 2] | 0, t);
                        return
                    }

                    function Hc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n + 4 | 0;
                        i = i & 65535;
                        if (!(Fl(i) | 0))
                            if (!(Ul(t, i, r, n) | 0)) i = 2147483647;
                            else i = a[a[r >> 2] >> 2] | 0;
                        else {
                            i = Hl(t, i) | 0;
                            if ((i | 0) == -1) i = 2147483647;
                            else i = a[(a[t + 20 >> 2] | 0) + (i << 2) >> 2] | 0
                        }
                        a[e >> 2] = i;
                        p = n;
                        return
                    }

                    function Wc(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = a[t + 32 >> 2] | 0;
                        e: do {
                            if (!i) switch (e | 0) {
                                case 1:
                                    {
                                        r = 15;
                                        break
                                    }
                                case 2:
                                    {
                                        r = 16;
                                        break
                                    }
                                case 3:
                                    {
                                        r = 17;
                                        break
                                    }
                                case 5:
                                    {
                                        r = 18;
                                        break
                                    }
                                case 9:
                                case 7:
                                case 6:
                                    {
                                        r = 19;
                                        break
                                    }
                                case 8:
                                    {
                                        r = 20;
                                        break
                                    }
                                case 11:
                                    {
                                        r = 21;
                                        break
                                    }
                                case 12:
                                    {
                                        r = 22;
                                        break
                                    }
                                default:
                                    {}
                            } else
                                do {
                                    switch (e | 0) {
                                        case 1:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 14;r = 15;
                                                break e
                                            }
                                        case 2:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 15;r = 16;
                                                break e
                                            }
                                        case 3:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 16;r = 17;
                                                break e
                                            }
                                        case 5:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 18;r = 18;
                                                break e
                                            }
                                        case 6:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 19;r = 19;
                                                break e
                                            }
                                        case 7:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 20;r = 19;
                                                break e
                                            }
                                        case 9:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 22;r = 19;
                                                break e
                                            }
                                        case 8:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 21;r = 20;
                                                break e
                                            }
                                        case 11:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 24;r = 21;
                                                break e
                                            }
                                        case 12:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 25;r = 22;
                                                break e
                                            }
                                        case 0:
                                            {
                                                a[(a[i + 12 >> 2] | 0) + 12 >> 2] = 13;
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                } while (0)
                        } while (0);
                        if ((r | 0) == 15) Yc(t);
                        else if ((r | 0) == 16) zc(t);
                        else if ((r | 0) == 17) qc(t);
                        else if ((r | 0) == 18) Jc(t);
                        else if ((r | 0) == 19) Qc(t, e, 0);
                        else if ((r | 0) == 20) Zc(t);
                        else if ((r | 0) == 21) Kc(t);
                        else if ((r | 0) == 22) ed(t);
                        return
                    }

                    function Yc(e) {
                        e = e | 0;
                        Hp(e);
                        return
                    }

                    function zc(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        x = p;
                        p = p + 80 | 0;
                        i = x + 32 | 0;
                        d = x + 16 | 0;
                        m = x + 8 | 0;
                        _ = x;
                        b = n[e >> 1] | 0;
                        g = e + 48 | 0;
                        y = a[g >> 2] | 0;
                        A = e + 56 | 0;
                        w = a[A >> 2] | 0;
                        s = e + 52 | 0;
                        o = a[s >> 2] | 0;
                        u = e + 115 | 0;
                        h = r[u >> 0] | 0;
                        Fp(y + 592 | 0, b, i);
                        f = a[i + 4 >> 2] | 0;
                        l = f + 2 | 0;
                        f = wE(f) | 0;
                        c = f & 65535;
                        v = e + 130 | 0;
                        t = r[v >> 0] | 0;
                        e: do {
                            if (!(t << 24 >> 24)) Bp(e);
                            else switch (f << 16 >> 16) {
                                case 2:
                                    {
                                        Bp(e);
                                        break e
                                    }
                                case 3:
                                    {
                                        Bp(e);
                                        break e
                                    }
                                default:
                                    {
                                        if (t << 24 >> 24 == 4) {
                                            A = e + 60 | 0;
                                            a[A >> 2] = a[w + 112 >> 2];
                                            Np(e);
                                            a[A >> 2] = 0;
                                            break e
                                        }
                                        n[d >> 1] = 0;n[d + 2 >> 1] = -1;a[d + 4 >> 2] = 0;t = a[i + 32 >> 2] | 0;
                                        if ((t | 0) != -1) {
                                            if (!(nd(e) | 0)) break e;
                                            pf(a[(a[g >> 2] | 0) + 1748 >> 2] | 0, t, m);
                                            t = a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0;
                                            a[t + 12 >> 2] = 11;
                                            ro(t, m, e, 0, 4, a[g >> 2] | 0, _);
                                            if (!(a[_ >> 2] | 0)) break e
                                        }
                                        t = a[i + 28 >> 2] | 0;
                                        if ((t | 0) != -1) {
                                            if (!(nd(e) | 0)) break e;
                                            pf(a[(a[g >> 2] | 0) + 1508 >> 2] | 0, t, m);
                                            t = a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0;
                                            a[t + 12 >> 2] = 11;
                                            ro(t, m, e, d, f << 16 >> 16 == 1 ? 2 : 4, a[g >> 2] | 0, _);
                                            if (!(a[_ >> 2] | 0)) break e
                                        }
                                        Lp(e, a[i >> 2] | 0);n[e >> 1] = wE(l) | 0;r[v >> 0] = 2;Wc(c, e);n[e >> 1] = b;a[g >> 2] = y;
                                        if ((a[A >> 2] | 0) != (w | 0)) {
                                            rp();
                                            np(a[A >> 2] | 0, a[e + 16 >> 2] | 0)
                                        }
                                        a[A >> 2] = w;a[s >> 2] = o;r[u >> 0] = h;
                                        break e
                                    }
                            }
                        } while (0);
                        p = x;
                        return
                    }

                    function qc(e) {
                        e = e | 0;
                        Pp(e);
                        return
                    }

                    function Jc(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 32 | 0;
                        t = m + 16 | 0;
                        u = m + 12 | 0;
                        h = m;
                        l = e + 48 | 0;
                        f = a[l >> 2] | 0;
                        c = n[e >> 1] | 0;
                        d = e + 56 | 0;
                        v = a[d >> 2] | 0;
                        gS(u, 0, 4) | 0;
                        _p(a[f + 2260 >> 2] | 0, c, t);
                        i = n[t + 6 >> 1] | 0;
                        do {
                            if (i << 16 >> 16 == -1) {
                                i = a[t >> 2] | 0;
                                s = (i | 0) == -1;
                                if (s) {
                                    Ss(a[f + 2200 >> 2] | 0, n[t + 4 >> 1] | 0, u);
                                    r = gp(a[u >> 2] | 0) | 0
                                } else r = bp(i) | 0;
                                if (!r) {
                                    NE();
                                    break
                                }
                                o = a[r + 8 >> 2] | 0;
                                Pc(o) | 0;
                                if (s) {
                                    i = u;
                                    t = o;
                                    o = 17
                                } else {
                                    s = o;
                                    o = 14
                                }
                            } else {
                                s = f + 2200 | 0;
                                Ss(a[s >> 2] | 0, i, u);
                                r = Md(a[u >> 2] | 0) | 0;
                                if (!r) {
                                    NE();
                                    break
                                }
                                i = a[t >> 2] | 0;
                                if ((i | 0) == -1) {
                                    Ss(a[s >> 2] | 0, n[t + 4 >> 1] | 0, u);
                                    t = a[r + 8 >> 2] | 0;
                                    Pc(t) | 0;
                                    i = u;
                                    o = 17;
                                    break
                                } else {
                                    s = a[r + 8 >> 2] | 0;
                                    Pc(s) | 0;
                                    o = 14;
                                    break
                                }
                            }
                        } while (0);
                        do {
                            if ((o | 0) == 14) {
                                i = yp(s, i) | 0;
                                if (i << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    a[h >> 2] = 1;
                                    o = 20;
                                    break
                                }
                            } else if ((o | 0) == 17) {
                                i = Ap(t, a[i >> 2] | 0) | 0;
                                if (i << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    a[h >> 2] = 2;
                                    t = u;
                                    o = 20;
                                    break
                                }
                            }
                        } while (0);
                        if ((o | 0) == 20) {
                            a[h + 8 >> 2] = a[t >> 2];
                            a[l >> 2] = Pc(a[r + 8 >> 2] | 0) | 0;
                            n[e >> 1] = i;
                            a[h + 4 >> 2] = r;
                            Qc(e, 5, h);
                            a[l >> 2] = f;
                            n[e >> 1] = c;
                            if ((a[d >> 2] | 0) != (v | 0)) {
                                rp();
                                np(a[d >> 2] | 0, a[e + 16 >> 2] | 0)
                            }
                            a[d >> 2] = v
                        }
                        p = m;
                        return
                    }

                    function Qc(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 80 | 0;
                        f = d + 32 | 0;
                        o = d;
                        c = e + 56 | 0;
                        e: do {
                            if ((s[(a[c >> 2] | 0) + 120 >> 0] | 0) <= 7) {
                                gS(f, 0, 40) | 0;
                                t: do {
                                    switch (t | 0) {
                                        case 5:
                                            if (!(Nc((a[e + 48 >> 2] | 0) + 424 | 0, n[e >> 1] | 0, o) | 0)) {
                                                NE();
                                                break e
                                            } else {
                                                u = a[o + 12 >> 2] | 0;
                                                h = n[o + 4 >> 1] | 0;
                                                break t
                                            }
                                        case 6:
                                            {
                                                u = 2;h = n[e >> 1] | 0;
                                                break
                                            }
                                        case 7:
                                            {
                                                u = 3;h = n[e >> 1] | 0;
                                                break
                                            }
                                        case 9:
                                            {
                                                u = 8;h = n[e >> 1] | 0;
                                                break
                                            }
                                        default:
                                            {
                                                u = 0;h = -1
                                            }
                                    }
                                } while (0);
                                rp();
                                np(a[c >> 2] | 0, a[e + 16 >> 2] | 0);
                                l = ap(a[c >> 2] | 0) | 0;
                                if (l | 0) {
                                    if ((t | 0) == 5) {
                                        nE(l + 84 | 0, 12, i, 12);
                                        t = 1
                                    } else {
                                        sp((a[e + 48 >> 2] | 0) + 424 | 0, u, h, o);
                                        a[l + 84 >> 2] = 1;
                                        a[l + 88 >> 2] = a[(a[c >> 2] | 0) + 88 >> 2];
                                        a[l + 92 >> 2] = a[o >> 2];
                                        t = 0
                                    }
                                    a[f + 36 >> 2] = t;
                                    a[c >> 2] = l;
                                    a[e + 52 >> 2] = 0;
                                    n[e >> 1] = h;
                                    r[e + 130 >> 0] = 0;
                                    Wc(u, e)
                                }
                            } else NE()
                        } while (0);
                        p = d;
                        return
                    }

                    function Zc(e) {
                        e = e | 0;
                        vd(e);
                        return
                    }

                    function Kc(e) {
                        e = e | 0;
                        ad(e);
                        return
                    }

                    function ed(e) {
                        e = e | 0;
                        td(e);
                        return
                    }

                    function td(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 32 | 0;
                        c = m + 16 | 0;
                        v = m;
                        n[c >> 1] = 0;
                        n[c + 2 >> 1] = 0;
                        n[c + 4 >> 1] = 0;
                        a[v >> 2] = 0;
                        a[v + 4 >> 2] = 0;
                        a[v + 8 >> 2] = 0;
                        a[v + 12 >> 2] = 0;
                        gS(v, 0, 16) | 0;
                        d = e + 48 | 0;
                        i = a[d >> 2] | 0;
                        t = a[i + 2956 >> 2] | 0;
                        e: do {
                            if (t | 0) {
                                l = e + 126 | 0;
                                h = 0;
                                while (1) {
                                    u = h & 65535;
                                    if (t >>> 0 <= u >>> 0) break;
                                    id(i + 2908 | 0, h, c);
                                    if ((n[c >> 1] | 0) == (n[l >> 1] | 0)) break;
                                    i = a[d >> 2] | 0;
                                    t = a[i + 2956 >> 2] | 0;
                                    if ((t + -1 | 0) == (u | 0)) break e;
                                    else h = h + 1 << 16 >> 16
                                }
                                l = c + 2 | 0;
                                t = n[l >> 1] | 0;
                                if (t << 16 >> 16) {
                                    f = v + 5 | 0;
                                    u = c + 4 | 0;
                                    h = v + 4 | 0;
                                    c = e + 128 | 0;
                                    i = 0;
                                    while (1) {
                                        if ((i & 65535) >= (t & 65535)) break;
                                        rd((a[d >> 2] | 0) + 2976 | 0, (o[u >> 1] | 0) + (i & 65535) & 65535, v);
                                        t = r[c >> 0] | 0;
                                        if (!((s[h >> 0] | 0) > (t & 255) ? 1 : (t & 255) > (s[f >> 0] | 0))) break;
                                        i = i + 1 << 16 >> 16;
                                        t = n[l >> 1] | 0
                                    }
                                    n[e >> 1] = n[v + 2 >> 1] | 0;
                                    h = v + 12 | 0;
                                    t: do {
                                        if (a[h >> 2] | 0 ? nd(e) | 0 : 0) {
                                            l = v + 8 | 0;
                                            f = a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0;
                                            i = 1;
                                            t = a[l >> 2] | 0;
                                            while (1) {
                                                if (!i) break t;
                                                u = t + 3 | 0;
                                                switch ((wE(t) | 0) << 16 >> 16) {
                                                    case 0:
                                                        {
                                                            i = 0;t = u;
                                                            break
                                                        }
                                                    case 36:
                                                        {
                                                            go(f, 125, +((wE(u) | 0) & 65535));Mo(f, 126, s[t + 5 >> 0] | 0);go(f, 127, +(s[t + 6 >> 0] | 0) / 100.0);t = t + 7 | 0;
                                                            break
                                                        }
                                                    case 37:
                                                        {
                                                            go(f, 128, +((wE(t + 5 | 0) | 0) & 65535));t = t + 7 | 0;
                                                            break
                                                        }
                                                    case 38:
                                                        {
                                                            go(f, 129, +((wE(u) | 0) & 65535));Mo(f, 130, s[t + 5 >> 0] | 0);go(f, 131, +(s[t + 6 >> 0] | 0) / 100.0);t = t + 7 | 0;
                                                            break
                                                        }
                                                    case 39:
                                                        {
                                                            go(f, 132, +((wE(u) | 0) & 65535) / 1.0e4);t = t + 5 | 0;
                                                            break
                                                        }
                                                    case 40:
                                                        {
                                                            go(f, 133, +((wE(u) | 0) & 65535));Mo(f, 134, s[t + 5 >> 0] | 0);go(f, 135, +(s[t + 6 >> 0] | 0) / 100.0);t = t + 7 | 0;
                                                            break
                                                        }
                                                    default:
                                                        {
                                                            t = u + (s[t + 2 >> 0] | 0) | 0;NE()
                                                        }
                                                }
                                                i = ((a[h >> 2] | 0) + (a[l >> 2] | 0) | 0) == (t | 0) ? 0 : i
                                            }
                                        }
                                    } while (0);
                                    t = v + 6 | 0;
                                    if ((r[c >> 0] | 0) != (r[t >> 0] | 0) ? nd(e) | 0 : 0) go(a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0, 3, +((s[c >> 0] | 0) - (s[t >> 0] | 0) | 0) * 100.0);
                                    t = e + 129 | 0;
                                    if ((r[t >> 0] | 0) != 127 ? nd(e) | 0 : 0) go(a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0, 0, +(s[t >> 0] | 0) / 127.0);
                                    Yc(e)
                                }
                            }
                        } while (0);
                        p = m;
                        return
                    }

                    function id(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(i, 0, 6) | 0;
                        e = a[e >> 2] | 0;
                        t = t & 65535;
                        n[i >> 1] = EE(e, t, 0) | 0;
                        n[i + 4 >> 1] = EE(e, t, 1) | 0;
                        n[i + 2 >> 1] = EE(e, t, 2) | 0;
                        return
                    }

                    function rd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(i, 0, 16) | 0;
                        e = a[e >> 2] | 0;
                        t = t & 65535;
                        n[i + 2 >> 1] = EE(e, t, 0) | 0;
                        r[i + 4 >> 0] = TE(e, t, 1) | 0;
                        r[i + 5 >> 0] = TE(e, t, 2) | 0;
                        r[i + 6 >> 0] = TE(e, t, 3) | 0;
                        ME(e, t, 4, i + 8 | 0, i + 12 | 0);
                        return
                    }

                    function nd(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 32 | 0;
                        if (!(a[t >> 2] | 0)) {
                            i = io() | 0;
                            if (!i) e = 0;
                            else {
                                eS(e + 36 | 0, i);
                                a[t >> 2] = i;
                                e = 1
                            }
                        } else e = 1;
                        return e | 0
                    }

                    function ad(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0;
                        E = p;
                        p = p + 80 | 0;
                        k = E + 72 | 0;
                        f = E + 4 | 0;
                        v = E;
                        sd(a[e + 48 >> 2] | 0, n[e >> 1] | 0, k);
                        aE(f, 68);
                        n[f + 6 >> 1] = n[e + 2 >> 1] | 0;
                        r[f >> 0] = r[e + 4 >> 0] | 0;
                        a[f + 40 >> 2] = a[k + 4 >> 2];
                        a[f + 44 >> 2] = s[k >> 0];
                        e: do {
                            if (nd(e) | 0) {
                                c = e + 32 | 0;
                                Io(a[(a[c >> 2] | 0) + 12 >> 2] | 0, 120, a[e + 12 >> 2] | 0);
                                d = f + 24 | 0;
                                a[d >> 2] = a[(a[c >> 2] | 0) + 12 >> 2];
                                m = e + 104 | 0;
                                _ = f + 12 | 0;
                                b = e + 20 | 0;
                                g = e + 120 | 0;
                                y = e + 124 | 0;
                                A = f + 2 | 0;
                                w = e + 56 | 0;
                                x = f + 20 | 0;
                                k = e + 36 | 0;
                                t = 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= 8) {
                                        T = 20;
                                        break
                                    }
                                    do {
                                        if (!i) {
                                            i = r[m >> 0] | 0;
                                            if (i << 24 >> 24 == -1) {
                                                a[_ >> 2] = 0;
                                                i = 8;
                                                break
                                            }
                                            a[_ >> 2] = i << 24 >> 24;
                                            t = io() | 0;
                                            if (!t) break e;
                                            od(a[t + 12 >> 2] | 0, a[(a[c >> 2] | 0) + 12 >> 2] | 0);
                                            i = 0;
                                            u = a[_ >> 2] | 0;
                                            T = 10
                                        } else {
                                            u = r[e + 104 + i >> 0] | 0;
                                            a[_ >> 2] = u;
                                            T = 10
                                        }
                                    } while (0);
                                    if ((T | 0) == 10) {
                                        T = 0;
                                        if ((u | 0) == -1) {
                                            T = 20;
                                            break
                                        }
                                    }
                                    if (t | 0) {
                                        if (!(nd(e) | 0)) break;
                                        od(a[(a[c >> 2] | 0) + 12 >> 2] | 0, a[t + 12 >> 2] | 0)
                                    }
                                    u = a[c >> 2] | 0;
                                    if (u | 0) a[d >> 2] = a[u + 12 >> 2];
                                    u = ud() | 0;
                                    if (!u) {
                                        T = 20;
                                        break
                                    }
                                    a[u + 8 >> 2] = 8;
                                    a[u + 56 >> 2] = a[b >> 2];
                                    S = a[g >> 2] | 0;
                                    h = u + 48 | 0;
                                    l = h;
                                    a[l >> 2] = S;
                                    a[l + 4 >> 2] = ((S | 0) < 0) << 31 >> 31;
                                    r[A >> 0] = n[y >> 1];
                                    n[y >> 1] = -1;
                                    hd(a[(a[c >> 2] | 0) + 12 >> 2] | 0, a[(a[w >> 2] | 0) + 68 >> 2] | 0);
                                    ld(a[(a[c >> 2] | 0) + 12 >> 2] | 0, a[(a[b >> 2] | 0) + 8 >> 2] | 0);
                                    l = t$[a[1826] & 7](2, f, a[w >> 2] | 0) | 0;
                                    if ((l | 0) > -1) {
                                        a[u + 12 >> 2] = a[x >> 2];
                                        a[u + 16 >> 2] = l;
                                        l = a[g >> 2] | 0;
                                        S = h;
                                        a[S >> 2] = l;
                                        a[S + 4 >> 2] = ((l | 0) < 0) << 31 >> 31;
                                        fd(u);
                                        rS(k, v);
                                        a[u + 60 >> 2] = a[a[v >> 2] >> 2];
                                        a[c >> 2] = 0;
                                        S = (cd() | 0) + 172 | 0;
                                        n[S >> 1] = (o[S >> 1] | 0) + 1
                                    }
                                    i = i + 1 | 0
                                }
                                if ((T | 0) == 20)
                                    if (!t) break;
                                ao(t)
                            }
                        } while (0);
                        p = E;
                        return
                    }

                    function sd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        pd(e + 2672 | 0, t, i);
                        return
                    }

                    function od(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        i = t + 105 | 0;
                        nE(e + 108 | 0, 96, t + 108 | 0, (s[i >> 0] | 0) * 12 | 0);
                        r[e + 105 >> 0] = r[i >> 0] | 0;
                        i = e + 28 | 0;
                        l = t + 29 | 0;
                        nE(a[e + 16 >> 2] | 0, (s[i >> 0] | 0) << 1, a[t + 16 >> 2] | 0, (s[l >> 0] | 0) << 1);
                        nE(a[e + 20 >> 2] | 0, (s[i >> 0] | 0) << 2, a[t + 20 >> 2] | 0, (s[l >> 0] | 0) << 2);
                        nE(a[e + 24 >> 2] | 0, s[i >> 0] | 0, a[t + 24 >> 2] | 0, s[l >> 0] | 0);
                        r[e + 29 >> 0] = r[l >> 0] | 0;
                        l = e + 100 | 0;
                        i = t + 101 | 0;
                        nE(a[e + 92 >> 2] | 0, (s[l >> 0] | 0) << 1, a[t + 92 >> 2] | 0, (s[i >> 0] | 0) << 1);
                        nE(a[e + 88 >> 2] | 0, (s[l >> 0] | 0) << 2, a[t + 88 >> 2] | 0, (s[i >> 0] | 0) << 2);
                        r[e + 101 >> 0] = r[i >> 0] | 0;
                        i = t + 103 | 0;
                        nE(a[e + 96 >> 2] | 0, (s[e + 102 >> 0] | 0) << 2, a[t + 96 >> 2] | 0, (s[i >> 0] | 0) << 2);
                        r[e + 103 >> 0] = r[i >> 0] | 0;
                        a[e + 40 >> 2] = a[t + 40 >> 2];
                        a[e + 36 >> 2] = a[t + 36 >> 2];
                        a[e + 32 >> 2] = a[t + 32 >> 2];
                        a[e + 44 >> 2] = a[t + 44 >> 2];
                        a[e + 80 >> 2] = a[t + 80 >> 2];
                        a[e + 84 >> 2] = a[t + 84 >> 2];
                        a[e + 208 >> 2] = a[t + 208 >> 2];
                        i = 0;
                        while (1) {
                            if ((i | 0) == 8) break;
                            a[e + 212 + (i << 2) >> 2] = a[t + 212 + (i << 2) >> 2];
                            i = i + 1 | 0
                        }
                        a[e + 244 >> 2] = a[t + 244 >> 2];
                        a[e + 248 >> 2] = a[t + 248 >> 2];
                        h = t + 284 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 284 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 48 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 288 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 288 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 48 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 304 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 304 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 60 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 296 | 0;
                        i = a[h >> 2] | 0;
                        u = e + 296 | 0;
                        n = a[u >> 2] | 0;
                        o = (n | 0) == 0;
                        do {
                            if (!i) {
                                if (!o) {
                                    po(n);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = i;
                                    i = a[h >> 2] | 0
                                }
                                a[n >> 2] = a[i >> 2];
                                a[n + 4 >> 2] = a[i + 4 >> 2];
                                a[n + 8 >> 2] = a[i + 8 >> 2];
                                a[n + 12 >> 2] = a[i + 12 >> 2];
                                a[n + 16 >> 2] = a[i + 16 >> 2];
                                a[n + 20 >> 2] = a[i + 20 >> 2];
                                a[n + 24 >> 2] = a[i + 24 >> 2];
                                a[n + 28 >> 2] = a[i + 28 >> 2]
                            }
                        } while (0);
                        h = t + 300 | 0;
                        i = a[h >> 2] | 0;
                        u = e + 300 | 0;
                        n = a[u >> 2] | 0;
                        o = (n | 0) == 0;
                        do {
                            if (!i) {
                                if (!o) {
                                    po(n);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = i;
                                    i = a[h >> 2] | 0
                                }
                                a[n >> 2] = a[i >> 2];
                                a[n + 4 >> 2] = a[i + 4 >> 2];
                                a[n + 8 >> 2] = a[i + 8 >> 2];
                                a[n + 12 >> 2] = a[i + 12 >> 2];
                                a[n + 16 >> 2] = a[i + 16 >> 2];
                                a[n + 20 >> 2] = a[i + 20 >> 2];
                                a[n + 24 >> 2] = a[i + 24 >> 2];
                                a[n + 28 >> 2] = a[i + 28 >> 2]
                            }
                        } while (0);
                        h = t + 292 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 292 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 56 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 308 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 308 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 52 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 312 | 0;
                        i = a[h >> 2] | 0;
                        u = e + 312 | 0;
                        n = a[u >> 2] | 0;
                        o = (n | 0) == 0;
                        do {
                            if (!i) {
                                if (!o) {
                                    po(n);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = i;
                                    i = a[h >> 2] | 0
                                }
                                a[n >> 2] = a[i >> 2];
                                a[n + 4 >> 2] = a[i + 4 >> 2];
                                a[n + 8 >> 2] = a[i + 8 >> 2];
                                a[n + 12 >> 2] = a[i + 12 >> 2];
                                a[n + 16 >> 2] = a[i + 16 >> 2]
                            }
                        } while (0);
                        a[e + 256 >> 2] = a[t + 256 >> 2];
                        r[e + 277 >> 0] = r[t + 277 >> 0] | 0;
                        a[e + 260 >> 2] = a[t + 260 >> 2];
                        r[e + 278 >> 0] = r[t + 278 >> 0] | 0;
                        a[e + 264 >> 2] = a[t + 264 >> 2];
                        r[e + 279 >> 0] = r[t + 279 >> 0] | 0;
                        a[e + 268 >> 2] = a[t + 268 >> 2];
                        r[e + 280 >> 0] = r[t + 280 >> 0] | 0;
                        a[e + 272 >> 2] = a[t + 272 >> 2];
                        r[e + 281 >> 0] = r[t + 281 >> 0] | 0;
                        a[e + 252 >> 2] = a[t + 252 >> 2];
                        r[e + 276 >> 0] = r[t + 276 >> 0] | 0;
                        a[e + 364 >> 2] = a[t + 364 >> 2];
                        l = 0;
                        while (1) {
                            if ((l | 0) == 8) break;
                            h = t + 332 + (l << 2) | 0;
                            n = a[h >> 2] | 0;
                            u = e + 332 + (l << 2) | 0;
                            i = a[u >> 2] | 0;
                            o = (i | 0) == 0;
                            do {
                                if (!n) {
                                    if (!o) {
                                        po(i);
                                        a[u >> 2] = 0
                                    }
                                } else {
                                    if (o) {
                                        i = Dl() | 0;
                                        a[u >> 2] = i;
                                        if (!i) break;
                                        n = a[h >> 2] | 0
                                    }
                                    o = i + 40 | 0;
                                    do {
                                        a[i >> 2] = a[n >> 2];
                                        i = i + 4 | 0;
                                        n = n + 4 | 0
                                    } while ((i | 0) < (o | 0))
                                }
                            } while (0);
                            l = l + 1 | 0
                        }
                        h = t + 316 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 316 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 40 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 328 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 328 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 40 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 320 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 320 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 40 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        h = t + 324 | 0;
                        n = a[h >> 2] | 0;
                        u = e + 324 | 0;
                        i = a[u >> 2] | 0;
                        o = (i | 0) == 0;
                        do {
                            if (!n) {
                                if (!o) {
                                    po(i);
                                    a[u >> 2] = 0
                                }
                            } else {
                                if (o) {
                                    i = Dl() | 0;
                                    a[u >> 2] = i;
                                    if (!i) break;
                                    n = a[h >> 2] | 0
                                }
                                o = i + 40 | 0;
                                do {
                                    a[i >> 2] = a[n >> 2];
                                    i = i + 4 | 0;
                                    n = n + 4 | 0
                                } while ((i | 0) < (o | 0))
                            }
                        } while (0);
                        dd(e + 204 | 0, t + 204 | 0);
                        r[e + 8 >> 0] = r[t + 8 >> 0] | 0;
                        r[e + 9 >> 0] = r[t + 9 >> 0] | 0;
                        return
                    }

                    function ud() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 100 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = e + 48 | 0;
                            a[i >> 2] = 0;
                            a[i + 4 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function hd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 36 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function ld(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 40 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function fd(e) {
                        e = e | 0;
                        tS((a[1698] | 0) + 124 | 0, e);
                        return
                    }

                    function cd() {
                        return a[1698] | 0
                    }

                    function dd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e: do {
                            if (!(a[e >> 2] | 0))
                                while (1) {
                                    t = a[t >> 2] | 0;
                                    if (!t) break e;
                                    i = Ol() | 0;
                                    if (!i) break e;
                                    Rl(i, e);
                                    a[i + 4 >> 2] = a[t + 4 >> 2];
                                    a[i + 8 >> 2] = a[t + 8 >> 2];
                                    a[i + 12 >> 2] = a[t + 12 >> 2];
                                    a[i + 16 >> 2] = a[t + 16 >> 2];
                                    a[i + 20 >> 2] = a[t + 20 >> 2];
                                    a[i + 24 >> 2] = a[t + 24 >> 2];
                                    n[i + 28 >> 1] = n[t + 28 >> 1] | 0;
                                    r[i + 30 >> 0] = r[t + 30 >> 0] | 0;
                                    r[i + 31 >> 0] = r[t + 31 >> 0] | 0
                                }
                        } while (0);
                        return
                    }

                    function pd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(i, 0, 8) | 0;
                        e = a[e >> 2] | 0;
                        t = t & 65535;
                        r[i >> 0] = TE(e, t, 0) | 0;
                        PE(e, t, 1, i + 4 | 0);
                        return
                    }

                    function vd(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0;
                        S = p;
                        p = p + 160 | 0;
                        w = S + 96 | 0;
                        k = S + 32 | 0;
                        b = S + 16 | 0;
                        g = S + 8 | 0;
                        d = S;
                        n[b >> 1] = 0;
                        v = b + 2 | 0;
                        n[v >> 1] = -1;
                        m = b + 4 | 0;
                        a[m >> 2] = 0;
                        c = e + 130 | 0;
                        _ = (r[c >> 0] | 0) == 0 ? 0 : 4;
                        y = e + 48 | 0;
                        x = a[y >> 2] | 0;
                        md(x + 972 | 0, n[e >> 1] | 0, w, a[x + 56 >> 2] | 0);
                        x = _d() | 0;
                        e: do {
                            if (x | 0 ? (T = e + 56 | 0, E = bd(a[y >> 2] | 0, a[T >> 2] | 0) | 0, E | 0) : 0) {
                                A = e + 52 | 0;
                                if (!(a[A >> 2] | 0)) {
                                    t = gd() | 0;
                                    if (!t) {
                                        yd(x);
                                        Ad(E);
                                        break
                                    } else l = t
                                } else l = 0;
                                f = e + 16 | 0;
                                do {
                                    if (!(a[f >> 2] | 0)) t = 0;
                                    else {
                                        t = ud() | 0;
                                        if (!t) {
                                            yd(x);
                                            Ad(E);
                                            if (!l) break e;
                                            wd(l);
                                            break e
                                        }
                                        h = a[e + 120 >> 2] | 0;
                                        u = t + 48 | 0;
                                        a[u >> 2] = h;
                                        a[u + 4 >> 2] = ((h | 0) < 0) << 31 >> 31;
                                        u = e + 32 | 0;
                                        if (!(a[u >> 2] | 0)) {
                                            ld(a[E + 92 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            break
                                        }
                                        rS(e + 36 | 0, g);
                                        h = a[u >> 2] | 0;
                                        i = t + 60 | 0;
                                        if ((h | 0) != (a[a[g >> 2] >> 2] | 0)) a[i >> 2] = h;
                                        a[i >> 2] = h;
                                        a[u >> 2] = 0;
                                        ld(a[h + 12 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                        ld(a[E + 92 >> 2] | 0, a[(a[i >> 2] | 0) + 12 >> 2] | 0)
                                    }
                                } while (0);
                                u = a[A >> 2] | 0;
                                do {
                                    if (u) {
                                        i = a[f >> 2] | 0;
                                        if (!i) {
                                            tS(u + 8 | 0, x + 4 | 0);
                                            break
                                        } else {
                                            tS(i + 8 | 0, x + 4 | 0);
                                            a[x + 16 >> 2] = a[e + 20 >> 2];
                                            break
                                        }
                                    } else {
                                        tS(l + 8 | 0, x + 4 | 0);
                                        xd(l);
                                        a[A >> 2] = l
                                    }
                                } while (0);
                                a[(a[T >> 2] | 0) + 72 >> 2] = a[A >> 2];
                                i = a[w + 36 >> 2] | 0;
                                if ((i | 0) != -1) {
                                    pf(a[(a[y >> 2] | 0) + 1628 >> 2] | 0, i, g);
                                    ro(a[E + 92 >> 2] | 0, g, e, 0, 4, a[y >> 2] | 0, d);
                                    if (!(a[d >> 2] | 0)) {
                                        if (t | 0) Wh(t);
                                        r[E + 68 >> 0] = 1;
                                        t = 0
                                    }
                                }
                                if ((r[c >> 0] | 0) == 0 ? (s[(a[y >> 2] | 0) + 100 >> 0] | 0) < 2 : 0) r[e + 113 >> 0] = 1;
                                i = a[w + 32 >> 2] | 0;
                                if ((i | 0) == -1) {
                                    if (((iu(a[(a[y >> 2] | 0) + 64 >> 2] | 0) | 0) + -18022400 | 0) >>> 0 < 1114112) kd(a[E + 92 >> 2] | 0)
                                } else {
                                    pf(a[(a[y >> 2] | 0) + 1388 >> 2] | 0, i, g);
                                    ro(a[E + 92 >> 2] | 0, g, e, b, _, a[y >> 2] | 0, d);
                                    if (!(a[d >> 2] | 0)) {
                                        if (t | 0) Wh(t);
                                        r[E + 68 >> 0] = 1;
                                        t = 0
                                    }
                                }
                                i = e + 113 | 0;
                                if (!(r[i >> 0] | 0)) h = t;
                                else {
                                    d = a[y >> 2] | 0;
                                    n[b >> 1] = n[d + 102 >> 1] | 0;
                                    n[v >> 1] = 0;
                                    a[m >> 2] = s[d + 100 >> 0];
                                    if (!(Ro(b, e, 0) | 0)) {
                                        if (t | 0) Wh(t);
                                        r[E + 68 >> 0] = 1;
                                        t = 0
                                    }
                                    r[i >> 0] = 0;
                                    h = t
                                }
                                t = a[e + 64 >> 2] | 0;
                                if (t | 0) ro(a[E + 92 >> 2] | 0, t, e, b, _, a[y >> 2] | 0, g);
                                g = Td(a[(a[T >> 2] | 0) + 60 >> 2] | 0) | 0;
                                t = n[e + 160 >> 1] | 0;
                                t = t << 16 >> 16 == -1 ? g : t;
                                if ((t & 65535) < (o[w + 42 >> 1] | 0)) i = t;
                                else {
                                    NE();
                                    i = 0
                                }
                                u = wE(((i & 65535) << 1) + (a[w + 4 >> 2] | 0) | 0) | 0;
                                Ed((a[y >> 2] | 0) + 1100 | 0, u, k);
                                if (h | 0) {
                                    a[h + 8 >> 2] = 4;
                                    a[h + 16 >> 2] = a[x + 44 >> 2];
                                    a[h + 12 >> 2] = a[A >> 2];
                                    a[h + 56 >> 2] = a[e + 20 >> 2];
                                    fd(h)
                                }
                                tS(x + 20 | 0, E + 80 | 0);
                                t = a[e + 12 >> 2] | 0;
                                if (t | 0) {
                                    a[E + 52 >> 2] = t;
                                    r[E + 72 >> 0] = 1
                                }
                                r[E + 189 >> 0] = r[k + 33 >> 0] | 0;
                                n[E + 174 >> 1] = n[k + 40 >> 1] | 0;
                                A = r[k + 32 >> 0] | 0;
                                r[E + 190 >> 0] = A;
                                r[E + 191 >> 0] = r[k + 34 >> 0] | 0;
                                a[E + 168 >> 2] = ((a[k + 20 >> 2] | 0) * 1e3 | 0) + (o[k + 54 >> 1] | 0);
                                g = fM(a[k + 24 >> 2] | 0, 0, 1e3, 0) | 0;
                                g = aM(g | 0, P | 0, o[k + 56 >> 1] | 0, 0) | 0;
                                y = E + 160 | 0;
                                a[y >> 2] = g;
                                a[y + 4 >> 2] = P;
                                n[E + 64 >> 1] = u;
                                n[E + 176 >> 1] = i;
                                r[E + 193 >> 0] = a[k + 60 >> 2];
                                if ((A & 255) > 1) {
                                    n[E + 182 >> 1] = n[k + 50 >> 1] | 0;
                                    a[E + 104 >> 2] = a[k + 8 >> 2];
                                    a[E + 108 >> 2] = a[k + 12 >> 2]
                                }
                                a[x + 12 >> 2] = a[T >> 2];
                                a[x + 36 >> 2] = E;
                                n[x + 48 >> 1] = n[e >> 1] | 0;
                                if ((r[E + 68 >> 0] | 0) != 1) {
                                    Sd(e, 0, w, k, E);
                                    Pd(e, n[k + 46 >> 1] | 0, n[k + 48 >> 1] | 0, E)
                                }
                            }
                        } while (0);
                        p = S;
                        return
                    }

                    function md(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0;
                        x = p;
                        p = p + 16 | 0;
                        w = x;
                        a[w >> 2] = 0;
                        I = a[e >> 2] | 0;
                        l = n[I + 24 >> 1] | 0;
                        a[i >> 2] = 0;
                        M = i + 24 | 0;
                        a[M >> 2] = 0;
                        k = i + 4 | 0;
                        a[k >> 2] = 0;
                        P = i + 28 | 0;
                        a[P >> 2] = 0;
                        c = i + 48 | 0;
                        r[c >> 0] = 0;
                        d = i + 44 | 0;
                        n[d >> 1] = -1;
                        v = i + 46 | 0;
                        n[v >> 1] = 0;
                        _ = i + 36 | 0;
                        a[_ >> 2] = -1;
                        b = i + 12 | 0;
                        a[b >> 2] = 0;
                        g = i + 52 | 0;
                        a[g >> 2] = 0;
                        y = i + 16 | 0;
                        a[y >> 2] = 0;
                        A = i + 50 | 0;
                        n[A >> 1] = -1;
                        u = t & 65535;
                        T = EE(I, u, 0) | 0;
                        h[i + 20 >> 2] = T << 16 >> 16 == 0 ? 1.0 : +(T & 65535) / 100.0;
                        n[i + 40 >> 1] = EE(I, u, 1) | 0;
                        T = a[I + 8 >> 2] | 0;
                        E = I + 20 | 0;
                        t = T + (G(a[E >> 2] | 0, u) | 0) | 0;
                        S = o[(a[I + 36 >> 2] | 0) + 4 >> 1] | 0;
                        a[M >> 2] = xE(t + S + 4 | 0) | 0;
                        I = a[I + 16 >> 2] | 0;
                        a[i >> 2] = I + (xE(T + (G(a[E >> 2] | 0, u) | 0) + S | 0) | 0);
                        S = a[e >> 2] | 0;
                        a[i + 32 >> 2] = $s(S, u, 3) | 0;
                        n[i + 42 >> 1] = EE(S, u, 4) | 0;
                        E = a[S + 8 >> 2] | 0;
                        T = S + 20 | 0;
                        I = E + (G(a[T >> 2] | 0, u) | 0) | 0;
                        t = o[(a[S + 36 >> 2] | 0) + 10 >> 1] | 0;
                        a[P >> 2] = xE(I + t + 4 | 0) | 0;
                        S = a[S + 16 >> 2] | 0;
                        a[k >> 2] = S + (xE(E + (G(a[T >> 2] | 0, u) | 0) + t | 0) | 0);
                        e: do {
                            if (!s) {
                                t = a[e >> 2] | 0;
                                if (((o[t + 24 >> 1] | 0) > 8 ? (ME(t, u, 6, i + 8 | 0, w), r[c >> 0] = (a[w >> 2] | 0) >>> 1, m = a[e >> 2] | 0, n[d >> 1] = EE(m, u, 7) | 0, n[v >> 1] = EE(m, u, 8) | 0, f = n[m + 24 >> 1] | 0, (f & 65535) > 9) : 0) ? (a[_ >> 2] = $s(m, u, 9) | 0, (f & 65535) > 13) : 0) {
                                    ME(m, u, 10, b, g);
                                    M = a[e >> 2] | 0;
                                    a[y >> 2] = (TE(M, u, 11) | 0) & 255;
                                    I = (a[M + 8 >> 2] | 0) + (G(a[M + 20 >> 2] | 0, u) | 0) | 0;
                                    n[A >> 1] = wE(I + (o[(a[M + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0
                                }
                            } else switch (15 - (l & 65535) | 0) {
                                case 0:
                                    {
                                        ME(a[e >> 2] | 0, u, 6, i + 8 | 0, w);r[c >> 0] = (a[w >> 2] | 0) >>> 1;M = a[e >> 2] | 0;n[d >> 1] = EE(M, u, 7) | 0;n[v >> 1] = EE(M, u, 8) | 0;a[_ >> 2] = $s(M, u, 9) | 0;ME(M, u, 10, b, g);M = a[e >> 2] | 0;a[y >> 2] = (TE(M, u, 11) | 0) & 255;n[A >> 1] = wE((a[M + 8 >> 2] | 0) + (G(a[M + 20 >> 2] | 0, u) | 0) + (o[(a[M + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0;
                                        break e
                                    }
                                case 4:
                                    {
                                        ME(a[e >> 2] | 0, u, 6, i + 8 | 0, w);r[c >> 0] = (a[w >> 2] | 0) >>> 1;M = a[e >> 2] | 0;n[d >> 1] = EE(M, u, 7) | 0;n[v >> 1] = EE(M, u, 8) | 0;a[_ >> 2] = $s(M, u, 9) | 0;
                                        break e
                                    }
                                case 7:
                                    {
                                        ME(a[e >> 2] | 0, u, 6, i + 8 | 0, w);r[c >> 0] = (a[w >> 2] | 0) >>> 1;M = a[e >> 2] | 0;n[d >> 1] = EE(M, u, 7) | 0;n[v >> 1] = EE(M, u, 8) | 0;
                                        break e
                                    }
                                default:
                                    break e
                            }
                        } while (0);
                        p = x;
                        return
                    }

                    function _d() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 36 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = e + 44 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + 65536
                        }
                        p = t;
                        return e | 0
                    }

                    function bd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        rS((a[1698] | 0) + 52 | 0, i);
                        i = a[i >> 2] | 0;
                        if (!i) {
                            NE();
                            e = 0
                        } else {
                            i = a[i >> 2] | 0;
                            ip(i);
                            a[i + 4 >> 2] = t;
                            a[i + 20 >> 2] = e;
                            e = i + 60 | 0;
                            a[e >> 2] = (a[e >> 2] | 0) + 65536;
                            r[i + 70 >> 0] = r[t + 120 >> 0] | 0;
                            e = Dd(a[i + 88 >> 2] | 0, 8) | 0;
                            a[i + 92 >> 2] = e;
                            hd(e, a[t + 68 >> 2] | 0);
                            e = i
                        }
                        p = n;
                        return e | 0
                    }

                    function gd() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 76 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            i = e + 24 | 0;
                            a[i >> 2] = 0;
                            a[i + 4 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function yd(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        t = n;
                        i = e + 20 | 0;
                        e: do {
                            if (KE(a[e + 28 >> 2] | 0) | 0) {
                                rS(i, t);
                                while (1) {
                                    r = a[t >> 2] | 0;
                                    if (!r) break e;
                                    Ad(a[r >> 2] | 0);
                                    rS(i, t)
                                }
                            }
                        } while (0);
                        tp(e);
                        r = e + 44 | 0;
                        a[r >> 2] = (a[r >> 2] | 0) + 65536;
                        tS((a[1698] | 0) + 36 | 0, e + 4 | 0);
                        p = n;
                        return
                    }

                    function Ad(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        t = n;
                        i = e + 116 | 0;
                        e: do {
                            if (KE(a[e + 124 >> 2] | 0) | 0) {
                                rS(i, t);
                                while (1) {
                                    r = a[t >> 2] | 0;
                                    if (!r) break e;
                                    Wd(a[r >> 2] | 0);
                                    rS(i, t)
                                }
                            }
                        } while (0);
                        r = e + 92 | 0;
                        uo(a[r >> 2] | 0);
                        a[r >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        r = e + 60 | 0;
                        a[r >> 2] = (a[r >> 2] | 0) + 65536;
                        tS((a[1698] | 0) + 52 | 0, e + 80 | 0);
                        p = n;
                        return
                    }

                    function wd(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        r = e + 8 | 0;
                        if (KE(a[e + 16 >> 2] | 0) | 0) {
                            rS(r, i);
                            while (1) {
                                t = a[i >> 2] | 0;
                                if (!t) break;
                                t = a[t >> 2] | 0;
                                if (!(a[t >> 2] | 0)) Ad(t);
                                else yd(t);
                                rS(r, i)
                            }
                        }
                        tS((a[1698] | 0) + 76 | 0, e);
                        p = n;
                        return
                    }

                    function xd(e) {
                        e = e | 0;
                        tS((a[1698] | 0) + 88 | 0, e);
                        return
                    }

                    function kd(e) {
                        e = e | 0;
                        var t = 0;
                        go(e, 104, 1.0);
                        t = 0;
                        while (1) {
                            if ((t | 0) == 7) break;
                            go(e, t + 105 & 65535, 0.0);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function Td(e) {
                        e = e | 0;
                        return (cI(a[e + 268 >> 2] | 0) | 0) & 65535 | 0
                    }

                    function Ed(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0;
                        T = p;
                        p = p + 16 | 0;
                        _ = T;
                        a[_ >> 2] = 0;
                        b = i + 4 | 0;
                        a[b >> 2] = 0;
                        g = i + 44 | 0;
                        n[g >> 1] = 0;
                        y = i + 46 | 0;
                        n[y >> 1] = -1;
                        A = i + 48 | 0;
                        n[A >> 1] = 0;
                        x = i + 50 | 0;
                        n[x >> 1] = 0;
                        k = i + 8 | 0;
                        a[k >> 2] = 0;
                        f = i + 12 | 0;
                        a[f >> 2] = 0;
                        c = i + 52 | 0;
                        n[c >> 1] = -1;
                        d = i + 60 | 0;
                        a[d >> 2] = 0;
                        v = i + 54 | 0;
                        n[v >> 1] = 0;
                        m = i + 56 | 0;
                        n[m >> 1] = 0;
                        P = a[e >> 2] | 0;
                        t = t & 65535;
                        n[i + 36 >> 1] = EE(P, t, 0) | 0;
                        S = a[P + 8 >> 2] | 0;
                        E = P + 20 | 0;
                        I = S + (G(a[E >> 2] | 0, t) | 0) | 0;
                        s = o[(a[P + 36 >> 2] | 0) + 2 >> 1] | 0;
                        a[i + 16 >> 2] = xE(I + s + 4 | 0) | 0;
                        P = a[P + 16 >> 2] | 0;
                        a[i >> 2] = P + (xE(S + (G(a[E >> 2] | 0, t) | 0) + s | 0) | 0);
                        s = a[e >> 2] | 0;
                        a[i + 28 >> 2] = $s(s, t, 2) | 0;
                        r[i + 32 >> 0] = TE(s, t, 3) | 0;
                        n[i + 38 >> 1] = EE(s, t, 4) | 0;
                        r[i + 33 >> 0] = TE(s, t, 5) | 0;
                        n[i + 40 >> 1] = EE(s, t, 6) | 0;
                        r[i + 34 >> 0] = TE(s, t, 7) | 0;
                        r[i + 35 >> 0] = TE(s, t, 8) | 0;
                        n[i + 42 >> 1] = EE(s, t, 9) | 0;
                        a[i + 20 >> 2] = SE(s, t, 10) | 0;
                        a[i + 24 >> 2] = SE(s, t, 11) | 0;
                        if (((((o[s + 24 >> 1] | 0) > 12 ? (ME(s, t, 12, b, _), n[g >> 1] = (a[_ >> 2] | 0) >>> 1, u = a[e >> 2] | 0, h = n[u + 24 >> 1] | 0, (h & 65535) > 14) : 0) ? (n[y >> 1] = EE(u, t, 13) | 0, n[A >> 1] = EE(u, t, 14) | 0, h << 16 >> 16 != 15) : 0) ? (n[x >> 1] = EE(u, t, 15) | 0, ME(u, t, 16, k, _), ME(a[e >> 2] | 0, t, 17, f, _), w = a[e >> 2] | 0, n[c >> 1] = EE(w, t, 18) | 0, l = n[w + 24 >> 1] | 0, (l & 65535) > 19) : 0) ? (a[d >> 2] = (TE(w, t, 19) | 0) & 255, l << 16 >> 16 != 20) : 0) {
                            n[v >> 1] = EE(w, t, 20) | 0;
                            n[m >> 1] = EE(w, t, 21) | 0
                        }
                        p = T;
                        return
                    }

                    function Sd(e, t, i, u, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        u = u | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0.0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            G = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0,
                            Z = 0,
                            K = 0,
                            ee = 0,
                            te = 0,
                            ie = 0,
                            re = 0,
                            ne = 0,
                            ae = 0,
                            se = 0,
                            oe = 0,
                            ue = 0,
                            he = 0,
                            le = 0,
                            fe = 0,
                            ce = 0,
                            de = 0,
                            pe = 0,
                            ve = 0,
                            me = 0,
                            _e = 0,
                            be = 0;
                        be = p;
                        p = p + 144 | 0;
                        ce = be + 120 | 0;
                        de = be + 80 | 0;
                        pe = be + 40 | 0;
                        ve = be + 32 | 0;
                        w = be + 130 | 0;
                        me = be + 136 | 0;
                        se = be + 24 | 0;
                        oe = be + 16 | 0;
                        ue = be + 128 | 0;
                        he = be;
                        n[w >> 1] = 0;
                        _e = e + 56 | 0;
                        A = bo(a[(a[_e >> 2] | 0) + 60 >> 2] | 0) | 0;
                        fe = (t | 0) != 0;
                        if (fe) {
                            k = a[t >> 2] | 0;
                            a[ve >> 2] = k;
                            ne = n[t + 32 >> 1] | 0;
                            d = t + 34 | 0;
                            _ = s[t + 42 >> 0] | 0;
                            b = o[t + 36 >> 1] | 0;
                            g = 0;
                            v = t + 4 | 0;
                            m = t + 44 | 0;
                            f = t + 8 | 0;
                            ae = t + 48 | 0;
                            c = t + 12 | 0;
                            y = 0
                        } else {
                            a[ve >> 2] = a[i >> 2];
                            k = a[u >> 2] | 0;
                            ne = n[i + 40 >> 1] | 0;
                            d = n[u + 38 >> 1] | 0;
                            n[l + 178 >> 1] = d << 16 >> 16 > -1 ? (d & 65535) + 1 & 65535 : d;
                            d = i + 44 | 0;
                            _ = s[i + 48 >> 0] | 0;
                            b = o[i + 46 >> 1] | 0;
                            g = o[u + 44 >> 1] | 0;
                            v = i + 8 | 0;
                            m = i + 52 | 0;
                            f = i + 12 | 0;
                            ae = i + 50 | 0;
                            c = i + 16 | 0;
                            y = a[u + 4 >> 2] | 0
                        }
                        f = a[f >> 2] | 0;
                        re = a[c >> 2] | 0;
                        do {
                            if (ne << 16 >> 16) {
                                Y = a[v >> 2] | 0;
                                W = n[d >> 1] | 0;
                                j = (a[m >> 2] | 0) >>> 1 & 65535;
                                ie = l + 92 | 0;
                                z = a[ie >> 2] | 0;
                                H = l + 66 | 0;
                                $ = l + 186 | 0;
                                te = l + 112 | 0;
                                Nd(e, z, z, g, y, 0, H, $, a[te >> 2] | 0);
                                z = a[ie >> 2] | 0;
                                Nd(e, z, z, _, Y, 0, H, $, a[te >> 2] | 0);
                                Y = a[ie >> 2] | 0;
                                Nd(e, Y, Y, b, W & 65535, 1, H, $, a[te >> 2] | 0);
                                j = Ld(re, ne, n[ae >> 1] | 0, A, w, f, j) | 0;
                                Ud(e, re, 3, A, ne, ae, k, ve);
                                a[l + 24 >> 2] = re;
                                te = e + 104 | 0;
                                nE(me, 8, te, 8);
                                $ = e + 48 | 0;
                                H = pe + 28 | 0;
                                W = he + 8 | 0;
                                Y = he + 4 | 0;
                                z = he + 12 | 0;
                                q = (re | 0) == 2;
                                G = fe ? t : u;
                                J = de + 16 | 0;
                                Q = de + 20 | 0;
                                Z = l + 116 | 0;
                                K = de + 12 | 0;
                                ee = de + 8 | 0;
                                F = (u | 0) == 0;
                                B = de + 34 | 0;
                                N = de + 32 | 0;
                                L = pe + 12 | 0;
                                U = pe + 8 | 0;
                                V = e + 24 | 0;
                                X = e + 28 | 0;
                                j = j & 65535;
                                T = (n[w >> 1] | 0) == 0;
                                E = ne << 16 >> 16 == 1;
                                S = e + 100 | 0;
                                P = e + 144 | 0;
                                I = e + 132 | 0;
                                M = e + 134 | 0;
                                C = e + 136 | 0;
                                O = e + 138 | 0;
                                R = e + 131 | 0;
                                _ = 0;
                                w = 0;
                                x = 0.0;
                                g = 0;
                                c = 0;
                                b = k;
                                v = f;
                                u = a[ve >> 2] | 0;
                                e: while (1) {
                                    f = w & 65535;
                                    if ((w & 65535) >= (ne & 65535)) break;
                                    t: do {
                                        switch (re | 0) {
                                            case 0:
                                                {
                                                    f = g;c = 1;D = 38;
                                                    break
                                                }
                                            case 2:
                                                {
                                                    d = u;D = 9;
                                                    break
                                                }
                                            case 6:
                                            case 1:
                                                {
                                                    d = b;D = 9;
                                                    break
                                                }
                                            case 3:
                                                {
                                                    if (!v) {
                                                        m = 0;
                                                        f = 1
                                                    } else {
                                                        m = v + 2 | 0;
                                                        f = (wE(v) | 0) & 65535
                                                    }
                                                    k = f + (g & 65535) | 0;f = k & 65535;g = u + 2 | 0;d = wE(b) | 0;b = b + 2 | 0;
                                                    if ((k & 65535) >>> 0 < j >>> 0) {
                                                        v = m;
                                                        m = w;
                                                        d = g
                                                    } else {
                                                        A = m;
                                                        c = 1;
                                                        _ = d;
                                                        y = g;
                                                        D = 41
                                                    }
                                                    break
                                                }
                                            case 4:
                                                {
                                                    if (!T ? (f | 0) == (n[ae >> 1] | 0) : 0) f = g;
                                                    else {
                                                        if (!v) f = 1;
                                                        else f = (wE(v) | 0) & 65535;
                                                        D = f + (g & 65535) | 0;
                                                        d = D & 65535;
                                                        if ((D & 65535) >>> 0 >= j >>> 0) {
                                                            n[ae >> 1] = w;
                                                            if (E) {
                                                                f = d;
                                                                c = 1;
                                                                D = 38;
                                                                break t
                                                            }
                                                            f = a[$ >> 2] | 0;
                                                            if (fe) {
                                                                Vd(f + 824 | 0, n[e >> 1] | 0, t);
                                                                f = d;
                                                                c = 1;
                                                                D = 38;
                                                                break t
                                                            } else {
                                                                Xd(f + 972 | 0, n[e >> 1] | 0, i);
                                                                f = d;
                                                                c = 1;
                                                                D = 38;
                                                                break t
                                                            }
                                                        } else f = d
                                                    }
                                                    d = b;v = (v | 0) == 0 ? 0 : v + 2 | 0;D = 39;
                                                    break
                                                }
                                            case 5:
                                                {
                                                    f = v + 2 | 0;x = x + +((wE(v) | 0) & 65535) / 1.0e3;
                                                    if (!(x >= +h[S >> 2])) {
                                                        d = b;
                                                        v = f;
                                                        f = g;
                                                        D = 39
                                                    } else {
                                                        v = f;
                                                        f = g;
                                                        c = 1;
                                                        D = 38
                                                    }
                                                    break
                                                }
                                            case 7:
                                                {
                                                    if (a[P >> 2] | 0) {
                                                        g = v + 2 | 0;
                                                        f = wE(v) | 0;
                                                        Ss(a[(a[$ >> 2] | 0) + 2200 >> 2] | 0, f, se);
                                                        Os(a[P >> 2] | 0, a[se >> 2] | 0, oe, ue);
                                                        m = n[oe >> 1] | 0;
                                                        d = m & 65535;
                                                        do {
                                                            if (m << 16 >> 16 != -1 ? (le = n[ue >> 1] | 0, le << 16 >> 16 != -1) : 0) {
                                                                v = d << 16 | le & 65535;
                                                                d = a[(a[_e >> 2] | 0) + 68 >> 2] | 0;
                                                                if ((jd(d, v) | 0) == 1) {
                                                                    d = (Gd(d, v) | 0) == 1;
                                                                    c = 1;
                                                                    break
                                                                }
                                                                d = a[ie >> 2] | 0;
                                                                if ((jd(d, v) | 0) == 1) {
                                                                    d = (Gd(d, v) | 0) == 1;
                                                                    c = 1;
                                                                    break
                                                                } else {
                                                                    k = Ds(m) | 0;
                                                                    A = k << 16 >> 16 == le << 16 >> 16;
                                                                    d = A;
                                                                    c = A ? 1 : k << 16 >> 16 == -1 ? c : 1;
                                                                    break
                                                                }
                                                            } else d = 0
                                                        } while (0);
                                                        y = u + 2 | 0;
                                                        v = wE(b) | 0;
                                                        b = b + 2 | 0;
                                                        if (d) {
                                                            A = g;
                                                            _ = v;
                                                            D = 41
                                                        } else {
                                                            v = g;
                                                            m = w;
                                                            d = y
                                                        }
                                                    } else {
                                                        d = b;
                                                        f = g;
                                                        D = 39
                                                    }
                                                    break
                                                }
                                            case 8:
                                                {
                                                    f = $d(a[_e >> 2] | 0) | 0;
                                                    if (f) {
                                                        a[f + 148 >> 2] = o[I >> 1];
                                                        a[f + 144 >> 2] = o[M >> 1];
                                                        d = n[C >> 1] | 0;
                                                        m = d << 16 >> 16;
                                                        _ = n[O >> 1] | 0;
                                                        a[f + 140 >> 2] = m - (_ << 16 >> 16);
                                                        a[f + 136 >> 2] = s[R >> 0];
                                                        f = a[(a[_e >> 2] | 0) + 112 >> 2] | 0;
                                                        if (!f) {
                                                            f = g;
                                                            D = 38
                                                        } else {
                                                            n[f + 38 >> 1] = d << 16 >> 16 == _ << 16 >> 16 ? m : (d << 16 >> 16 < _ << 16 >> 16 ? d : _) & 65535;
                                                            r[f + 37 >> 0] = 1;
                                                            f = g;
                                                            D = 38
                                                        }
                                                    } else {
                                                        d = b;
                                                        f = g;
                                                        D = 39
                                                    }
                                                    break
                                                }
                                            default:
                                                {
                                                    d = b;f = g;D = 39
                                                }
                                        }
                                    } while (0);
                                    do {
                                        if ((D | 0) == 9)
                                            if ((f | 0) == (n[ae >> 1] | 0)) {
                                                f = a[$ >> 2] | 0;
                                                if (fe) {
                                                    Vd(f + 824 | 0, n[e >> 1] | 0, t);
                                                    b = d;
                                                    f = g;
                                                    c = 1;
                                                    D = 38;
                                                    break
                                                } else {
                                                    Xd(f + 972 | 0, n[e >> 1] | 0, i);
                                                    b = d;
                                                    f = g;
                                                    c = 1;
                                                    D = 38;
                                                    break
                                                }
                                            } else {
                                                f = g;
                                                D = 39
                                            }
                                    } while (0);
                                    if ((D | 0) == 38) {
                                        A = v;
                                        _ = wE(b) | 0;
                                        y = u + 2 | 0;
                                        b = b + 2 | 0;
                                        D = 41
                                    } else if ((D | 0) == 39) {
                                        D = 0;
                                        m = w;
                                        b = d + 2 | 0;
                                        d = u + 2 | 0
                                    }
                                    t: do {
                                        if ((D | 0) == 41) {
                                            D = 0;
                                            g = wE(u) | 0;
                                            Hd((a[$ >> 2] | 0) + 1268 | 0, g, de);
                                            Hd((a[$ >> 2] | 0) + 1268 | 0, _, pe);
                                            pf(a[(a[$ >> 2] | 0) + 1568 >> 2] | 0, a[H >> 2] | 0, ce);
                                            g = Rd() | 0;
                                            if (!g) {
                                                m = w;
                                                d = 0
                                            } else {
                                                i: do {
                                                    if (q) {
                                                        m = 0;
                                                        d = w;
                                                        v = a[G >> 2] | 0;
                                                        while (1) {
                                                            if ((m & 65535) >= (ne & 65535)) {
                                                                _ = d;
                                                                break i
                                                            }
                                                            k = (wE(v) | 0) << 16 >> 16 == _ << 16 >> 16;
                                                            k = k ? m : d;
                                                            m = m + 1 << 16 >> 16;
                                                            d = k;
                                                            v = v + 2 | 0
                                                        }
                                                    } else _ = w
                                                } while (0);n[g + 94 >> 1] = _;n[g + 96 >> 1] = s[(a[_e >> 2] | 0) + 120 >> 0] | 0;a[g + 76 >> 2] = a[H >> 2];m = a[ce >> 2] | 0;a[g + 40 >> 2] = m;a[g + 44 >> 2] = m;a[g + 80 >> 2] = 0;nE(te, 8, me, 8);m = g + 8 | 0;ld(a[m >> 2] | 0, a[ie >> 2] | 0);d = a[J >> 2] | 0;do {
                                                    if ((d | 0) != -1) {
                                                        pf(a[(a[$ >> 2] | 0) + 1448 >> 2] | 0, d, se);
                                                        a[V >> 2] = l;
                                                        a[X >> 2] = g;
                                                        ro(a[m >> 2] | 0, se, e, 0, 1, a[$ >> 2] | 0, oe);
                                                        if (!(a[oe >> 2] | 0)) {
                                                            Wd(g);
                                                            v = A;
                                                            m = _;
                                                            _ = 0;
                                                            d = y;
                                                            break t
                                                        } else {
                                                            a[X >> 2] = 0;
                                                            a[V >> 2] = 0;
                                                            break
                                                        }
                                                    } else {
                                                        if ((iu(a[(a[$ >> 2] | 0) + 64 >> 2] | 0) | 0) >>> 0 < 18022400) kd(a[m >> 2] | 0);
                                                        go(a[m >> 2] | 0, 11, 0.0);
                                                        go(a[m >> 2] | 0, 12, 0.0)
                                                    }
                                                } while (0);d = a[Q >> 2] | 0;do {
                                                    if ((d | 0) != -1) {
                                                        pf(a[(a[$ >> 2] | 0) + 1688 >> 2] | 0, d, se);
                                                        a[V >> 2] = l;
                                                        a[X >> 2] = g;
                                                        ro(a[m >> 2] | 0, se, e, 0, 4, a[$ >> 2] | 0, oe);
                                                        if (!(a[oe >> 2] | 0)) {
                                                            Wd(g);
                                                            v = A;
                                                            m = _;
                                                            _ = 0;
                                                            d = y;
                                                            break t
                                                        } else {
                                                            a[X >> 2] = 0;
                                                            a[V >> 2] = 0;
                                                            break
                                                        }
                                                    }
                                                } while (0);nE(g + 102 | 0, 8, te, 8);tS(Z, g + 60 | 0);d = g + 98 | 0;v = g + 114 | 0;Nd(e, a[m >> 2] | 0, a[ie >> 2] | 0, (a[K >> 2] | 0) >>> 1, a[ee >> 2] | 0, 0, d, v, a[g >> 2] | 0);
                                                if (!F) Nd(e, a[m >> 2] | 0, a[ie >> 2] | 0, (a[L >> 2] | 0) >>> 1, a[U >> 2] | 0, 0, d, v, a[g >> 2] | 0);Nd(e, a[m >> 2] | 0, a[ie >> 2] | 0, o[B >> 1] | 0, o[N >> 1] | 0, 1, d, v, a[g >> 2] | 0);m = _;d = g
                                            }
                                            switch (re | 0) {
                                                case 6:
                                                case 5:
                                                case 4:
                                                case 2:
                                                case 3:
                                                case 1:
                                                    {
                                                        D = 61;
                                                        break e
                                                    }
                                                case 7:
                                                    break;
                                                default:
                                                    {
                                                        v = A;_ = d;d = y;
                                                        break t
                                                    }
                                            }
                                            _ = a[_e >> 2] | 0;
                                            v = a[_ + 60 >> 2] | 0;
                                            a[W >> 2] = v;
                                            a[he >> 2] = Co(_) | 0;
                                            a[Y >> 2] = 7;
                                            n[z >> 1] = m;
                                            Yd(v, he);
                                            v = A;
                                            _ = d;
                                            d = y
                                        }
                                    } while (0);
                                    w = m + 1 << 16 >> 16;
                                    g = f;
                                    u = d
                                }
                                if ((D | 0) == 61) {
                                    a[ve >> 2] = y;
                                    me = a[_e >> 2] | 0;
                                    f = a[me + 60 >> 2] | 0;
                                    a[W >> 2] = f;
                                    a[he >> 2] = Co(me) | 0;
                                    a[Y >> 2] = re;
                                    n[z >> 1] = m;
                                    Yd(f, he);
                                    f = a[_e >> 2] | 0;
                                    if (r[f + 120 >> 0] | 0) break;
                                    if (a[e + 16 >> 2] | 0) break;
                                    r[f + 162 >> 0] = re;
                                    n[f + 160 >> 1] = m;
                                    break
                                }
                                a[ve >> 2] = u;
                                e: do {
                                    if (!c) {
                                        switch (re | 0) {
                                            case 7:
                                                switch (a[(a[_e >> 2] | 0) + 84 >> 2] | 0) {
                                                    case 1:
                                                        {
                                                            NE();
                                                            break e
                                                        }
                                                    case 2:
                                                        {
                                                            NE();
                                                            break e
                                                        }
                                                    case 3:
                                                        {
                                                            NE();
                                                            break e
                                                        }
                                                    default:
                                                        break e
                                                }
                                            case 8:
                                                break;
                                            default:
                                                break e
                                        }
                                        if (!_) switch (a[(a[_e >> 2] | 0) + 84 >> 2] | 0) {
                                            case 1:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            case 2:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            case 3:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            default:
                                                break e
                                        }
                                        f = zd(a[(a[_ + 8 >> 2] | 0) + 208 >> 2] | 0) | 0;
                                        if ((jd(a[(a[_e >> 2] | 0) + 68 >> 2] | 0, f) | 0) == 0 ? (Ds(f >>> 16 & 65535) | 0) << 16 >> 16 == -1 : 0) switch (a[(a[_e >> 2] | 0) + 84 >> 2] | 0) {
                                            case 1:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            case 2:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            case 3:
                                                {
                                                    NE();
                                                    break e
                                                }
                                            default:
                                                break e
                                        }
                                    }
                                } while (0);
                                nE(te, 8, me, 8)
                            }
                        } while (0);
                        p = be;
                        return
                    }

                    function Pd(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0;
                        B = p;
                        p = p + 112 | 0;
                        C = B + 56 | 0;
                        O = B + 24 | 0;
                        R = B + 96 | 0;
                        D = B + 8 | 0;
                        F = B;
                        o = a[e + 56 >> 2] | 0;
                        n[R >> 1] = -1;
                        e: do {
                            if (i << 16 >> 16) {
                                gS(O, 0, 32) | 0;
                                gS(D, 0, 12) | 0;
                                T = (i & 65535) + (t & 65535) | 0;
                                E = e + 48 | 0;
                                S = C + 38 | 0;
                                P = o + 72 | 0;
                                k = e + 16 | 0;
                                y = o + 68 | 0;
                                A = C + 20 | 0;
                                w = C + 39 | 0;
                                x = C + 36 | 0;
                                f = s + 116 | 0;
                                c = O + 4 | 0;
                                d = O + 12 | 0;
                                v = C + 8 | 0;
                                m = C + 28 | 0;
                                _ = C + 4 | 0;
                                b = D + 4 | 0;
                                g = D + 8 | 0;
                                s = 0;
                                h = 0;
                                e = -1;
                                t: while (1) {
                                    if (T >>> 0 <= (t & 65535) >>> 0) break e;
                                    l = a[E >> 2] | 0;
                                    Id(l + 2328 | 0, t, C, a[l + 56 >> 2] | 0);
                                    l = r[S >> 0] | 0;
                                    i: do {
                                        switch (l << 24 >> 24) {
                                            case 7:
                                                {
                                                    i = h;
                                                    break
                                                }
                                            case 1:
                                                {
                                                    u = Md(a[v >> 2] | 0) | 0;
                                                    if (!u) {
                                                        NE();
                                                        i = h;
                                                        break i
                                                    }
                                                    i = a[m >> 2] | 0;do {
                                                        if ((i | 0) != -1 ? (M = u + 8 | 0, (Ic(Pc(a[M >> 2] | 0) | 0, i, R) | 0) == 1) : 0)
                                                            if ((n[R >> 1] | 0) == -1) {
                                                                sE();
                                                                i = h;
                                                                e = -1;
                                                                break i
                                                            } else {
                                                                a[D >> 2] = 1;
                                                                a[b >> 2] = u;
                                                                a[g >> 2] = i;
                                                                i = M;
                                                                break
                                                            }
                                                        else I = 12
                                                    } while (0);do {
                                                        if ((I | 0) == 12) {
                                                            I = 0;
                                                            e = a[_ >> 2] | 0;
                                                            o = e;
                                                            i = u + 8 | 0;
                                                            if ((e | 0) != 0 ? (Mc(Pc(a[i >> 2] | 0) | 0, e, R) | 0) == 1 : 0)
                                                                if ((n[R >> 1] | 0) == -1) {
                                                                    sE();
                                                                    i = h;
                                                                    e = -1;
                                                                    break i
                                                                } else {
                                                                    a[D >> 2] = 2;
                                                                    a[b >> 2] = u;
                                                                    a[g >> 2] = o;
                                                                    break
                                                                }
                                                        }
                                                    } while (0);i = a[i >> 2] | 0;Pc(i) | 0;e = n[R >> 1] | 0;
                                                    if (Nc(i + 424 | 0, e, O) | 0) I = 21;
                                                    break
                                                }
                                            case 2:
                                                {
                                                    i = a[m >> 2] | 0;
                                                    if ((i | 0) == -1) {
                                                        e = Qs(a[_ >> 2] | 0) | 0;
                                                        n[R >> 1] = e;
                                                        i = h;
                                                        I = 21;
                                                        break i
                                                    } else {
                                                        e = Js(i) | 0;
                                                        n[R >> 1] = e;
                                                        i = h;
                                                        I = 21;
                                                        break i
                                                    }
                                                }
                                            default:
                                                {
                                                    i = h;I = 21
                                                }
                                        }
                                    } while (0);
                                    if ((I | 0) == 21) {
                                        I = 0;
                                        h = Cd() | 0;
                                        if (!h) break e;
                                        o = a[P >> 2] | 0;
                                        do {
                                            if (!o) {
                                                o = a[k >> 2] | 0;
                                                if (!o) {
                                                    o = gd() | 0;
                                                    if (!o) {
                                                        I = 27;
                                                        break t
                                                    } else {
                                                        s = 1;
                                                        break
                                                    }
                                                }
                                                s = a[o + 4 >> 2] | 0;
                                                o = gd() | 0;
                                                if (!o) {
                                                    I = 27;
                                                    break t
                                                }
                                                od(a[y >> 2] | 0, a[s + 68 >> 2] | 0);
                                                s = 1
                                            }
                                        } while (0);
                                        u = Rd() | 0;
                                        if (!u) break;
                                        if (s | 0) {
                                            xd(o);
                                            a[P >> 2] = o
                                        }
                                        o = a[A >> 2] | 0;
                                        pf(a[(a[E >> 2] | 0) + 1568 >> 2] | 0, o, F);
                                        a[u + 76 >> 2] = o;
                                        o = a[F >> 2] | 0;
                                        a[u + 40 >> 2] = o;
                                        a[u + 44 >> 2] = o;
                                        a[u + 80 >> 2] = 0;
                                        a[u + 20 >> 2] = h;
                                        r[h + 42 >> 0] = r[w >> 0] | 0;
                                        n[h + 44 >> 1] = n[x >> 1] | 0;
                                        switch (l << 24 >> 24) {
                                            case 1:
                                                {
                                                    r[h + 43 >> 0] = 1;a[h + 32 >> 2] = i;n[h + 36 >> 1] = e;n[h + 38 >> 1] = n[c >> 1] | 0;n[h + 40 >> 1] = a[d >> 2];nE(h + 8 | 0, 12, D, 12);
                                                    break
                                                }
                                            case 2:
                                                {
                                                    r[h + 43 >> 0] = 2;n[h + 36 >> 1] = e;
                                                    break
                                                }
                                            case 6:
                                                {
                                                    r[h + 43 >> 0] = 6;
                                                    break
                                                }
                                            default:
                                                {}
                                        }
                                        tS(f, u + 60 | 0)
                                    }
                                    t = t + 1 << 16 >> 16;
                                    h = i
                                }
                                if ((I | 0) == 27) {
                                    Od(h);
                                    break
                                }
                                Od(h);
                                if (s | 0) wd(o)
                            }
                        } while (0);
                        p = B;
                        return
                    }

                    function Id(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        u = i + 16 | 0;
                        a[u >> 2] = -1;
                        v = i + 20 | 0;
                        a[v >> 2] = -1;
                        a[i >> 2] = 0;
                        h = i + 12 | 0;
                        a[h >> 2] = 0;
                        l = i + 32 | 0;
                        n[l >> 1] = -1;
                        c = i + 34 | 0;
                        n[c >> 1] = 0;
                        d = i + 24 | 0;
                        a[d >> 2] = -1;
                        f = a[e >> 2] | 0;
                        p = t & 65535;
                        if (((s | 0) == 0 ? 6 : 7) >>> 0 < (o[f + 24 >> 1] | 0) >>> 0) {
                            a[u >> 2] = $s(f, p, 0) | 0;
                            a[v >> 2] = $s(f, p, 1) | 0;
                            ME(f, p, 2, i, h);
                            f = a[e >> 2] | 0;
                            n[l >> 1] = EE(f, p, 3) | 0;
                            n[c >> 1] = EE(f, p, 4) | 0;
                            a[d >> 2] = $s(f, p, 5) | 0;
                            c = 0
                        } else c = 1;
                        e = i + 38 | 0;
                        r[e >> 0] = 0;
                        s = i + 4 | 0;
                        a[s >> 2] = 0;
                        u = i + 28 | 0;
                        a[u >> 2] = -1;
                        h = i + 8 | 0;
                        a[h >> 2] = 0;
                        l = i + 39 | 0;
                        r[l >> 0] = 0;
                        t = i + 36 | 0;
                        n[t >> 1] = -1;
                        if (c) {
                            r[e >> 0] = TE(f, p, 0) | 0;
                            a[s >> 2] = IE(f, p, 1) | 0;
                            a[u >> 2] = SE(f, p, 2) | 0;
                            a[h >> 2] = IE(f, p, 3) | 0;
                            a[v >> 2] = $s(f, p, 4) | 0;
                            r[l >> 0] = TE(f, p, 5) | 0
                        } else {
                            r[e >> 0] = TE(f, p, 6) | 0;
                            a[s >> 2] = IE(f, p, 7) | 0;
                            a[u >> 2] = SE(f, p, 8) | 0;
                            a[h >> 2] = IE(f, p, 9) | 0;
                            r[l >> 0] = TE(f, p, 10) | 0;
                            n[t >> 1] = EE(f, p, 11) | 0
                        }
                        return
                    }

                    function Md(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[1833] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) {
                                t = 0;
                                break
                            }
                            t = a[i >> 2] | 0;
                            if (!(JI(e, Bd(a[t + 8 >> 2] | 0) | 0) | 0)) break;
                            i = a[i + 4 >> 2] | 0
                        }
                        return t | 0
                    }

                    function Cd() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 20 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else e = a[e >> 2] | 0;
                        p = t;
                        return e | 0
                    }

                    function Od(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        t = n;
                        i = e + 20 | 0;
                        rS(i, t);
                        while (1) {
                            r = a[t >> 2] | 0;
                            if (!r) break;
                            a[(a[r >> 2] | 0) + 108 >> 2] = 0;
                            rS(i, t)
                        }
                        Fd(e);
                        tS((a[1698] | 0) + 20 | 0, e);
                        p = n;
                        return
                    }

                    function Rd() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 64 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            a[e + 68 >> 2] = 2;
                            a[e + 8 >> 2] = Dd(a[e + 4 >> 2] | 0, 9) | 0
                        }
                        p = t;
                        return e | 0
                    }

                    function Dd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = ff() | 0;
                        return cf(i, a[1830] & 255, t, e, a[1832] | 0) | 0
                    }

                    function Fd(e) {
                        e = e | 0;
                        QE(e + 20 | 0);
                        a[e + 32 >> 2] = 0;
                        n[e + 36 >> 1] = -1;
                        n[e + 38 >> 1] = -1;
                        a[e + 40 >> 2] = 0;
                        n[e + 44 >> 1] = -1;
                        return
                    }

                    function Bd(e) {
                        e = e | 0;
                        Pc(e) | 0;
                        return a[e + 88 >> 2] | 0
                    }

                    function Nd(e, t, i, s, o, u, l, f, c) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        l = l | 0;
                        f = f | 0;
                        c = c | 0;
                        var d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0;
                        R = p;
                        p = p + 48 | 0;
                        O = R + 20 | 0;
                        M = R + 16 | 0;
                        C = R;
                        I = (u | 0) != 0;
                        _ = e + 48 | 0;
                        b = O + 6 | 0;
                        g = O + 1 | 0;
                        y = O + 4 | 0;
                        A = O + 24 | 0;
                        w = C + 1 | 0;
                        x = C + 4 | 0;
                        k = C + 8 | 0;
                        T = (l | 0) == 0;
                        E = C + 1 | 0;
                        S = C + 4 | 0;
                        P = C + 8 | 0;
                        m = 0;
                        u = c;
                        d = o;
                        v = I ? o & 65535 : 0;
                        e: while (1) {
                            if ((m & 65535) >>> 0 >= s >>> 0) break;
                            do {
                                if (I) {
                                    Kd(a[(a[_ >> 2] | 0) + 2004 >> 2] | 0, v, M);
                                    e = Yf(a[M >> 2] | 0) | 0;
                                    if (e << 16 >> 16 == -1) break e;
                                    if (!(zf(e, O) | 0)) break e;
                                    c = e | -32768;
                                    if ((ep(t, c, 0) | 0) != 1) {
                                        NE();
                                        e = d;
                                        break
                                    }
                                    e = n[b >> 1] | 0;
                                    if (e << 16 >> 16 == -1) {
                                        if (!(r[g >> 0] | 0)) {
                                            e = d;
                                            break
                                        }
                                        e = n[y >> 1] | 0;
                                        Hc(C, i, e);
                                        if ((a[C >> 2] | 0) == 2147483647) go(i, e, +h[A >> 2]);
                                        e = d;
                                        break
                                    } else {
                                        Gc(0, e, C);
                                        e = r[w >> 0] | 0;
                                        if (!(e << 24 >> 24)) $c(t, c, C);
                                        else {
                                            r[f >> 0] = 1;
                                            r[u >> 0] = r[C >> 0] | 0;
                                            r[u + 1 >> 0] = e;
                                            r[u + 3 >> 0] = 1;
                                            a[u + 4 >> 2] = a[x >> 2];
                                            a[u + 8 >> 2] = a[k >> 2];
                                            n[u + 12 >> 1] = c;
                                            u = u + 16 | 0
                                        }
                                        e = d;
                                        break
                                    }
                                } else {
                                    o = d + 2 | 0;
                                    c = wE(d) | 0;
                                    if ((qf((a[_ >> 2] | 0) + 1808 | 0, c, O) | 0) != 1) {
                                        NE();
                                        e = o;
                                        break
                                    }
                                    if ((ep(t, c, a[_ >> 2] | 0) | 0) != 1) {
                                        NE();
                                        e = o;
                                        break
                                    }
                                    e = n[b >> 1] | 0;
                                    if (e << 16 >> 16 != -1) {
                                        Gc(a[_ >> 2] | 0, e, C);
                                        e = r[E >> 0] | 0;
                                        if (!(e << 24 >> 24)) $c(t, c, C);
                                        else {
                                            r[f >> 0] = 1;
                                            r[u >> 0] = r[C >> 0] | 0;
                                            r[u + 1 >> 0] = e;
                                            r[u + 3 >> 0] = 1;
                                            a[u + 4 >> 2] = a[S >> 2];
                                            a[u + 8 >> 2] = a[P >> 2];
                                            n[u + 12 >> 1] = c;
                                            u = u + 16 | 0
                                        }
                                        e = o;
                                        break
                                    }
                                    if ((r[O >> 0] | 0) == 1) {
                                        if (T) {
                                            e = o;
                                            break
                                        }
                                        n[l >> 1] = c;
                                        e = o;
                                        break
                                    }
                                    if (!(r[g >> 0] | 0)) e = o;
                                    else {
                                        e = n[y >> 1] | 0;
                                        Hc(C, i, e);
                                        if ((a[C >> 2] | 0) == 2147483647) go(i, e, +h[A >> 2]);
                                        e = o
                                    }
                                }
                            } while (0);
                            m = m + 1 << 16 >> 16;
                            d = e;
                            v = v + 1 << 16 >> 16
                        }
                        p = R;
                        return
                    }

                    function Ld(e, t, i, r, a, s, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        a = a | 0;
                        s = s | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        e: do {
                            switch (e | 0) {
                                case 3:
                                    {
                                        if (!s) {
                                            e = (t & 65535) + -1 | 0;
                                            c = 25;
                                            break e
                                        }
                                        l = u & 65535;e = s;u = 0;i = 0;
                                        while (1) {
                                            if ((i | 0) == (l | 0)) break;
                                            h = wE(e) | 0;
                                            if (h << 16 >> 16) n[a >> 1] = (o[a >> 1] | 0) + 1;
                                            e = e + 2 | 0;
                                            u = u + (h & 65535) | 0;
                                            i = i + 1 | 0
                                        }
                                        e = (u | 0) == 0 ? (t & 65535) + -1 | 0 : u;c = 25;
                                        break
                                    }
                                case 4:
                                    {
                                        f = i << 16 >> 16;
                                        if (i << 16 >> 16 < 0) {
                                            h = t & 65535;
                                            if (!s) {
                                                e = h + -1 | 0;
                                                c = 25;
                                                break e
                                            } else {
                                                e = s;
                                                u = 0;
                                                i = 0
                                            }
                                            while (1) {
                                                if ((i | 0) == (h | 0)) break;
                                                a = ((wE(e) | 0) & 65535) + (u & 65535) & 65535;
                                                e = e + 2 | 0;
                                                u = a;
                                                i = i + 1 | 0
                                            }
                                            e = u & 65535;
                                            c = 25;
                                            break e
                                        }
                                        t = t & 65535;e = 0;i = s;s = 0;h = 0;
                                        while (1) {
                                            if ((h | 0) >= (t | 0)) break;
                                            if (!i) {
                                                c = 23;
                                                break
                                            }
                                            u = wE(i) | 0;
                                            l = u & 65535;
                                            if ((h | 0) != (f | 0)) {
                                                e = l + (e & 65535) & 65535;
                                                if (u << 16 >> 16) n[a >> 1] = (o[a >> 1] | 0) + 1
                                            }
                                            i = i + 2 | 0;
                                            s = l + (s & 65535) & 65535;
                                            h = h + 1 | 0
                                        }
                                        if ((c | 0) == 23) {
                                            e = t + 65535 & 65535;
                                            n[a >> 1] = e
                                        }
                                        c = e & 65535;e = (s & 65535) < 100 | e << 16 >> 16 == 0 ? s << 16 >> 16 == 0 & e << 16 >> 16 != 0 ? c + -1 | 0 : 100 : c;c = 25;
                                        break
                                    }
                                default:
                                    e = 0
                            }
                        } while (0);
                        if ((c | 0) == 25) e = (lf(r, 0, e) | 0) & 65535;
                        return e | 0
                    }

                    function Ud(e, t, i, r, s, u, h, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        p = s & 65535;
                        e: do {
                            if (s << 16 >> 16) {
                                switch (t | 0) {
                                    case 2:
                                    case 1:
                                        break;
                                    case 6:
                                        {
                                            t = sM(Wo() | 0, P | 0, a[e + 116 >> 2] | 0, 0) | 0;i = P;l = (o[u >> 1] | 0) + 1 | 0;n[u >> 1] = l;
                                            if ((l << 16 >> 16 | 0) >= (p | 0)) {
                                                p = n[e + 6 >> 1] | 0;
                                                n[u >> 1] = p << 16 >> 16 == -1 ? 0 : p
                                            }
                                            p = fM(a[e + 8 >> 2] | 0, 0, 1e3, 0) | 0;l = P;
                                            if (!(i >>> 0 > l >>> 0 | (i | 0) == (l | 0) & t >>> 0 > p >>> 0)) break e;n[u >> 1] = 0;
                                            break e
                                        }
                                    default:
                                        break e
                                }
                                c = n[u >> 1] | 0;
                                f = c << 16 >> 16 < 0;
                                d = (c & 65535) + 1 | 0;
                                n[u >> 1] = (d << 16 >> 16 | 0) < (p | 0) ? d & 65535 : 0;
                                if ((t | 0) == 2) {
                                    d = (i | 0) == 2;
                                    if (d) {
                                        t = p << 2;
                                        e = t + h | 0;
                                        i = xE(t + -4 + e | 0) | 0;
                                        if (f) {
                                            nE(e, t, h, t);
                                            f = e
                                        } else f = e
                                    } else {
                                        t = p << 1;
                                        e = t + h | 0;
                                        i = (wE(t + -2 + e | 0) | 0) & 65535;
                                        if (f) {
                                            nE(e, t, h, t);
                                            f = e
                                        } else f = e
                                    }
                                    do {
                                        if (!(n[u >> 1] | 0)) {
                                            e = p + -1 | 0;
                                            t: do {
                                                if (d) {
                                                    t = 0;
                                                    while (1) {
                                                        if ((t | 0) == (p | 0)) break t;
                                                        v = (t << 2) + f | 0;
                                                        u = ((lf(r, 0, e) | 0) << 2 & 262140) + f | 0;
                                                        _ = v;
                                                        m = n[_ >> 1] | 0;
                                                        h = u;
                                                        n[_ >> 1] = n[h >> 1] | 0;
                                                        n[h >> 1] = m;
                                                        v = v + 2 | 0;
                                                        h = n[v >> 1] | 0;
                                                        u = u + 2 | 0;
                                                        n[v >> 1] = n[u >> 1] | 0;
                                                        n[u >> 1] = h;
                                                        t = t + 1 | 0
                                                    }
                                                } else {
                                                    t = 0;
                                                    while (1) {
                                                        if ((t | 0) == (p | 0)) break t;
                                                        _ = ((lf(r, 0, e) | 0) << 1 & 131070) + f | 0;
                                                        v = (t << 1) + f | 0;
                                                        m = n[v >> 1] | 0;
                                                        n[v >> 1] = n[_ >> 1] | 0;
                                                        n[_ >> 1] = m;
                                                        t = t + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            if ((s & 65535) > 2 & c << 16 >> 16 > -1) {
                                                if (d) t = xE(f) | 0;
                                                else t = (wE(f) | 0) & 65535;
                                                if ((i | 0) == (t | 0)) {
                                                    t = lf(r, 1, e) | 0;
                                                    if (d) {
                                                        _ = (t << 2 & 262140) + f | 0;
                                                        p = f;
                                                        m = n[p >> 1] | 0;
                                                        v = _;
                                                        n[p >> 1] = n[v >> 1] | 0;
                                                        n[v >> 1] = m;
                                                        v = f + 2 | 0;
                                                        m = n[v >> 1] | 0;
                                                        _ = _ + 2 | 0;
                                                        n[v >> 1] = n[_ >> 1] | 0;
                                                        n[_ >> 1] = m;
                                                        break
                                                    } else {
                                                        v = f;
                                                        m = n[v >> 1] | 0;
                                                        _ = (t << 1 & 131070) + f | 0;
                                                        n[v >> 1] = n[_ >> 1] | 0;
                                                        n[_ >> 1] = m;
                                                        break
                                                    }
                                                }
                                            }
                                        }
                                    } while (0);
                                    a[l >> 2] = f
                                }
                            }
                        } while (0);
                        return
                    }

                    function Vd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            e = a[e >> 2] | 0;
                            FE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, a[e + 36 >> 2] | 0, t, 12, n[i + 48 >> 1] | 0)
                        }
                        return
                    }

                    function Xd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            e = a[e >> 2] | 0;
                            FE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, a[e + 36 >> 2] | 0, t, 12, n[i + 50 >> 1] | 0)
                        }
                        return
                    }

                    function jd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e: do {
                            if ((t | 0) == -1) i = 1;
                            else {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= 8) {
                                        i = 0;
                                        break e
                                    }
                                    if ((a[e + 212 + (i << 2) >> 2] ^ t) >>> 0 < 65536) {
                                        i = 1;
                                        break
                                    } else i = i + 1 | 0
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function Gd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        e: do {
                            if ((t | 0) == -1) i = 1;
                            else {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= 8) {
                                        i = 0;
                                        break e
                                    }
                                    r = a[e + 212 + (i << 2) >> 2] | 0;
                                    if ((r ^ t) >>> 0 < 65536) break;
                                    else i = i + 1 | 0
                                }
                                i = (r | 0) == (t | 0) & 1
                            }
                        } while (0);
                        return i | 0
                    }

                    function $d(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 116 | 0;
                        e = a[t >> 2] | 0;
                        if (!e) {
                            e = Qd() | 0;
                            a[t >> 2] = e
                        }
                        return e | 0
                    }

                    function Hd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        gS(i, 0, 40) | 0;
                        h = i + 16 | 0;
                        a[h >> 2] = -1;
                        l = i + 28 | 0;
                        a[l >> 2] = -1;
                        f = i + 20 | 0;
                        a[f >> 2] = -1;
                        c = i + 38 | 0;
                        r[c >> 0] = 0;
                        a[i >> 2] = 0;
                        d = i + 24 | 0;
                        a[d >> 2] = -1;
                        p = i + 4 | 0;
                        a[p >> 2] = 0;
                        v = i + 39 | 0;
                        r[v >> 0] = 0;
                        s = i + 36 | 0;
                        n[s >> 1] = -1;
                        t = t & 65535;
                        if (((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0 ? (o = a[e >> 2] | 0, a[l >> 2] = $s(o, t, 0) | 0, a[h >> 2] = $s(o, t, 1) | 0, ME(o, t, 2, i + 8 | 0, i + 12 | 0), o = a[e >> 2] | 0, n[i + 32 >> 1] = EE(o, t, 3) | 0, n[i + 34 >> 1] = EE(o, t, 4) | 0, u = n[o + 24 >> 1] | 0, (u & 65535) > 5) : 0) ? (a[f >> 2] = $s(o, t, 5) | 0, (u & 65535) > 11) : 0) {
                            r[c >> 0] = TE(o, t, 6) | 0;
                            a[i >> 2] = IE(o, t, 7) | 0;
                            a[d >> 2] = SE(o, t, 8) | 0;
                            a[p >> 2] = IE(o, t, 9) | 0;
                            r[v >> 0] = TE(o, t, 10) | 0;
                            n[s >> 1] = EE(o, t, 11) | 0
                        }
                        return
                    }

                    function Wd(e) {
                        e = e | 0;
                        if (KE(a[e + 56 >> 2] | 0) | 0) sE();
                        qd(e);
                        tS((a[1698] | 0) + 64 | 0, e + 60 | 0);
                        return
                    }

                    function Yd(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 292 >> 2] | 0;
                        if (i | 0) u$[i & 63](a[e + 296 >> 2] | 0, t);
                        return
                    }

                    function zd(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function qd(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= ((ff() | 0) & 255 | 0)) break;
                            i = a[e >> 2] | 0;
                            r[i + (t << 4) + 3 >> 0] = 0;
                            n[i + (t << 4) + 12 >> 1] = -1;
                            t = t + 1 | 0
                        }
                        t = e + 8 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            uo(i);
                            a[t >> 2] = 0
                        }
                        t = e + 12 | 0;
                        if (a[t >> 2] | 0) a[t >> 2] = 0;
                        t = e + 16 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            bl(i);
                            a[t >> 2] = 0
                        }
                        t = e + 20 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            Od(i);
                            a[t >> 2] = 0
                        }
                        t = e + 24 | 0;
                        if (a[t >> 2] | 0) {
                            a[t >> 2] = 0;
                            a[e + 28 >> 2] = -1
                        }
                        a[e + 36 >> 2] = 0;
                        a[e + 40 >> 2] = 0;
                        a[e + 44 >> 2] = 0;
                        QE(e + 48 | 0);
                        a[e + 68 >> 2] = 0;
                        a[e + 72 >> 2] = 0;
                        a[e + 76 >> 2] = -1;
                        a[e + 80 >> 2] = 0;
                        a[e + 84 >> 2] = -1;
                        a[e + 88 >> 2] = 2147483647;
                        t = e + 94 | 0;
                        i = t;
                        n[i >> 1] = -1;
                        n[i + 2 >> 1] = -1 >>> 16;
                        t = t + 4 | 0;
                        n[t >> 1] = -1;
                        n[t + 2 >> 1] = -1 >>> 16;
                        t = 0;
                        while (1) {
                            if ((t | 0) == 8) break;
                            r[e + 102 + t >> 0] = -1;
                            t = t + 1 | 0
                        }
                        r[e + 110 >> 0] = 0;
                        r[e + 111 >> 0] = -52;
                        a[e + 112 >> 2] = 0;
                        Jd(e);
                        return
                    }

                    function Jd(e) {
                        e = e | 0;
                        r[e + 116 >> 0] = 127;
                        r[e + 117 >> 0] = 127;
                        r[e + 118 >> 0] = 2;
                        r[e + 119 >> 0] = 0;
                        a[e + 120 >> 2] = 5e5;
                        n[e + 124 >> 1] = 480;
                        n[e + 126 >> 1] = 0;
                        return
                    }

                    function Qd() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(7344, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            Zd(e)
                        }
                        p = t;
                        return e | 0
                    }

                    function Zd(e) {
                        e = e | 0;
                        a[e + 136 >> 2] = 0;
                        a[e + 140 >> 2] = 0;
                        a[e + 144 >> 2] = 500;
                        a[e + 148 >> 2] = 0;
                        a[e + 152 >> 2] = 500;
                        return
                    }

                    function Kd(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[i >> 2] = IE(e, t & 65535, 0) | 0;
                        return
                    }

                    function ep(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        u = e + 101 | 0;
                        h = r[u >> 0] | 0;
                        l = h & 255;
                        f = e + 92 | 0;
                        o = 0;
                        while (1) {
                            if ((o | 0) >= (l | 0)) {
                                c = 4;
                                break
                            }
                            if ((n[(a[f >> 2] | 0) + (o << 1) >> 1] | 0) == t << 16 >> 16) {
                                o = 1;
                                break
                            } else o = o + 1 | 0
                        }
                        if ((c | 0) == 4)
                            if ((h & 255) < (s[e + 100 >> 0] | 0)) {
                                n[(a[f >> 2] | 0) + (l << 1) >> 1] = t;
                                a[(a[e + 88 >> 2] | 0) + (l << 2) >> 2] = i;
                                r[u >> 0] = h + 1 << 24 >> 24;
                                r[e + 8 >> 0] = 1;
                                o = 1
                            } else o = 0;
                        return o | 0
                    }

                    function tp(e) {
                        e = e | 0;
                        a[e + 12 >> 2] = 0;
                        a[e + 16 >> 2] = 0;
                        QE(e + 20 | 0);
                        a[e + 32 >> 2] = 0;
                        a[e + 36 >> 2] = 0;
                        a[e + 40 >> 2] = 0;
                        n[e + 48 >> 1] = -1;
                        r[e + 52 >> 0] = 0;
                        r[e + 53 >> 0] = 0;
                        r[e + 54 >> 0] = 0;
                        return
                    }

                    function ip(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 20 >> 2] = 0;
                        a[e + 24 >> 2] = 0;
                        i = e + 32 | 0;
                        a[i >> 2] = 0;
                        a[i + 4 >> 2] = 0;
                        a[i + 8 >> 2] = 0;
                        a[i + 12 >> 2] = 0;
                        a[i + 16 >> 2] = 0;
                        a[i + 20 >> 2] = 0;
                        a[e + 56 >> 2] = -1;
                        n[e + 64 >> 1] = -1;
                        n[e + 66 >> 1] = -1;
                        r[e + 68 >> 0] = 0;
                        r[e + 70 >> 0] = -1;
                        r[e + 71 >> 0] = 0;
                        r[e + 72 >> 0] = 0;
                        r[e + 69 >> 0] = 0;
                        r[e + 100 >> 0] = 0;
                        h[e + 96 >> 2] = 1.0;
                        a[e + 104 >> 2] = 0;
                        a[e + 108 >> 2] = 0;
                        i = e + 112 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= ((ff() | 0) & 255 | 0)) break;
                            r[(a[i >> 2] | 0) + (t << 4) + 3 >> 0] = 0;
                            t = t + 1 | 0
                        }
                        t = e + 152 | 0;
                        a[t >> 2] = 0;
                        a[t + 4 >> 2] = 0;
                        a[t + 8 >> 2] = 0;
                        a[t + 12 >> 2] = 0;
                        a[t + 16 >> 2] = 0;
                        n[e + 172 >> 1] = -1;
                        n[e + 174 >> 1] = 0;
                        n[e + 176 >> 1] = -1;
                        n[e + 178 >> 1] = 0;
                        n[e + 180 >> 1] = 9;
                        t = e + 182 | 0;
                        n[t >> 1] = 0;
                        n[t + 2 >> 1] = 0;
                        n[t + 4 >> 1] = 0;
                        r[t + 6 >> 0] = 0;
                        r[e + 189 >> 0] = -1;
                        r[e + 190 >> 0] = -1;
                        r[e + 191 >> 0] = -1;
                        r[e + 192 >> 0] = 0;
                        r[e + 193 >> 0] = 0;
                        t = e + 92 | 0;
                        e = a[t >> 2] | 0;
                        if (e | 0) {
                            uo(e);
                            a[t >> 2] = 0
                        }
                        return
                    }

                    function rp() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        e = r;
                        i = a[1698] | 0;
                        rS(i + 124 | 0, e);
                        while (1) {
                            t = a[e >> 2] | 0;
                            if (!t) break;
                            eS(i + 136 | 0, t);
                            t = a[1698] | 0;
                            rS(t + 124 | 0, e);
                            i = t
                        }
                        p = r;
                        return
                    }

                    function np(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = p;
                        p = p + 80 | 0;
                        e = t$[a[1826] & 7](4, i, e) | 0;
                        if (t | 0) vp(e);
                        p = i;
                        return
                    }

                    function ap(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0;
                        t = op(0) | 0;
                        if (t) {
                            r[t + 120 >> 0] = (s[e + 120 >> 0] | 0) + 1;
                            tS(e + 48 | 0, t + 24 | 0);
                            i = a[e + 68 >> 2] | 0;
                            o = t + 68 | 0;
                            a[o >> 2] = i;
                            n = a[i + 80 >> 2] | 0;
                            if (ll(n) | 0) {
                                vI(n + 324 | 0);
                                i = a[o >> 2] | 0
                            }
                            i = a[i + 84 >> 2] | 0;
                            if (fl(i) | 0) vI(i + 156 | 0);
                            a[t + 60 >> 2] = a[e + 60 >> 2];
                            a[t + 76 >> 2] = a[e + 76 >> 2];
                            i = e + 152 | 0;
                            if ((r[i >> 0] | 0) != -1) nE(t + 152 | 0, 8, i, 8)
                        } else t = 0;
                        return t | 0
                    }

                    function sp(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0;
                        h = r + 12 | 0;
                        l = r + 4 | 0;
                        u = a[e + 48 >> 2] | 0;
                        s = 0;
                        while (1) {
                            if (s >>> 0 >= u >>> 0) break;
                            f = a[e >> 2] | 0;
                            p = (TE(f, s, 1) | 0) & 255;
                            a[h >> 2] = p;
                            d = EE(f, s, 2) | 0;
                            n[l >> 1] = d;
                            if ((p | 0) == (t | 0) ? d << 16 >> 16 == i << 16 >> 16 : 0) {
                                c = 4;
                                break
                            }
                            s = s + 1 | 0
                        }
                        if ((c | 0) == 4) {
                            p = (a[f + 8 >> 2] | 0) + (G(a[f + 20 >> 2] | 0, s) | 0) | 0;
                            a[r >> 2] = xE(p + (o[a[f + 36 >> 2] >> 1] | 0) | 0) | 0
                        }
                        return
                    }

                    function op(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        t = u;
                        rS(7356, t);
                        t = a[t >> 2] | 0;
                        if (!t) {
                            NE();
                            t = 0
                        } else {
                            t = a[t >> 2] | 0;
                            o = t + 32 | 0;
                            a[o >> 2] = (a[o >> 2] | 0) + 1 & 65535;
                            a[t + 60 >> 2] = 0;
                            a[t + 72 >> 2] = 0;
                            a[t + 76 >> 2] = 0;
                            a[t + 80 >> 2] = 0;
                            a[t + 8 >> 2] = 0;
                            a[t + 12 >> 2] = 0;
                            a[t + 16 >> 2] = 0;
                            a[t >> 2] = 0;
                            n[t + 4 >> 1] = 0;
                            o = Fa() | 0;
                            if (e | 0) {
                                s = ff() | 0;
                                i = s & 255;
                                i = cf(s, o & 255, 6, a[t + 64 >> 2] | 0, i + 376 + (o + i + (i << 1) << 2) | 0) | 0;
                                s = t + 68 | 0;
                                a[s >> 2] = i;
                                up(i, e);
                                e = a[(a[s >> 2] | 0) + 80 >> 2] | 0;
                                i = ll(e) | 0;
                                if ((i | 0 ? (vI(e + 324 | 0), (a[e + 320 >> 2] | 0) == 1) : 0) ? (a[e + 332 >> 2] | 0) == (i | 0) : 0) NE();
                                e = a[(a[s >> 2] | 0) + 84 >> 2] | 0;
                                if (fl(e) | 0) vI(e + 156 | 0)
                            }
                            i = t + 20 | 0;
                            e = 0;
                            while (1) {
                                if ((e | 0) == (o | 0)) break;
                                n[(a[i >> 2] | 0) + (e << 1) >> 1] = -1;
                                e = e + 1 | 0
                            }
                            a[t + 96 >> 2] = -1;
                            e = t + 112 | 0;
                            a[e >> 2] = 0;
                            a[e + 4 >> 2] = 0;
                            a[e + 8 >> 2] = 0;
                            r[t + 124 >> 0] = 1;
                            r[t + 125 >> 0] = 0;
                            r[t + 126 >> 0] = 0;
                            r[t + 127 >> 0] = 0;
                            r[t + 129 >> 0] = 0;
                            r[t + 130 >> 0] = 0;
                            r[t + 131 >> 0] = 0;
                            e = t + 136 | 0;
                            a[e >> 2] = 0;
                            a[e + 4 >> 2] = 0;
                            a[e + 8 >> 2] = 0;
                            a[e + 12 >> 2] = 0;
                            e = 0;
                            while (1) {
                                if ((e | 0) == 8) break;
                                r[t + 152 + e >> 0] = -1;
                                e = e + 1 | 0
                            }
                            n[t + 160 >> 1] = -1;
                            r[t + 162 >> 0] = 0;
                            r[t + 163 >> 0] = 1;
                            gS(t + 84 | 0, 0, 12) | 0
                        }
                        p = u;
                        return t | 0
                    }

                    function up(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 32 | 0;
                        l = f;
                        u = a[t + 676 >> 2] | 0;
                        e: do {
                            if ((u + -1 | 0) >>> 0 < 64) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (u | 0)) break e;
                                    o = t + (i << 3) | 0;
                                    s = a[o + 4 >> 2] | 0;
                                    o = a[o >> 2] & 65535;
                                    if (!(0 == 0 & (s | 0) == 2147483647 | o << 16 >> 16 == -1)) uf(e, o, s);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        s = a[t + 680 >> 2] | 0;
                        e: do {
                            if ((s + -1 | 0) >>> 0 < 8) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (s | 0)) break e;
                                    o = t + 512 + (i * 12 | 0) | 0;
                                    if (r[t + 512 + (i * 12 | 0) + 2 >> 0] | 0) Oo(e, n[o >> 1] | 0, +h[t + 512 + (i * 12 | 0) + 4 >> 2]) | 0;
                                    if (r[t + 512 + (i * 12 | 0) + 3 >> 0] | 0) Ll(e, n[o >> 1] | 0, +h[t + 512 + (i * 12 | 0) + 8 >> 2]) | 0;
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        s = a[t + 684 >> 2] | 0;
                        e: do {
                            if ((s + -1 | 0) >>> 0 < 16) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (s | 0)) break e;
                                    o = n[t + 608 + (i << 1) >> 1] | 0;
                                    if (o << 16 >> 16 != -1) {
                                        Ks(o, l) | 0;
                                        Uo(e, o, a[l >> 2] & 65535) | 0
                                    }
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        s = a[t + 688 >> 2] | 0;
                        e: do {
                            if ((s | 0) > 0 ? (s | 0) <= ((ff() | 0) & 255 | 0) : 0) {
                                o = t + 640 | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) == (s | 0)) break e;
                                    u = n[(a[o >> 2] | 0) + (i << 1) >> 1] | 0;
                                    if (u << 16 >> 16 != -1) ep(e, u, 0) | 0;
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        i = a[t + 696 >> 2] | 0;
                        s = a[t + 700 >> 2] | 0;
                        if (i | 0) hp(e, i);
                        if (s | 0) lp(e, s);
                        s = a[t + 692 >> 2] | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (s | 0)) break;
                            o = a[t + 644 + (i << 2) >> 2] | 0;
                            u = fp(o) | 0;
                            if (u << 16 >> 16 != -1) Qo(e, u, cp(o) | 0);
                            i = i + 1 | 0
                        }
                        s = a[t + 740 >> 2] | 0;
                        e: do {
                            if ((s + -1 | 0) >>> 0 < 8) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (s | 0)) break e;
                                    o = a[t + 704 + (i << 2) >> 2] | 0;
                                    if (o | 0) dp(e, o);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        pp(e);
                        p = f;
                        return
                    }

                    function hp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 80 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function lp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 84 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function fp(e) {
                        e = e | 0;
                        return e >>> 16 & 65535 | 0
                    }

                    function cp(e) {
                        e = e | 0;
                        return e & 65535 | 0
                    }

                    function dp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            o = 0,
                            u = 0;
                        n = e + 104 | 0;
                        o = s[n >> 0] | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (o | 0)) {
                                u = 5;
                                break
                            }
                            if ((a[e + 48 + (i << 2) >> 2] | 0) == (t | 0)) break;
                            i = i + 1 | 0
                        }
                        do {
                            if ((u | 0) == 5)
                                if ((i | 0) == 8) {
                                    sE();
                                    break
                                } else {
                                    a[e + 48 + (i << 2) >> 2] = t;
                                    r[n >> 0] = (r[n >> 0] | 0) + 1 << 24 >> 24;
                                    r[e + 8 >> 0] = 1;
                                    break
                                }
                        } while (0);
                        return
                    }

                    function pp(e) {
                        e = e | 0;
                        r[e + 9 >> 0] = 1;
                        r[e + 8 >> 0] = 1;
                        return
                    }

                    function vp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        rS((a[1698] | 0) + 136 | 0, t);
                        while (1) {
                            i = a[t >> 2] | 0;
                            if (!i) break;
                            i = a[i >> 2] | 0;
                            a[i + 20 >> 2] = e;
                            mp(i);
                            rS((a[1698] | 0) + 136 | 0, t)
                        }
                        p = r;
                        return
                    }

                    function mp(e) {
                        e = e | 0;
                        tS((a[e + 56 >> 2] | 0) + 48 | 0, e);
                        return
                    }

                    function _p(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = i + 6 | 0;
                        n[r >> 1] = -1;
                        t = t & 65535;
                        a[i >> 2] = SE(e, t, 0) | 0;
                        n[i + 4 >> 1] = EE(e, t, 1) | 0;
                        if ((n[e + 24 >> 1] | 0) == 3) n[r >> 1] = EE(e, t, 2) | 0;
                        return
                    }

                    function bp(e) {
                        e = e | 0;
                        return Tp(e) | 0
                    }

                    function gp(e) {
                        e = e | 0;
                        return wp(e) | 0
                    }

                    function yp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        n[i >> 1] = -1;
                        t = (Ic(e, t, i) | 0) == 0;
                        p = r;
                        return (t ? -1 : n[i >> 1] | 0) | 0
                    }

                    function Ap(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        n[i >> 1] = -1;
                        t = (Mc(e, t, i) | 0) == 0;
                        p = r;
                        return (t ? -1 : n[i >> 1] | 0) | 0
                    }

                    function wp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[1833] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) {
                                t = 0;
                                break
                            }
                            t = a[i >> 2] | 0;
                            if (xp(t, e) | 0) break;
                            i = a[i + 4 >> 2] | 0
                        }
                        return t | 0
                    }

                    function xp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) e = 0;
                        else e = kp(a[e + 8 >> 2] | 0, t) | 0;
                        return e | 0
                    }

                    function kp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = Mc(e, t, i) | 0;
                        p = i;
                        return t | 0
                    }

                    function Tp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[1833] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) {
                                t = 0;
                                break
                            }
                            t = a[i >> 2] | 0;
                            if (Ep(t, e) | 0) break;
                            i = a[i + 4 >> 2] | 0
                        }
                        return t | 0
                    }

                    function Ep(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) e = 0;
                        else e = Sp(a[e + 8 >> 2] | 0, t) | 0;
                        return e | 0
                    }

                    function Sp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = Ic(e, t, i) | 0;
                        p = i;
                        return t | 0
                    }

                    function Pp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0;
                        T = p;
                        p = p + 96 | 0;
                        x = T + 32 | 0;
                        g = T + 16 | 0;
                        m = T + 8 | 0;
                        _ = T;
                        n[g >> 1] = 0;
                        y = g + 2 | 0;
                        n[y >> 1] = -1;
                        A = g + 4 | 0;
                        a[A >> 2] = 0;
                        c = e + 144 | 0;
                        a[c >> 2] = 0;
                        d = e + 130 | 0;
                        v = (r[d >> 0] | 0) == 0 ? 0 : 4;
                        b = e + 48 | 0;
                        f = a[b >> 2] | 0;
                        Ip(f + 824 | 0, n[e >> 1] | 0, x, a[f + 56 >> 2] | 0);
                        f = e + 56 | 0;
                        k = bd(a[b >> 2] | 0, a[f >> 2] | 0) | 0;
                        e: do {
                            if (k | 0) {
                                w = e + 52 | 0;
                                if (!(a[w >> 2] | 0)) {
                                    t = gd() | 0;
                                    if (!t) {
                                        Ad(k);
                                        break
                                    } else h = t
                                } else h = 0;
                                l = e + 16 | 0;
                                do {
                                    if (!(a[l >> 2] | 0)) t = 0;
                                    else {
                                        t = ud() | 0;
                                        if (!t) {
                                            Ad(k);
                                            if (!h) break e;
                                            wd(h);
                                            break e
                                        }
                                        u = a[e + 120 >> 2] | 0;
                                        o = t + 48 | 0;
                                        a[o >> 2] = u;
                                        a[o + 4 >> 2] = ((u | 0) < 0) << 31 >> 31;
                                        o = e + 32 | 0;
                                        if (!(a[o >> 2] | 0)) {
                                            ld(a[k + 92 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            break
                                        }
                                        rS(e + 36 | 0, m);
                                        u = a[o >> 2] | 0;
                                        i = t + 60 | 0;
                                        if ((u | 0) != (a[a[m >> 2] >> 2] | 0)) a[i >> 2] = u;
                                        a[i >> 2] = u;
                                        a[o >> 2] = 0;
                                        ld(a[u + 12 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                        ld(a[k + 92 >> 2] | 0, a[(a[i >> 2] | 0) + 12 >> 2] | 0)
                                    }
                                } while (0);
                                a[k + 4 >> 2] = a[f >> 2];
                                o = a[w >> 2] | 0;
                                do {
                                    if (o) {
                                        i = a[l >> 2] | 0;
                                        if (!i) {
                                            tS(o + 8 | 0, k + 80 | 0);
                                            break
                                        } else {
                                            tS(i + 8 | 0, k + 80 | 0);
                                            break
                                        }
                                    } else {
                                        xd(h);
                                        a[w >> 2] = h;
                                        tS(h + 8 | 0, k + 80 | 0)
                                    }
                                } while (0);
                                a[(a[f >> 2] | 0) + 72 >> 2] = a[w >> 2];
                                i = a[x + 28 >> 2] | 0;
                                if ((i | 0) != -1) {
                                    pf(a[(a[b >> 2] | 0) + 1628 >> 2] | 0, i, m);
                                    ro(a[k + 92 >> 2] | 0, m, e, 0, 4, a[b >> 2] | 0, _);
                                    if (!(a[_ >> 2] | 0)) {
                                        if (t | 0) Wh(t);
                                        r[k + 68 >> 0] = 1;
                                        t = 0
                                    } else r[k + 192 >> 0] = a[e + 156 >> 2]
                                }
                                if (a[c >> 2] | 0) {
                                    f = k + 140 | 0;
                                    a[f >> 2] = a[c >> 2];
                                    a[f + 4 >> 2] = a[c + 4 >> 2];
                                    a[f + 8 >> 2] = a[c + 8 >> 2]
                                }
                                if ((r[d >> 0] | 0) == 0 ? (s[(a[b >> 2] | 0) + 100 >> 0] | 0) < 2 : 0) r[e + 113 >> 0] = 1;
                                i = a[x + 24 >> 2] | 0;
                                if ((i | 0) == -1) {
                                    if (((iu(a[(a[b >> 2] | 0) + 64 >> 2] | 0) | 0) + -18022400 | 0) >>> 0 < 1114112) kd(a[k + 92 >> 2] | 0)
                                } else {
                                    pf(a[(a[b >> 2] | 0) + 1388 >> 2] | 0, i, m);
                                    ro(a[k + 92 >> 2] | 0, m, e, g, v, a[b >> 2] | 0, _);
                                    if (a[_ >> 2] | 0) {
                                        i = e + 112 | 0;
                                        if ((r[i >> 0] | 0) == 1) {
                                            r[k + 71 >> 0] = 1;
                                            r[i >> 0] = 0
                                        }
                                    } else {
                                        if (t | 0) Wh(t);
                                        r[k + 68 >> 0] = 1;
                                        t = 0
                                    }
                                }
                                i = e + 113 | 0;
                                if (r[i >> 0] | 0) {
                                    b = a[b >> 2] | 0;
                                    n[g >> 1] = n[b + 102 >> 1] | 0;
                                    n[y >> 1] = 0;
                                    a[A >> 2] = s[b + 100 >> 0];
                                    if (!(Ro(g, e, 0) | 0)) {
                                        if (t | 0) Wh(t);
                                        r[k + 68 >> 0] = 1;
                                        t = 0
                                    }
                                    r[i >> 0] = 0
                                }
                                if (t | 0) {
                                    a[t + 8 >> 2] = 3;
                                    a[t + 16 >> 2] = a[k + 60 >> 2];
                                    a[t + 12 >> 2] = a[w >> 2];
                                    a[t + 56 >> 2] = a[e + 20 >> 2];
                                    fd(t)
                                }
                                t = a[e + 12 >> 2] | 0;
                                if (t | 0) {
                                    a[k + 52 >> 2] = t;
                                    r[k + 72 >> 0] = 1
                                }
                                n[k + 64 >> 1] = n[e >> 1] | 0;
                                r[k + 185 >> 0] = r[e + 114 >> 0] | 0;
                                if ((r[k + 68 >> 0] | 0) != 1) {
                                    Sd(e, x, 0, 0, k);
                                    Pd(e, n[x + 38 >> 1] | 0, n[x + 40 >> 1] | 0, k);
                                    Mp(e, n[x + 50 >> 1] | 0, n[x + 52 >> 1] | 0, k);
                                    Cp(e, n[x + 54 >> 1] | 0, n[x + 56 >> 1] | 0, k)
                                }
                            }
                        } while (0);
                        p = T;
                        return
                    }

                    function Ip(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0;
                        C = p;
                        p = p + 16 | 0;
                        v = C;
                        a[v >> 2] = 0;
                        u = a[e >> 2] | 0;
                        _ = 19 - (o[u + 24 >> 1] | 0) | 0;
                        O = i + 32 | 0;
                        n[O >> 1] = 0;
                        l = i + 4 | 0;
                        a[l >> 2] = 0;
                        f = i + 42 | 0;
                        r[f >> 0] = 0;
                        c = i + 34 | 0;
                        n[c >> 1] = -1;
                        d = i + 36 | 0;
                        n[d >> 1] = 0;
                        y = i + 28 | 0;
                        a[y >> 2] = -1;
                        A = i + 38 | 0;
                        n[A >> 1] = -1;
                        w = i + 40 | 0;
                        n[w >> 1] = 0;
                        x = i + 8 | 0;
                        a[x >> 2] = 0;
                        k = i + 44 | 0;
                        a[k >> 2] = 0;
                        T = i + 12 | 0;
                        a[T >> 2] = 0;
                        E = i + 48 | 0;
                        n[E >> 1] = -1;
                        S = i + 50 | 0;
                        n[S >> 1] = -1;
                        P = i + 52 | 0;
                        n[P >> 1] = 0;
                        I = i + 54 | 0;
                        n[I >> 1] = -1;
                        M = i + 56 | 0;
                        n[M >> 1] = 0;
                        m = t & 65535;
                        t = EE(u, m, 0) | 0;
                        h[i + 16 >> 2] = t << 16 >> 16 == 0 ? 1.0 : +(t & 65535) / 100.0;
                        n[O >> 1] = EE(u, m, 1) | 0;
                        ME(u, m, 2, i, i + 20 | 0);
                        u = a[e >> 2] | 0;
                        a[i + 24 >> 2] = $s(u, m, 3) | 0;
                        if ((o[u + 24 >> 1] | 0) > 6) {
                            ME(u, m, 4, l, v);
                            r[f >> 0] = (a[v >> 2] | 0) >>> 1;
                            u = a[e >> 2] | 0;
                            n[c >> 1] = EE(u, m, 5) | 0;
                            n[d >> 1] = EE(u, m, 6) | 0
                        }
                        e: do {
                            if (!s) {
                                t = n[u + 24 >> 1] | 0;
                                if (((((t & 65535) > 7 ? (a[y >> 2] = $s(u, m, 7) | 0, (t & 65535) > 9) : 0) ? (n[A >> 1] = EE(u, m, 8) | 0, n[w >> 1] = EE(u, m, 9) | 0, (t & 65535) > 13) : 0) ? (ME(u, m, 10, x, k), g = a[e >> 2] | 0, a[T >> 2] = (TE(g, m, 11) | 0) & 255, b = (a[g + 8 >> 2] | 0) + (G(a[g + 20 >> 2] | 0, m) | 0) | 0, n[E >> 1] = wE(b + (o[(a[g + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0, b = n[g + 24 >> 1] | 0, (b & 65535) > 15) : 0) ? (n[S >> 1] = EE(g, m, 14) | 0, n[P >> 1] = EE(g, m, 15) | 0, (b & 65535) > 17) : 0) {
                                    n[I >> 1] = EE(g, m, 16) | 0;
                                    n[M >> 1] = EE(g, m, 17) | 0
                                }
                            } else switch (_ | 0) {
                                case 0:
                                    {
                                        n[I >> 1] = EE(u, m, 16) | 0;n[M >> 1] = EE(u, m, 17) | 0;n[S >> 1] = EE(u, m, 14) | 0;n[P >> 1] = EE(u, m, 15) | 0;a[y >> 2] = $s(u, m, 7) | 0;n[A >> 1] = EE(u, m, 8) | 0;n[w >> 1] = EE(u, m, 9) | 0;ME(u, m, 10, x, k);O = a[e >> 2] | 0;a[T >> 2] = (TE(O, m, 11) | 0) & 255;n[E >> 1] = wE((a[O + 8 >> 2] | 0) + (G(a[O + 20 >> 2] | 0, m) | 0) + (o[(a[O + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0;
                                        break e
                                    }
                                case 2:
                                    {
                                        n[S >> 1] = EE(u, m, 14) | 0;n[P >> 1] = EE(u, m, 15) | 0;a[y >> 2] = $s(u, m, 7) | 0;n[A >> 1] = EE(u, m, 8) | 0;n[w >> 1] = EE(u, m, 9) | 0;ME(u, m, 10, x, k);O = a[e >> 2] | 0;a[T >> 2] = (TE(O, m, 11) | 0) & 255;n[E >> 1] = wE((a[O + 8 >> 2] | 0) + (G(a[O + 20 >> 2] | 0, m) | 0) + (o[(a[O + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0;
                                        break e
                                    }
                                case 4:
                                    {
                                        a[y >> 2] = $s(u, m, 7) | 0;n[A >> 1] = EE(u, m, 8) | 0;n[w >> 1] = EE(u, m, 9) | 0;ME(u, m, 10, x, k);O = a[e >> 2] | 0;a[T >> 2] = (TE(O, m, 11) | 0) & 255;n[E >> 1] = wE((a[O + 8 >> 2] | 0) + (G(a[O + 20 >> 2] | 0, m) | 0) + (o[(a[O + 36 >> 2] | 0) + 24 >> 1] | 0) | 0) | 0;
                                        break e
                                    }
                                case 8:
                                    {
                                        a[y >> 2] = $s(u, m, 7) | 0;n[A >> 1] = EE(u, m, 8) | 0;n[w >> 1] = EE(u, m, 9) | 0;
                                        break e
                                    }
                                case 10:
                                    {
                                        a[y >> 2] = $s(u, m, 7) | 0;
                                        break e
                                    }
                                default:
                                    break e
                            }
                        } while (0);
                        p = C;
                        return
                    }

                    function Mp(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0;
                        k = p;
                        p = p + 48 | 0;
                        w = k + 24 | 0;
                        x = k;
                        e: do {
                            if (i << 16 >> 16) {
                                A = (i & 65535) + (t & 65535) | 0;
                                u = e + 48 | 0;
                                h = w + 16 | 0;
                                l = w + 12 | 0;
                                f = x + 4 | 0;
                                c = x + 8 | 0;
                                d = x + 12 | 0;
                                v = x + 16 | 0;
                                m = x + 20 | 0;
                                _ = r + 92 | 0;
                                b = e + 56 | 0;
                                g = e + 20 | 0;
                                y = e + 124 | 0;
                                s = r + 116 | 0;
                                while (1) {
                                    if (A >>> 0 <= (t & 65535) >>> 0) break e;
                                    Rp((a[u >> 2] | 0) + 2736 | 0, t, w);
                                    r = Rd() | 0;
                                    if (!r) break e;
                                    pf(a[(a[u >> 2] | 0) + 1568 >> 2] | 0, o[h >> 1] | 0, x);
                                    a[r + 76 >> 2] = o[h >> 1];
                                    i = a[x >> 2] | 0;
                                    a[r + 40 >> 2] = i;
                                    a[r + 44 >> 2] = i;
                                    a[r + 80 >> 2] = 0;
                                    i = a[l >> 2] | 0;
                                    if (i | 0) n[r + 98 >> 1] = wE(i) | 0;
                                    a[x >> 2] = a[w >> 2];
                                    a[f >> 2] = 0;
                                    a[c >> 2] = 2;
                                    a[d >> 2] = 44100;
                                    a[v >> 2] = 2;
                                    a[m >> 2] = r;
                                    i = r + 8 | 0;
                                    ld(a[i >> 2] | 0, a[_ >> 2] | 0);
                                    hd(a[i >> 2] | 0, a[(a[b >> 2] | 0) + 68 >> 2] | 0);
                                    a[g >> 2] = r;
                                    n[y >> 1] = n[r + 94 >> 1] | 0;
                                    Dp(e, x);
                                    i = a[b >> 2] | 0;
                                    a[r + 24 >> 2] = Au(a[(a[i + 60 >> 2] | 0) + 104 >> 2] | 0) | 0;
                                    i = t$[a[1826] & 7](4, 0, i) | 0;
                                    a[r + 28 >> 2] = i;
                                    if ((i | 0) == -1) break;
                                    a[r + 32 >> 2] = a[(a[(th(i) | 0) + 12 >> 2] | 0) + 12 >> 2];
                                    tS(s, r + 60 | 0);
                                    t = t + 1 << 16 >> 16
                                }
                            }
                        } while (0);
                        p = k;
                        return
                    }

                    function Cp(e, t, i, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0;
                        D = p;
                        p = p + 64 | 0;
                        P = D + 24 | 0;
                        I = D + 16 | 0;
                        M = D + 8 | 0;
                        C = D;
                        e: do {
                            if (i << 16 >> 16) {
                                O = e + 48 | 0;
                                f = t & 65535;
                                c = P + 4 | 0;
                                d = e + 56 | 0;
                                v = P + 26 | 0;
                                m = P + 24 | 0;
                                _ = P + 28 | 0;
                                b = P + 20 | 0;
                                g = e + 104 | 0;
                                y = u + 92 | 0;
                                A = P + 12 | 0;
                                w = P + 8 | 0;
                                x = P + 18 | 0;
                                k = P + 16 | 0;
                                T = u + 116 | 0;
                                E = e + 24 | 0;
                                S = e + 28 | 0;
                                i = i & 65535;
                                l = 0;
                                while (1) {
                                    if (l >>> 0 >= i >>> 0) break e;
                                    Op((a[O >> 2] | 0) + 3056 | 0, l + f & 65535, P);
                                    h = Rd() | 0;
                                    if (!h) break e;
                                    pf(a[(a[O >> 2] | 0) + 1568 >> 2] | 0, a[c >> 2] | 0, I);
                                    t = a[P >> 2] | 0;
                                    a[h + 76 >> 2] = t;
                                    F = a[I >> 2] | 0;
                                    a[h + 40 >> 2] = F;
                                    a[h + 44 >> 2] = F;
                                    a[h + 80 >> 2] = 0;
                                    n[h + 94 >> 1] = l;
                                    n[h + 96 >> 1] = s[(a[d >> 2] | 0) + 120 >> 0] | 0;
                                    r[h + 116 >> 0] = 127;
                                    r[h + 117 >> 0] = 127;
                                    r[h + 118 >> 0] = 2;
                                    r[h + 119 >> 0] = n[v >> 1];
                                    a[h + 120 >> 2] = 5e5;
                                    n[h + 124 >> 1] = n[m >> 1] | 0;
                                    n[h + 126 >> 1] = n[_ >> 1] | 0;
                                    do {
                                        if ((t | 0) != -1) {
                                            pf(a[(a[O >> 2] | 0) + 1448 >> 2] | 0, t, M);
                                            a[E >> 2] = u;
                                            a[S >> 2] = h;
                                            ro(a[h + 8 >> 2] | 0, M, e, 0, 1, a[O >> 2] | 0, C);
                                            if (!(a[C >> 2] | 0)) {
                                                Wd(h);
                                                break
                                            } else {
                                                a[S >> 2] = 0;
                                                a[E >> 2] = 0;
                                                R = 9;
                                                break
                                            }
                                        } else R = 9
                                    } while (0);
                                    t: do {
                                        if ((R | 0) == 9) {
                                            R = 0;
                                            t = a[b >> 2] | 0;
                                            do {
                                                if ((t | 0) != -1) {
                                                    pf(a[(a[O >> 2] | 0) + 1688 >> 2] | 0, t, M);
                                                    a[E >> 2] = u;
                                                    a[S >> 2] = h;
                                                    t = h + 8 | 0;
                                                    ro(a[t >> 2] | 0, M, e, 0, 4, a[O >> 2] | 0, C);
                                                    if (!(a[C >> 2] | 0)) {
                                                        Wd(h);
                                                        break t
                                                    } else {
                                                        a[S >> 2] = 0;
                                                        a[E >> 2] = 0;
                                                        break
                                                    }
                                                } else t = h + 8 | 0
                                            } while (0);
                                            nE(h + 102 | 0, 8, g, 8);
                                            B = h + 98 | 0;
                                            F = h + 114 | 0;
                                            Nd(e, a[t >> 2] | 0, a[y >> 2] | 0, (a[A >> 2] | 0) >>> 1, a[w >> 2] | 0, 0, B, F, a[h >> 2] | 0);
                                            Nd(e, a[t >> 2] | 0, a[y >> 2] | 0, o[x >> 1] | 0, o[k >> 1] | 0, 1, B, F, a[h >> 2] | 0);
                                            ld(a[t >> 2] | 0, a[y >> 2] | 0);
                                            hd(a[t >> 2] | 0, a[(a[d >> 2] | 0) + 68 >> 2] | 0);
                                            tS(T, h + 60 | 0)
                                        }
                                    } while (0);
                                    l = l + 1 | 0
                                }
                            }
                        } while (0);
                        p = D;
                        return
                    }

                    function Op(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0;
                        gS(i, 0, 32) | 0;
                        a[i >> 2] = 65535;
                        r = i + 4 | 0;
                        a[r >> 2] = 65535;
                        s = i + 8 | 0;
                        a[s >> 2] = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            o = a[e >> 2] | 0;
                            a[r >> 2] = (EE(o, t, 0) | 0) & 65535;
                            a[i >> 2] = (EE(o, t, 1) | 0) & 65535;
                            ME(o, t, 2, s, i + 12 | 0);
                            s = a[e >> 2] | 0;
                            n[i + 16 >> 1] = EE(s, t, 3) | 0;
                            a[i + 20 >> 2] = $s(s, t, 5) | 0;
                            n[i + 18 >> 1] = EE(s, t, 4) | 0;
                            n[i + 24 >> 1] = EE(s, t, 6) | 0;
                            n[i + 28 >> 1] = EE(s, t, 7) | 0;
                            n[i + 26 >> 1] = EE(s, t, 8) | 0
                        }
                        return
                    }

                    function Rp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = p;
                        p = p + 16 | 0;
                        r = f;
                        gS(i, 0, 24) | 0;
                        s = i + 4 | 0;
                        o = i + 12 | 0;
                        u = i + 18 | 0;
                        a[i >> 2] = 0;
                        a[i + 4 >> 2] = 0;
                        a[i + 8 >> 2] = 0;
                        a[i + 12 >> 2] = 0;
                        n[u >> 1] = -1;
                        h = i + 16 | 0;
                        n[h >> 1] = -1;
                        l = i + 20 | 0;
                        n[l >> 1] = 0;
                        n[i + 22 >> 1] = 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            c = a[e >> 2] | 0;
                            n[h >> 1] = EE(c, t, 0) | 0;
                            n[u >> 1] = EE(c, t, 1) | 0;
                            a[i >> 2] = IE(c, t, 2) | 0;
                            ME(c, t, 3, o, r);
                            if (!(a[r >> 2] | 0)) a[o >> 2] = 0;
                            c = a[e >> 2] | 0;
                            n[l >> 1] = EE(c, t, 4) | 0;
                            ME(c, t, 5, s, r);
                            if (!(a[r >> 2] | 0)) a[s >> 2] = 0
                        }
                        p = f;
                        return
                    }

                    function Dp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0;
                        i = p;
                        p = p + 80 | 0;
                        s = i;
                        aE(s, 68);
                        n[s + 6 >> 1] = n[e + 2 >> 1] | 0;
                        r[s >> 0] = r[e + 4 >> 0] | 0;
                        a[s + 48 >> 2] = t;
                        a[s + 24 >> 2] = a[(a[e + 20 >> 2] | 0) + 8 >> 2];
                        t = e + 124 | 0;
                        r[s + 2 >> 0] = n[t >> 1];
                        n[t >> 1] = -1;
                        t$[a[1826] & 7](3, s, a[e + 56 >> 2] | 0) | 0;
                        p = i;
                        return
                    }

                    function Fp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        l = p;
                        p = p + 16 | 0;
                        s = l;
                        a[s >> 2] = 0;
                        f = a[e >> 2] | 0;
                        u = t & 65535;
                        t = i + 16 | 0;
                        a[t >> 2] = (TE(f, u, 0) | 0) & 255;
                        a[i >> 2] = IE(f, u, 1) | 0;
                        a[i + 28 >> 2] = $s(f, u, 2) | 0;
                        ME(f, u, 3, i + 4 | 0, s);
                        r[i + 26 >> 0] = (a[s >> 2] | 0) >>> ((a[t >> 2] | 0) == 2 ? 3 : 2);
                        ME(a[e >> 2] | 0, u, 4, i + 8 | 0, s);
                        r[i + 27 >> 0] = (a[s >> 2] | 0) >>> 1;
                        t = a[e >> 2] | 0;
                        n[i + 20 >> 1] = EE(t, u, 5) | 0;
                        n[i + 22 >> 1] = EE(t, u, 6) | 0;
                        s = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, u) | 0) | 0;
                        n[i + 24 >> 1] = wE(s + (o[(a[t + 36 >> 2] | 0) + 14 >> 1] | 0) | 0) | 0;
                        s = i + 12 | 0;
                        if ((o[t + 24 >> 1] | 0) > 9) {
                            ME(t, u, 9, s, i + 36 | 0);
                            t = a[e >> 2] | 0;
                            s = n[t + 24 >> 1] | 0;
                            if ((s & 65535) > 10) {
                                a[i + 32 >> 2] = $s(t, u, 10) | 0;
                                if ((s & 65535) > 12) {
                                    n[i + 40 >> 1] = EE(t, u, 11) | 0;
                                    t = EE(t, u, 12) | 0
                                } else h = 7
                            } else h = 4
                        } else {
                            a[s >> 2] = 0;
                            a[i + 36 >> 2] = 0;
                            h = 4
                        }
                        if ((h | 0) == 4) {
                            a[i + 32 >> 2] = -1;
                            h = 7
                        }
                        if ((h | 0) == 7) {
                            n[i + 40 >> 1] = -1;
                            t = 0
                        }
                        n[i + 42 >> 1] = t;
                        p = l;
                        return
                    }

                    function Bp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0.0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            G = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0;
                        Q = p;
                        p = p + 192 | 0;
                        z = Q + 144 | 0;
                        j = Q + 100 | 0;
                        G = Q + 96 | 0;
                        f = Q + 80 | 0;
                        v = Q + 188 | 0;
                        H = Q + 20 | 0;
                        W = Q + 16 | 0;
                        Y = Q;
                        n[v >> 1] = 0;
                        n[f >> 1] = 0;
                        n[f + 2 >> 1] = -1;
                        a[f + 4 >> 2] = 0;
                        q = e + 56 | 0;
                        m = bo(a[(a[q >> 2] | 0) + 60 >> 2] | 0) | 0;
                        V = e + 130 | 0;
                        l = (r[V >> 0] | 0) == 0 ? 0 : 4;
                        gS(j, 0, 44) | 0;
                        X = e + 48 | 0;
                        Fp((a[X >> 2] | 0) + 592 | 0, n[e >> 1] | 0, z);
                        J = bd(a[X >> 2] | 0, a[q >> 2] | 0) | 0;
                        e: do {
                            if (J | 0) {
                                c = e + 52 | 0;
                                if (!(a[c >> 2] | 0)) {
                                    t = gd() | 0;
                                    if (!t) {
                                        Ad(J);
                                        break
                                    }
                                } else t = 0;
                                $ = e + 16 | 0;
                                do {
                                    if (a[$ >> 2] | 0) {
                                        i = ud() | 0;
                                        if (!i) {
                                            Ad(J);
                                            if (!t) break e;
                                            wd(t);
                                            break e
                                        }
                                        U = a[e + 120 >> 2] | 0;
                                        u = i + 48 | 0;
                                        a[u >> 2] = U;
                                        a[u + 4 >> 2] = ((U | 0) < 0) << 31 >> 31;
                                        u = e + 32 | 0;
                                        if (!(a[u >> 2] | 0)) {
                                            ld(a[J + 92 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            break
                                        } else {
                                            rS(e + 36 | 0, H);
                                            L = a[u >> 2] | 0;
                                            U = i + 60 | 0;
                                            a[U >> 2] = L;
                                            a[u >> 2] = 0;
                                            ld(a[L + 12 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            ld(a[J + 92 >> 2] | 0, a[(a[U >> 2] | 0) + 12 >> 2] | 0);
                                            break
                                        }
                                    } else i = 0
                                } while (0);
                                a[J + 4 >> 2] = a[q >> 2];
                                u = a[c >> 2] | 0;
                                do {
                                    if (u) {
                                        t = a[$ >> 2] | 0;
                                        if (!t) {
                                            tS(u + 8 | 0, J + 80 | 0);
                                            break
                                        } else {
                                            tS(t + 8 | 0, J + 80 | 0);
                                            break
                                        }
                                    } else {
                                        xd(t);
                                        a[c >> 2] = t;
                                        tS(t + 8 | 0, J + 80 | 0)
                                    }
                                } while (0);
                                t = a[q >> 2] | 0;
                                a[t + 72 >> 2] = a[c >> 2];
                                u = a[z + 4 >> 2] | 0;
                                a[G >> 2] = u;
                                _ = r[z + 26 >> 0] | 0;
                                if (_ << 24 >> 24 == 0 ? (n[z + 42 >> 1] | 0) == 0 : 0) {
                                    Vp(t);
                                    NE();
                                    r[J + 68 >> 0] = 1;
                                    break
                                }
                                t = a[z + 32 >> 2] | 0;
                                if ((t | 0) == -1) t = i;
                                else {
                                    pf(a[(a[X >> 2] | 0) + 1748 >> 2] | 0, t, H);
                                    ro(a[J + 92 >> 2] | 0, H, e, 0, 4, a[X >> 2] | 0, W);
                                    if (!(a[W >> 2] | 0)) {
                                        if (i | 0) Wh(i);
                                        r[J + 68 >> 0] = 1;
                                        t = 0
                                    } else t = i
                                }
                                i = a[z + 28 >> 2] | 0;
                                if ((i | 0) == -1) {
                                    if (((iu(a[(a[X >> 2] | 0) + 64 >> 2] | 0) | 0) + -18022400 | 0) >>> 0 < 1114112) kd(a[J + 92 >> 2] | 0)
                                } else {
                                    pf(a[(a[X >> 2] | 0) + 1508 >> 2] | 0, i, H);
                                    ro(a[J + 92 >> 2] | 0, H, e, f, l, a[X >> 2] | 0, W);
                                    if (!(a[W >> 2] | 0)) {
                                        if (t | 0) Wh(t);
                                        r[J + 68 >> 0] = 1;
                                        t = 0
                                    }
                                }
                                i = e + 144 | 0;
                                if (a[i >> 2] | 0) {
                                    U = J + 140 | 0;
                                    a[U >> 2] = a[i >> 2];
                                    a[U + 4 >> 2] = a[i + 4 >> 2];
                                    a[U + 8 >> 2] = a[i + 8 >> 2]
                                }
                                if (t | 0) {
                                    a[t + 8 >> 2] = 3;
                                    a[t + 16 >> 2] = a[J + 60 >> 2];
                                    a[t + 12 >> 2] = a[c >> 2];
                                    a[t + 56 >> 2] = a[e + 20 >> 2];
                                    fd(t)
                                }
                                t = a[e + 12 >> 2] | 0;
                                if (t | 0) {
                                    a[J + 52 >> 2] = t;
                                    r[J + 72 >> 0] = 1
                                }
                                n[J + 64 >> 1] = n[e >> 1] | 0;
                                if ((r[J + 68 >> 0] | 0) != 1) {
                                    a[$ >> 2] = J;
                                    t = r[z + 27 >> 0] | 0;
                                    if (t << 24 >> 24) {
                                        U = a[J + 92 >> 2] | 0;
                                        Nd(e, U, U, t & 255, a[z + 8 >> 2] | 0, 0, 0, J + 186 | 0, a[J + 112 >> 2] | 0)
                                    }
                                    t = n[z + 22 >> 1] | 0;
                                    if (!(t << 16 >> 16)) N = J + 92 | 0;
                                    else {
                                        N = J + 92 | 0;
                                        U = a[N >> 2] | 0;
                                        Nd(e, U, U, t & 65535, o[z + 20 >> 1] | 0, 1, 0, J + 186 | 0, a[J + 112 >> 2] | 0)
                                    }
                                    U = a[z + 16 >> 2] | 0;
                                    A = _ & 255;
                                    f = a[z + 12 >> 2] | 0;
                                    L = z + 24 | 0;
                                    B = Ld(U, A, n[L >> 1] | 0, m, v, f, (a[z + 36 >> 2] | 0) >>> 1 & 65535) | 0;
                                    Ud(e, U, 2, m, A, L, u, G);
                                    A = e + 124 | 0;
                                    n[A >> 1] = 0;
                                    w = _ & 255;
                                    F = (U + -1 | 0) >>> 0 < 6;
                                    x = e + 20 | 0;
                                    k = j + 26 | 0;
                                    T = j + 28 | 0;
                                    E = j + 32 | 0;
                                    S = J + 116 | 0;
                                    P = j + 27 | 0;
                                    I = j + 8 | 0;
                                    M = j + 22 | 0;
                                    C = j + 20 | 0;
                                    O = j + 4 | 0;
                                    R = e + 24 | 0;
                                    D = e + 28 | 0;
                                    b = (_ & 255) > 1;
                                    g = e + 100 | 0;
                                    d = 0.0;
                                    i = 0;
                                    y = 0;
                                    l = n[L >> 1] | 0;
                                    _ = a[G >> 2] | 0;
                                    t: while (1) {
                                        t = y & 65535;
                                        if (t >>> 0 >= w >>> 0) {
                                            f = 93;
                                            break
                                        }
                                        i: do {
                                            switch (U | 0) {
                                                case 0:
                                                    {
                                                        n[A >> 1] = y;m = f;c = l;f = 68;
                                                        break
                                                    }
                                                case 6:
                                                case 2:
                                                case 1:
                                                    {
                                                        if ((t | 0) == (l << 16 >> 16 | 0)) {
                                                            Xp((a[X >> 2] | 0) + 592 | 0, n[e >> 1] | 0, l);
                                                            m = f;
                                                            c = l;
                                                            f = 68
                                                        } else {
                                                            t = f;
                                                            f = 67
                                                        }
                                                        break
                                                    }
                                                case 3:
                                                    {
                                                        if (!f) t = 0;
                                                        else {
                                                            i = ((wE(f) | 0) & 65535) + (i & 65535) & 65535;
                                                            t = f + 2 | 0
                                                        }
                                                        if ((i & 65535) < (B & 65535))
                                                            if (!t) {
                                                                t = 0;
                                                                i = (i & 65535) + 1 & 65535;
                                                                f = 67
                                                            } else f = 67;
                                                        else {
                                                            m = t;
                                                            c = l;
                                                            f = 68
                                                        }
                                                        break
                                                    }
                                                case 4:
                                                    {
                                                        do {
                                                            if ((t | 0) != (l << 16 >> 16 | 0)) {
                                                                t = (f | 0) == 0;
                                                                if (!t) i = ((wE(f) | 0) & 65535) + (i & 65535) & 65535;
                                                                if ((i & 65535) < (B & 65535)) {
                                                                    if (!t) break;
                                                                    i = (i & 65535) + 1 & 65535;
                                                                    break
                                                                } else {
                                                                    if (!b) {
                                                                        m = f;
                                                                        c = y;
                                                                        f = 68;
                                                                        break i
                                                                    }
                                                                    Xp((a[X >> 2] | 0) + 592 | 0, n[e >> 1] | 0, y);
                                                                    m = f;
                                                                    c = y;
                                                                    f = 68;
                                                                    break i
                                                                }
                                                            }
                                                        } while (0);t = (f | 0) == 0 ? 0 : f + 2 | 0;f = 67;
                                                        break
                                                    }
                                                case 5:
                                                    {
                                                        t = f + 2 | 0;d = d + +((wE(f) | 0) & 65535) / 1.0e3;
                                                        if (!(d >= +h[g >> 2])) f = 67;
                                                        else {
                                                            m = t;
                                                            c = l;
                                                            f = 68
                                                        }
                                                        break
                                                    }
                                                default:
                                                    {
                                                        t = f;f = 67
                                                    }
                                            }
                                        } while (0);
                                        i: do {
                                            if ((f | 0) == 67) u = _ + 4 | 0;
                                            else if ((f | 0) == 68) {
                                                f = wE(_) | 0;
                                                u = f & 65535;
                                                v = _ + 4 | 0;
                                                t = wE(_ + 2 | 0) | 0;
                                                n[e >> 1] = t;
                                                do {
                                                    if (f << 16 >> 16 != 3) {
                                                        if (t << 16 >> 16 != -1) {
                                                            Fp((a[X >> 2] | 0) + 592 | 0, t, j);
                                                            l = Rd() | 0;
                                                            if (!l) {
                                                                f = 94;
                                                                break t
                                                            }
                                                            a[x >> 2] = l;
                                                            n[l + 94 >> 1] = y;
                                                            n[l + 96 >> 1] = s[(a[q >> 2] | 0) + 120 >> 0] | 0;
                                                            a[l + 76 >> 2] = 65535;
                                                            a[l + 40 >> 2] = 0;
                                                            a[l + 44 >> 2] = 0;
                                                            a[l + 80 >> 2] = 0;
                                                            a[l + 68 >> 2] = 0;
                                                            f = l + 8 | 0;
                                                            ld(a[f >> 2] | 0, a[N >> 2] | 0);
                                                            Lp(e, a[j >> 2] | 0);
                                                            if ((r[k >> 0] | 0) != 1) {
                                                                tS(S, l + 60 | 0);
                                                                r[V >> 0] = 2;
                                                                Wc(u, e);
                                                                break
                                                            }
                                                            t = a[T >> 2] | 0;
                                                            do {
                                                                if ((t | 0) != -1) {
                                                                    pf(a[(a[X >> 2] | 0) + 1508 >> 2] | 0, t, H);
                                                                    ro(a[f >> 2] | 0, H, e, 0, 2, a[X >> 2] | 0, W);
                                                                    if (!(a[W >> 2] | 0)) {
                                                                        Wd(l);
                                                                        t = m;
                                                                        l = c;
                                                                        u = v;
                                                                        break i
                                                                    } else {
                                                                        a[D >> 2] = 0;
                                                                        a[R >> 2] = 0;
                                                                        break
                                                                    }
                                                                } else {
                                                                    if ((iu(a[(a[X >> 2] | 0) + 64 >> 2] | 0) | 0) >>> 0 >= 18022400) break;
                                                                    kd(a[f >> 2] | 0)
                                                                }
                                                            } while (0);
                                                            t = a[E >> 2] | 0;
                                                            do {
                                                                if ((t | 0) != -1) {
                                                                    pf(a[(a[X >> 2] | 0) + 1748 >> 2] | 0, t, H);
                                                                    a[R >> 2] = J;
                                                                    a[D >> 2] = l;
                                                                    ro(a[f >> 2] | 0, H, e, 0, 4, a[X >> 2] | 0, W);
                                                                    if (!(a[W >> 2] | 0)) {
                                                                        Wd(l);
                                                                        t = m;
                                                                        l = c;
                                                                        u = v;
                                                                        break i
                                                                    } else {
                                                                        a[D >> 2] = 0;
                                                                        a[R >> 2] = 0;
                                                                        break
                                                                    }
                                                                }
                                                            } while (0);
                                                            tS(S, l + 60 | 0);
                                                            _ = l + 98 | 0;
                                                            t = l + 114 | 0;
                                                            Nd(e, a[f >> 2] | 0, a[N >> 2] | 0, s[P >> 0] | 0, a[I >> 2] | 0, 0, _, t, a[l >> 2] | 0);
                                                            Nd(e, a[f >> 2] | 0, a[N >> 2] | 0, o[M >> 1] | 0, o[C >> 1] | 0, 1, _, t, a[l >> 2] | 0);
                                                            t = a[O >> 2] | 0;
                                                            if (!t) break;
                                                            _ = t;
                                                            t = wE(_) | 0;
                                                            n[e >> 1] = wE(_ + 2 | 0) | 0;
                                                            r[V >> 0] = 2;
                                                            if (t << 16 >> 16 == 2) {
                                                                Bp(e);
                                                                break
                                                            } else {
                                                                Wc(t & 65535, e);
                                                                break
                                                            }
                                                        }
                                                    } else {
                                                        _ = a[X >> 2] | 0;
                                                        Ip(_ + 824 | 0, t, H, a[_ + 56 >> 2] | 0);
                                                        Sd(e, H, 0, 0, J)
                                                    }
                                                } while (0);
                                                if (F) {
                                                    f = 89;
                                                    break t
                                                } else {
                                                    t = m;
                                                    l = c;
                                                    u = v
                                                }
                                            }
                                        } while (0);
                                        f = t;
                                        y = y + 1 << 16 >> 16;
                                        _ = u
                                    }
                                    if ((f | 0) == 89) {
                                        n[L >> 1] = c;
                                        a[G >> 2] = v;
                                        W = a[q >> 2] | 0;
                                        t = a[W + 60 >> 2] | 0;
                                        a[Y + 8 >> 2] = t;
                                        a[Y >> 2] = Co(W) | 0;
                                        a[Y + 4 >> 2] = U;
                                        n[Y + 12 >> 1] = y;
                                        Yd(t, Y);
                                        t = a[q >> 2] | 0;
                                        if ((r[t + 120 >> 0] | 0) == 0 ? (a[$ >> 2] | 0) == 0 : 0) {
                                            r[t + 162 >> 0] = U;
                                            n[t + 160 >> 1] = y
                                        }
                                    } else if ((f | 0) == 93) {
                                        n[L >> 1] = l;
                                        a[G >> 2] = _
                                    } else if ((f | 0) == 94) {
                                        n[L >> 1] = c;
                                        a[G >> 2] = v
                                    }
                                    Pd(e, n[z + 40 >> 1] | 0, n[z + 42 >> 1] | 0, J);
                                    rp();
                                    np(a[q >> 2] | 0, J)
                                }
                            }
                        } while (0);
                        p = Q;
                        return
                    }

                    function Np(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0;
                        S = p;
                        p = p + 80 | 0;
                        T = S + 24 | 0;
                        g = S + 8 | 0;
                        f = S;
                        E = e + 56 | 0;
                        y = a[E >> 2] | 0;
                        A = a[y + 112 >> 2] | 0;
                        x = e + 20 | 0;
                        k = a[x >> 2] | 0;
                        e: do {
                            if (rf(1) | 0) {
                                i = a[E >> 2] | 0;
                                t: do {
                                    if ((KE(a[i + 56 >> 2] | 0) | 0) > 0) {
                                        t = a[i + 48 >> 2] | 0;
                                        ZE(t) | 0;
                                        while (1) {
                                            if (!t) break t;
                                            o = a[t >> 2] | 0;
                                            if ((a[o + 136 >> 2] | 0) == (a[x >> 2] | 0)) break;
                                            t = a[t + 4 >> 2] | 0
                                        }
                                        Fp((a[e + 48 >> 2] | 0) + 592 | 0, n[e >> 1] | 0, T);
                                        a[E >> 2] = o;
                                        t = a[o + 72 >> 2] | 0;
                                        a[e + 52 >> 2] = t;
                                        t = ol(t, 0) | 0;
                                        i = e + 16 | 0;
                                        a[i >> 2] = t;
                                        if (t | 0 ? (k = Up(t) | 0, a[x >> 2] = k, (k | 0) == 0) : 0) {
                                            sE();
                                            break e
                                        }
                                        r[e + 130 >> 0] = 3;
                                        k = a[T + 4 >> 2] | 0;
                                        T = (wE(k) | 0) & 65535;
                                        n[e >> 1] = wE(k + 2 | 0) | 0;
                                        Wc(T, e);
                                        rp();
                                        np(a[E >> 2] | 0, a[i >> 2] | 0);
                                        break e
                                    }
                                } while (0);
                                if ((s[i + 120 >> 0] | 0) > 7) {
                                    NE();
                                    break
                                }
                                rp();
                                h = e + 16 | 0;
                                np(a[E >> 2] | 0, a[h >> 2] | 0);
                                i = a[E >> 2] | 0;
                                c = (A | 0) != 0;
                                if (c & (KE(a[i + 56 >> 2] | 0) | 0) > 0) {
                                    l = bu() | 0;
                                    t = (l | 0) == 0 ? 0 : 2;
                                    i = a[E >> 2] | 0
                                } else {
                                    t = 0;
                                    l = 0
                                }
                                i = ap(i) | 0;
                                if ((i | 0 ? (nE(i + 84 | 0, 12, (a[E >> 2] | 0) + 84 | 0, 12), r[i + 122 >> 0] = 1, a[i + 136 >> 2] = a[x >> 2], a[E >> 2] = i, u = gd() | 0, d = e + 52 | 0, a[d >> 2] = u, u | 0) : 0) ? (xd(u), v = e + 48 | 0, Fp((a[v >> 2] | 0) + 592 | 0, n[e >> 1] | 0, T), w = bd(a[v >> 2] | 0, a[E >> 2] | 0) | 0, w | 0) : 0) {
                                    o = ud() | 0;
                                    if (!o) {
                                        Ad(w);
                                        break
                                    }
                                    i = a[e + 120 >> 2] | 0;
                                    u = o + 48 | 0;
                                    a[u >> 2] = i;
                                    a[u + 4 >> 2] = ((i | 0) < 0) << 31 >> 31;
                                    u = w + 92 | 0;
                                    ld(a[u >> 2] | 0, a[(a[x >> 2] | 0) + 8 >> 2] | 0);
                                    a[w + 4 >> 2] = a[E >> 2];
                                    tS((a[d >> 2] | 0) + 8 | 0, w + 80 | 0);
                                    a[(a[E >> 2] | 0) + 72 >> 2] = a[d >> 2];
                                    i = a[T + 28 >> 2] | 0;
                                    do {
                                        if ((i | 0) == -1)
                                            if (((iu(a[(a[v >> 2] | 0) + 64 >> 2] | 0) | 0) + -18022400 | 0) >>> 0 < 1114112) {
                                                kd(a[u >> 2] | 0);
                                                m = 27
                                            } else m = 27;
                                        else {
                                            pf(a[(a[v >> 2] | 0) + 1508 >> 2] | 0, i, g);
                                            ro(a[u >> 2] | 0, g, e, 0, 4, a[v >> 2] | 0, f);
                                            if (!(a[f >> 2] | 0)) {
                                                Wh(o);
                                                r[w + 68 >> 0] = 1;
                                                break
                                            } else {
                                                m = 27;
                                                break
                                            }
                                        }
                                    } while (0);
                                    if ((m | 0) == 27) {
                                        a[o + 8 >> 2] = 3;
                                        a[o + 16 >> 2] = a[w + 60 >> 2];
                                        a[o + 12 >> 2] = a[d >> 2];
                                        a[o + 56 >> 2] = a[x >> 2];
                                        fd(o)
                                    }
                                    i = a[e + 12 >> 2] | 0;
                                    if (i | 0) {
                                        a[w + 52 >> 2] = i;
                                        r[w + 72 >> 0] = 1
                                    }
                                    n[w + 64 >> 1] = n[e >> 1] | 0;
                                    if ((r[w + 68 >> 0] | 0) != 1 ? (a[h >> 2] = w, n[e + 124 >> 1] = 0, _ = a[(a[E >> 2] | 0) + 116 >> 2] | 0, b = Rd() | 0, b | 0) : 0) {
                                        a[b + 36 >> 2] = a[(a[x >> 2] | 0) + 36 >> 2];
                                        a[x >> 2] = b;
                                        n[b + 94 >> 1] = 0;
                                        n[b + 96 >> 1] = s[(a[E >> 2] | 0) + 120 >> 0] | 0;
                                        a[b + 76 >> 2] = 65535;
                                        a[b + 40 >> 2] = 0;
                                        a[b + 44 >> 2] = 0;
                                        a[b + 80 >> 2] = 0;
                                        a[b + 68 >> 2] = 0;
                                        ld(a[b + 8 >> 2] | 0, a[u >> 2] | 0);
                                        tS(w + 116 | 0, b + 60 | 0);
                                        if (_) {
                                            i = a[_ + 120 >> 2] | 0;
                                            if (!t) Ju(i, 0);
                                            else Ju(i, 1);
                                            t = t | 65536
                                        }
                                        r[e + 130 >> 0] = 3;
                                        x = (a[E >> 2] | 0) + 76 | 0;
                                        a[x >> 2] = a[x >> 2] | t;
                                        x = a[T + 4 >> 2] | 0;
                                        T = (wE(x) | 0) & 65535;
                                        n[e >> 1] = wE(x + 2 | 0) | 0;
                                        Wc(T, e);
                                        rp();
                                        np(a[E >> 2] | 0, w);
                                        if (l | 0) {
                                            a[l >> 2] = 7;
                                            E = a[E >> 2] | 0;
                                            a[l + 12 >> 2] = Co(E) | 0;
                                            a[l + 16 >> 2] = Co(y) | 0;
                                            a[l + 24 >> 2] = k;
                                            r[E + 123 >> 0] = 1;
                                            gu(A, l);
                                            break
                                        }
                                        x = a[y + 116 >> 2] | 0;
                                        T = x + 148 | 0;
                                        e = a[T >> 2] | 0;
                                        a[T >> 2] = 0;
                                        _l(x, Co(a[E >> 2] | 0) | 0);
                                        a[T >> 2] = e & 65535;
                                        if (c) a[A + 80 >> 2] = k;
                                        if (a[1632] | 0) {
                                            E = a[(a[E >> 2] | 0) + 136 >> 2] | 0;
                                            gS(g, 0, 16) | 0;
                                            a[g >> 2] = a[y + 60 >> 2];
                                            a[g + 4 >> 2] = Co(y) | 0;
                                            E = a[E + 84 >> 2] | 0;
                                            Rs(E >>> 16 & 65535, E & 65535, g + 8 | 0, g + 12 | 0);
                                            ei(0, g)
                                        }
                                    }
                                }
                            } else NE()
                        } while (0);
                        p = S;
                        return
                    }

                    function Lp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(r[t >> 0] | 0)) t = -1;
                        else t = Xs(t) | 0;
                        n[e + 2 >> 1] = t;
                        return
                    }

                    function Up(e) {
                        e = e | 0;
                        e = a[e + 116 >> 2] | 0;
                        if (!(ZE(e) | 0)) e = 0;
                        else e = a[e >> 2] | 0;
                        return e | 0
                    }

                    function Vp(e) {
                        e = e | 0;
                        switch (a[e + 84 >> 2] | 0) {
                            case 1:
                                {
                                    jp(Pc(a[(a[e + 88 >> 2] | 0) + 8 >> 2] | 0) | 0, a[e + 92 >> 2] | 0) | 0;
                                    break
                                }
                            case 3:
                                {
                                    Gp(Pc(a[(a[e + 88 >> 2] | 0) + 8 >> 2] | 0) | 0, a[e + 92 >> 2] & 65535) | 0;
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function Xp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            e = a[e >> 2] | 0;
                            FE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, a[e + 36 >> 2] | 0, t, 7, i)
                        }
                        return
                    }

                    function jp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        r = s + 8 | 0;
                        if ((a[e + 472 >> 2] | 0) != 0 ? (a[e + 576 >> 2] | 0) == 0 : 0) {
                            sE();
                            e = 0
                        } else if ((Ic(e, t, r) | 0) != 0 ? ($p(e + 528 | 0, n[r >> 1] | 0, i) | 0) != 0 : 0) e = a[i >> 2] | 0;
                        else e = 0;
                        p = s;
                        return e | 0
                    }

                    function Gp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        if ((a[e + 472 >> 2] | 0) != 0 ? (a[e + 576 >> 2] | 0) == 0 : 0) {
                            sE();
                            e = 0
                        } else if (!($p(e + 528 | 0, t, i) | 0)) e = 0;
                        else e = a[i >> 2] | 0;
                        p = r;
                        return e | 0
                    }

                    function $p(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        l = i + 4 | 0;
                        u = a[e + 48 >> 2] | 0;
                        s = 0;
                        while (1) {
                            r = s & 65535;
                            if (u >>> 0 <= r >>> 0) {
                                s = 5;
                                break
                            }
                            f = a[e >> 2] | 0;
                            r = (a[f + 8 >> 2] | 0) + (G(a[f + 20 >> 2] | 0, r) | 0) | 0;
                            h = a[f + 36 >> 2] | 0;
                            c = wE(r + (o[h + 2 >> 1] | 0) | 0) | 0;
                            n[l >> 1] = c;
                            if (c << 16 >> 16 == t << 16 >> 16) {
                                s = 4;
                                break
                            } else s = s + 1 << 16 >> 16
                        }
                        if ((s | 0) == 4) {
                            c = a[f + 12 >> 2] | 0;
                            a[i >> 2] = c + (xE(r + (o[h >> 1] | 0) | 0) | 0);
                            r = 1
                        } else if ((s | 0) == 5) {
                            sE();
                            r = 0
                        }
                        return r | 0
                    }

                    function Hp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0.0,
                            s = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0;
                        U = p;
                        p = p + 128 | 0;
                        s = U + 72 | 0;
                        R = U + 4 | 0;
                        B = U;
                        e: do {
                            if (r[e + 130 >> 0] | 0) {
                                N = e + 48 | 0;
                                Yp(a[N >> 2] | 0, n[e >> 1] | 0, s);
                                O = s + 8 | 0;
                                if (r[O >> 0] | 0 ? (zp(a[(a[N >> 2] | 0) + 3388 >> 2] | 0, n[s + 36 >> 1] | 0) | 0) == 0 : 0) {
                                    NE();
                                    break
                                }
                                aE(R, 68);
                                n[R + 6 >> 1] = n[e + 2 >> 1] | 0;
                                r[R >> 0] = r[e + 4 >> 0] | 0;
                                a[R + 16 >> 2] = s;
                                D = s + 44 | 0;
                                a[R + 60 >> 2] = a[D >> 2];
                                F = s + 48 | 0;
                                a[R + 64 >> 2] = a[F >> 2];
                                a[R + 52 >> 2] = a[N >> 2];
                                n[R + 56 >> 1] = n[e >> 1] | 0;
                                i = +h[e + 140 >> 2];
                                if (i != 0.0) h[s + 32 >> 2] = i;
                                if (nd(e) | 0) {
                                    C = e + 32 | 0;
                                    t = e + 12 | 0;
                                    Io(a[(a[C >> 2] | 0) + 12 >> 2] | 0, 120, a[t >> 2] | 0);
                                    M = s + 12 | 0;
                                    if ((r[s + 10 >> 0] | 0) != 2) {
                                        P = ((((a[M >> 2] | 0) >>> 0) / ((o[s + 2 >> 1] | 0) >>> 0) | 0) * 1e3 | 0) + 1e3 | 0;
                                        I = P - (a[t >> 2] | 0) | 0;
                                        Io(a[(a[C >> 2] | 0) + 12 >> 2] | 0, 121, P >>> 0 < I >>> 0 ? P : I)
                                    }
                                    c = R + 24 | 0;
                                    a[c >> 2] = a[(a[C >> 2] | 0) + 12 >> 2];
                                    d = e + 104 | 0;
                                    v = R + 12 | 0;
                                    m = e + 128 | 0;
                                    _ = e + 20 | 0;
                                    b = e + 120 | 0;
                                    g = e + 124 | 0;
                                    y = R + 2 | 0;
                                    A = e + 56 | 0;
                                    w = R + 28 | 0;
                                    x = R + 32 | 0;
                                    k = R + 20 | 0;
                                    T = e + 115 | 0;
                                    E = e + 36 | 0;
                                    S = e + 60 | 0;
                                    P = s + 28 | 0;
                                    I = s + 4 | 0;
                                    f = s + 36 | 0;
                                    t = 0;
                                    s = 0;
                                    while (1) {
                                        if ((s | 0) >= 8) {
                                            L = 42;
                                            break
                                        }
                                        do {
                                            if (!s) {
                                                s = r[d >> 0] | 0;
                                                if (s << 24 >> 24 == -1) {
                                                    a[v >> 2] = 0;
                                                    s = 8;
                                                    break
                                                }
                                                a[v >> 2] = s << 24 >> 24;
                                                t = io() | 0;
                                                if (!t) break e;
                                                od(a[t + 12 >> 2] | 0, a[(a[C >> 2] | 0) + 12 >> 2] | 0);
                                                s = 0;
                                                u = a[v >> 2] | 0;
                                                L = 19
                                            } else {
                                                u = r[e + 104 + s >> 0] | 0;
                                                a[v >> 2] = u;
                                                L = 19
                                            }
                                        } while (0);
                                        if ((L | 0) == 19) {
                                            L = 0;
                                            if ((u | 0) == -1) {
                                                L = 42;
                                                break
                                            }
                                        }
                                        if (t | 0) {
                                            if (!(nd(e) | 0)) break;
                                            od(a[(a[C >> 2] | 0) + 12 >> 2] | 0, a[t + 12 >> 2] | 0)
                                        }
                                        u = a[C >> 2] | 0;
                                        if (u | 0) a[c >> 2] = a[u + 12 >> 2];
                                        l = ud() | 0;
                                        if (!l) {
                                            L = 42;
                                            break
                                        }
                                        r[l + 41 >> 0] = r[m >> 0] | 0;
                                        u = a[(a[C >> 2] | 0) + 12 >> 2] | 0;
                                        a[l + 8 >> 2] = (a[u + 12 >> 2] | 0) == 25 ? 10 : 1;
                                        a[l + 56 >> 2] = a[_ >> 2];
                                        X = a[b >> 2] | 0;
                                        V = l + 48 | 0;
                                        a[V >> 2] = X;
                                        a[V + 4 >> 2] = ((X | 0) < 0) << 31 >> 31;
                                        r[y >> 0] = n[g >> 1];
                                        n[g >> 1] = -1;
                                        hd(u, a[(a[A >> 2] | 0) + 68 >> 2] | 0);
                                        ld(a[(a[C >> 2] | 0) + 12 >> 2] | 0, a[(a[_ >> 2] | 0) + 8 >> 2] | 0);
                                        a[w >> 2] = 0;
                                        a[x >> 2] = 0;
                                        switch (r[O >> 0] | 0) {
                                            case 0:
                                                {
                                                    a[w >> 2] = qp(a[(a[N >> 2] | 0) + 3368 >> 2] | 0) | 0;
                                                    break
                                                }
                                            case 1:
                                                {
                                                    a[x >> 2] = Jp(a[N >> 2] | 0, n[f >> 1] | 0) | 0;
                                                    break
                                                }
                                            case 2:
                                                {
                                                    X = a[N >> 2] | 0;a[w >> 2] = qp(a[X + 3368 >> 2] | 0) | 0;a[x >> 2] = Jp(X, n[f >> 1] | 0) | 0;
                                                    break
                                                }
                                            default:
                                                {}
                                        }
                                        u = t$[a[1826] & 7](0, R, a[A >> 2] | 0) | 0;
                                        do {
                                            if ((u | 0) > -1) {
                                                a[l + 12 >> 2] = a[k >> 2];
                                                a[l + 16 >> 2] = u;
                                                u = r[T >> 0] | 0;
                                                t: do {
                                                    if (u << 24 >> 24) {
                                                        switch (a[I >> 2] | 0) {
                                                            case 20:
                                                            case 17:
                                                            case 16:
                                                            case 15:
                                                            case 14:
                                                            case 6:
                                                            case 3:
                                                            case 2:
                                                            case 0:
                                                                break;
                                                            default:
                                                                break t
                                                        }
                                                        r[l + 40 >> 0] = u
                                                    }
                                                } while (0);
                                                fd(l);
                                                rS(E, B);
                                                a[l + 60 >> 2] = a[a[B >> 2] >> 2];
                                                a[C >> 2] = 0;
                                                l = (cd() | 0) + 172 | 0;
                                                n[l >> 1] = (o[l >> 1] | 0) + 1;
                                                l = a[A >> 2] | 0;
                                                u = a[l + 112 >> 2] | 0;
                                                if (!u) {
                                                    if ((r[l + 122 >> 0] | 0) != 1) break;
                                                    u = a[S >> 2] | 0;
                                                    if (!u) break
                                                }
                                                if ((n[P >> 1] | 0) != -1) {
                                                    Qp(u, a[D >> 2] | 0, a[F >> 2] | 0);
                                                    l = a[A >> 2] | 0
                                                }
                                                if ((Zp(l) | 0) == 1) Qp(u, 0, a[M >> 2] | 0)
                                            }
                                        } while (0);
                                        s = s + 1 | 0
                                    }
                                    if ((L | 0) == 42)
                                        if (!t) break;
                                    ao(t)
                                }
                            } else Wp(e)
                        } while (0);
                        p = U;
                        return
                    }

                    function Wp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        d = p;
                        p = p + 16 | 0;
                        u = d;
                        f = e + 56 | 0;
                        c = bd(a[e + 48 >> 2] | 0, a[f >> 2] | 0) | 0;
                        e: do {
                            if (c | 0) {
                                h = e + 52 | 0;
                                if (!(a[h >> 2] | 0)) {
                                    t = gd() | 0;
                                    if (!t) {
                                        Ad(c);
                                        break
                                    }
                                } else t = 0;
                                l = e + 16 | 0;
                                do {
                                    if (a[l >> 2] | 0) {
                                        i = ud() | 0;
                                        if (!i) {
                                            Ad(c);
                                            if (!t) break e;
                                            wd(t);
                                            break e
                                        }
                                        v = a[e + 120 >> 2] | 0;
                                        o = i + 48 | 0;
                                        a[o >> 2] = v;
                                        a[o + 4 >> 2] = ((v | 0) < 0) << 31 >> 31;
                                        o = e + 32 | 0;
                                        if (!(a[o >> 2] | 0)) {
                                            ld(a[c + 92 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            break
                                        } else {
                                            rS(e + 36 | 0, u);
                                            u = a[o >> 2] | 0;
                                            v = i + 60 | 0;
                                            a[v >> 2] = u;
                                            a[o >> 2] = 0;
                                            ld(a[u + 12 >> 2] | 0, a[(a[e + 20 >> 2] | 0) + 8 >> 2] | 0);
                                            ld(a[c + 92 >> 2] | 0, a[(a[v >> 2] | 0) + 12 >> 2] | 0);
                                            break
                                        }
                                    } else i = 0
                                } while (0);
                                a[c + 4 >> 2] = a[f >> 2];
                                o = a[h >> 2] | 0;
                                do {
                                    if (o) {
                                        t = a[l >> 2] | 0;
                                        if (!t) {
                                            tS(o + 8 | 0, c + 80 | 0);
                                            break
                                        } else {
                                            tS(t + 8 | 0, c + 80 | 0);
                                            break
                                        }
                                    } else {
                                        xd(t);
                                        a[h >> 2] = t;
                                        tS(t + 8 | 0, c + 80 | 0)
                                    }
                                } while (0);
                                t = a[h >> 2] | 0;
                                a[(a[f >> 2] | 0) + 72 >> 2] = t;
                                if (i | 0) {
                                    a[i + 8 >> 2] = 3;
                                    a[i + 16 >> 2] = a[c + 60 >> 2];
                                    a[i + 12 >> 2] = t;
                                    a[i + 56 >> 2] = a[e + 20 >> 2];
                                    fd(i)
                                }
                                t = a[e + 12 >> 2] | 0;
                                if (t | 0) {
                                    a[c + 52 >> 2] = t;
                                    r[c + 72 >> 0] = 1
                                }
                                n[c + 64 >> 1] = n[e >> 1] | 0;
                                a[l >> 2] = c;
                                n[e + 124 >> 1] = 0;
                                t = Rd() | 0;
                                if (t | 0) {
                                    a[e + 20 >> 2] = t;
                                    n[t + 94 >> 1] = 0;
                                    n[t + 96 >> 1] = s[(a[f >> 2] | 0) + 120 >> 0] | 0;
                                    a[t + 76 >> 2] = 65535;
                                    a[t + 40 >> 2] = 0;
                                    a[t + 44 >> 2] = 0;
                                    a[t + 80 >> 2] = 0;
                                    a[t + 68 >> 2] = 0;
                                    ld(a[t + 8 >> 2] | 0, a[c + 92 >> 2] | 0);
                                    tS(c + 116 | 0, t + 60 | 0);
                                    r[e + 130 >> 0] = 3;
                                    Wc(1, e);
                                    rp();
                                    np(a[f >> 2] | 0, c)
                                }
                            }
                        } while (0);
                        p = d;
                        return
                    }

                    function Yp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        ev(e + 716 | 0, t, i);
                        if ((a[e + 64 >> 2] | 0) >>> 0 > 19136511 ? (r = n[i + 28 >> 1] | 0, r << 16 >> 16 != -1) : 0) tv(a[e + 2520 >> 2] | 0, r, i + 44 | 0);
                        return
                    }

                    function zp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return (a[e + ((t & 65535) << 2) >> 2] | 0) != 0 | 0
                    }

                    function qp(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Jp(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (t << 16 >> 16 != -1 ? (i = a[e + 3388 >> 2] | 0, (i | 0) != 0) : 0) e = a[i + ((t & 65535) << 2) >> 2] | 0;
                        else e = 0;
                        return e | 0
                    }

                    function Qp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 68 >> 2] = t;
                        a[e + 72 >> 2] = i;
                        return
                    }

                    function Zp(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (i = a[e + 68 >> 2] | 0, (i | 0) != 0) : 0) {
                            Kp(a[i + 284 >> 2] | 0, t, 0) | 0;
                            e = (a[t >> 2] | 0) == -3 & 1
                        } else e = 0;
                        p = r;
                        return e | 0
                    }

                    function Kp(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if ((e | 0) != 0 ? (r = a[e + 20 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 41 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function ev(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        l = 11 - (o[(a[e >> 2] | 0) + 24 >> 1] | 0) | 0;
                        gS(i, 0, 52) | 0;
                        n[i >> 1] = -1;
                        f = i + 20 | 0;
                        a[f >> 2] = 0;
                        c = i + 24 | 0;
                        a[c >> 2] = 0;
                        s = i + 28 | 0;
                        n[s >> 1] = -1;
                        h[i + 32 >> 2] = 0.0;
                        m = i + 36 | 0;
                        n[m >> 1] = 0;
                        _ = i + 38 | 0;
                        n[_ >> 1] = -1;
                        d = i + 40 | 0;
                        n[d >> 1] = -1;
                        u = a[e >> 2] | 0;
                        v = t & 65535;
                        p = TE(u, v, 1) | 0;
                        t = i + 4 | 0;
                        a[t >> 2] = p & 255;
                        switch (p << 24 >> 24) {
                            case 14:
                                {
                                    a[i + 16 >> 2] = 2;a[t >> 2] = 0;
                                    break
                                }
                            case 16:
                                {
                                    a[i + 16 >> 2] = 2;a[t >> 2] = 2;
                                    break
                                }
                            case 15:
                                {
                                    a[i + 16 >> 2] = 1;a[t >> 2] = 0;
                                    break
                                }
                            case 17:
                                {
                                    a[i + 16 >> 2] = 1;a[t >> 2] = 2;
                                    break
                                }
                            default:
                                a[i + 16 >> 2] = 0
                        }
                        p = i + 8 | 0;
                        r[p >> 0] = TE(u, v, 2) | 0;
                        r[i + 9 >> 0] = TE(u, v, 3) | 0;
                        r[i + 10 >> 0] = TE(u, v, 4) | 0;
                        n[i + 2 >> 1] = EE(u, v, 5) | 0;
                        a[i + 12 >> 2] = SE(u, v, 6) | 0;
                        if ((r[(a[u + 32 >> 2] | 0) + 7 >> 0] | 0) == 11) ME(u, v, 7, f, c);
                        else n[s >> 1] = EE(u, v, 7) | 0;
                        e: do {
                            switch (l | 0) {
                                case 0:
                                    {
                                        t = a[e >> 2] | 0;n[m >> 1] = EE(t, v, 8) | 0;
                                        switch (r[p >> 0] | 0) {
                                            case 0:
                                                {
                                                    n[i >> 1] = EE(t, v, 0) | 0;
                                                    break
                                                }
                                            case 1:
                                                {
                                                    n[_ >> 1] = EE(t, v, 9) | 0;
                                                    break
                                                }
                                            case 2:
                                                {
                                                    n[i >> 1] = EE(t, v, 0) | 0;n[_ >> 1] = EE(t, v, 9) | 0;
                                                    break
                                                }
                                            default:
                                                {}
                                        }
                                        n[d >> 1] = EE(t, v, 10) | 0;
                                        break
                                    }
                                case 1:
                                    {
                                        t = a[e >> 2] | 0;n[m >> 1] = EE(t, v, 8) | 0;
                                        switch (r[p >> 0] | 0) {
                                            case 0:
                                                {
                                                    n[i >> 1] = EE(t, v, 0) | 0;
                                                    break e
                                                }
                                            case 1:
                                                {
                                                    n[_ >> 1] = EE(t, v, 9) | 0;
                                                    break e
                                                }
                                            case 2:
                                                {
                                                    n[i >> 1] = EE(t, v, 0) | 0;n[_ >> 1] = EE(t, v, 9) | 0;
                                                    break e
                                                }
                                            default:
                                                break e
                                        }
                                    }
                                case 2:
                                    {
                                        t = a[e >> 2] | 0;n[m >> 1] = EE(t, v, 8) | 0;
                                        switch (r[p >> 0] | 0) {
                                            case 0:
                                                {
                                                    n[i >> 1] = EE(t, v, 0) | 0;
                                                    break e
                                                }
                                            case 1:
                                                {
                                                    n[_ >> 1] = EE(t, v, 0) | 0;
                                                    break e
                                                }
                                            default:
                                                break e
                                        }
                                    }
                                default:
                                    switch (r[p >> 0] | 0) {
                                        case 0:
                                            {
                                                n[i >> 1] = EE(a[e >> 2] | 0, v, 0) | 0;
                                                break e
                                            }
                                        case 1:
                                            {
                                                n[_ >> 1] = EE(a[e >> 2] | 0, v, 0) | 0;
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                            }
                        } while (0);
                        return
                    }

                    function tv(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        a[i >> 2] = SE(e, t, 0) | 0;
                        a[i + 4 >> 2] = SE(e, t, 1) | 0;
                        return
                    }

                    function iv(e) {
                        e = e | 0;
                        e = e & 65535;
                        do {
                            if (!(e & 32768))
                                if (!(e & 16384)) {
                                    e = e + 3e3 | 0;
                                    break
                                } else {
                                    e = (e & 16383) + 3e3 | 16384;
                                    break
                                }
                            else e = (e & 16383) + 3e3 | 32768
                        } while (0);
                        return e & 65535 | 0
                    }

                    function rv(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            a = 0,
                            s = 0;
                        a = p;
                        p = p + 16 | 0;
                        n = a;
                        if (Sl(e, t & 65535, n) | 0) {
                            s = Wo() | 0;
                            s = dM(s | 0, P | 0, 1e3, 0) | 0;
                            Pl(e, e + 204 | 0, t, s, +h[n >> 2], 1.0, i, 0, 1.0, r)
                        }
                        p = a;
                        return
                    }

                    function nv(e) {
                        e = e | 0;
                        av(e);
                        return
                    }

                    function av(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 32 | 0;
                        t = i;
                        if (!(a[1826] | 0)) a[1826] = a[e >> 2];
                        if (!(Nc((a[e + 8 >> 2] | 0) + 424 | 0, a[e + 12 >> 2] & 65535, t) | 0)) NE();
                        else Lc(n[t + 4 >> 1] | 0, a[t + 12 >> 2] | 0, e);
                        p = i;
                        return
                    }

                    function sv(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            u = 0;
                        s = p;
                        p = p + 64 | 0;
                        n = s;
                        u = a[e + 48 >> 2] | 0;
                        md(u + 972 | 0, t, n, a[u + 56 >> 2] | 0);
                        e: do {
                            if (r << 16 >> 16 != -1)
                                if ((o[n + 42 >> 1] | 0) > (r & 65535)) {
                                    a[i >> 2] = 12;
                                    t = 1;
                                    break
                                } else {
                                    NE();
                                    t = 0;
                                    break
                                }
                            else {
                                t = a[i >> 2] | 0;
                                switch (t | 0) {
                                    case 11:
                                        {
                                            t = 1;
                                            break e
                                        }
                                    case 10:
                                        {
                                            if (((o[(a[e + 24 >> 2] | 0) + 176 >> 1] | 0) + 1 | 0) >>> 0 < (o[n + 42 >> 1] | 0) >>> 0) {
                                                t = 1;
                                                break e
                                            }
                                            break
                                        }
                                    default:
                                        {}
                                }
                                t = (t + -1 | 0) >>> 0 < 4 & 1
                            }
                        } while (0);
                        p = s;
                        return t | 0
                    }

                    function ov(e, t, i, s, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        u = u | 0;
                        h = h | 0;
                        var l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0;
                        E = p;
                        p = p + 160 | 0;
                        l = E + 152 | 0;
                        w = E + 96 | 0;
                        T = E + 32 | 0;
                        y = E + 158 | 0;
                        g = E + 156 | 0;
                        b = E;
                        a[l >> 2] = s;
                        e: do {
                            if (!(uv(e, t, w, T, l, u, y, g) | 0)) {
                                s = (a[e + 24 >> 2] | 0) + 172 | 0;
                                if ((n[s >> 1] | 0) > 0) {
                                    n[s >> 1] = 0;
                                    s = 0
                                } else s = 0
                            } else {
                                v = e + 48 | 0;
                                x = e + 56 | 0;
                                k = bd(a[v >> 2] | 0, a[x >> 2] | 0) | 0;
                                if (!k) {
                                    s = (a[e + 24 >> 2] | 0) + 172 | 0;
                                    if ((n[s >> 1] | 0) <= 0) {
                                        s = 0;
                                        break
                                    }
                                    n[s >> 1] = 0;
                                    s = 0;
                                    break
                                }
                                s = t + 16 | 0;
                                do {
                                    if (a[s >> 2] | 0) {
                                        u = ud() | 0;
                                        if (!u) {
                                            Ad(k);
                                            s = 0;
                                            break e
                                        } else {
                                            a[u + 8 >> 2] = 3;
                                            a[u + 16 >> 2] = a[k + 60 >> 2];
                                            a[u + 12 >> 2] = a[e + 52 >> 2];
                                            a[u + 56 >> 2] = a[s >> 2];
                                            a[u + 20 >> 2] = -1;
                                            m = a[e + 120 >> 2] | 0;
                                            _ = u + 48 | 0;
                                            a[_ >> 2] = m;
                                            a[_ + 4 >> 2] = ((m | 0) < 0) << 31 >> 31;
                                            mp(u);
                                            break
                                        }
                                    }
                                } while (0);
                                m = a[l >> 2] | 0;
                                _ = (m | 0) == 11;
                                if (!_) a[(a[x >> 2] | 0) + 96 >> 2] = -1;
                                tS(t + 20 | 0, k + 80 | 0);
                                u = a[e + 12 >> 2] | 0;
                                d = t + 36 | 0;
                                s = a[d >> 2] | 0;
                                if (u | 0 ? (c = u - (((a[s + 168 >> 2] | 0) >>> 0) / 1e3 | 0) | 0, a[k + 52 >> 2] = c, (c | 0) > 0) : 0) r[k + 72 >> 0] = 1;
                                a[k + 4 >> 2] = a[x >> 2];
                                c = k + 92 | 0;
                                od(a[c >> 2] | 0, a[s + 92 >> 2] | 0);
                                r[k + 184 >> 0] = 1;
                                hv(a[c >> 2] | 0);
                                s = a[d >> 2] | 0;
                                if ((n[s + 66 >> 1] | 0) == -1) t = s;
                                else {
                                    l = T + 44 | 0;
                                    t = k + 66 | 0;
                                    s = a[T + 4 >> 2] | 0;
                                    u = 0;
                                    while (1) {
                                        if ((u & 65535) >= (o[l >> 1] | 0)) break;
                                        f = s + 2 | 0;
                                        s = wE(s) | 0;
                                        do {
                                            if ((qf((a[v >> 2] | 0) + 1808 | 0, s, b) | 0) == 1) {
                                                if ((ep(a[c >> 2] | 0, s, a[v >> 2] | 0) | 0) != 1) {
                                                    NE();
                                                    break
                                                }
                                                if ((r[b >> 0] | 0) == 1) n[t >> 1] = s
                                            } else NE()
                                        } while (0);
                                        s = f;
                                        u = u + 1 << 16 >> 16
                                    }
                                    t = a[d >> 2] | 0
                                }
                                b = k + 32 | 0;
                                a[b >> 2] = 0;
                                a[b + 4 >> 2] = 0;
                                a[b + 8 >> 2] = 0;
                                a[b + 12 >> 2] = 0;
                                b = r[T + 33 >> 0] | 0;
                                r[k + 189 >> 0] = b;
                                s = n[T + 40 >> 1] | 0;
                                n[k + 174 >> 1] = s;
                                r[k + 190 >> 0] = r[T + 32 >> 0] | 0;
                                r[k + 191 >> 0] = r[T + 34 >> 0] | 0;
                                u = ((a[T + 20 >> 2] | 0) * 1e3 | 0) + (o[T + 54 >> 1] | 0) | 0;
                                a[k + 168 >> 2] = u;
                                v = fM(a[T + 24 >> 2] | 0, 0, 1e3, 0) | 0;
                                v = aM(v | 0, P | 0, o[T + 56 >> 1] | 0, 0) | 0;
                                l = k + 160 | 0;
                                a[l >> 2] = v;
                                a[l + 4 >> 2] = P;
                                n[k + 64 >> 1] = n[y >> 1] | 0;
                                l = n[g >> 1] | 0;
                                n[k + 176 >> 1] = l;
                                n[k + 180 >> 1] = m;
                                r[k + 193 >> 0] = a[T + 60 >> 2];
                                if ((b << 24 >> 24 == 1 ? (A = s << 16 >> 16, (A | 0) > (h | 0)) : 0) ? (h = G((((u >>> 0) / (A >>> 0) | 0) >>> 0) / 1e3 | 0, h) | 0, A = k + 52 | 0, h = h + (a[A >> 2] | 0) | 0, a[A >> 2] = h, (h | 0) > 0) : 0) r[k + 72 >> 0] = 1;
                                a[d >> 2] = k;
                                a[k + 56 >> 2] = i;
                                r[t + 187 >> 0] = 1;
                                Sd(e, 0, w, T, k);
                                t: do {
                                    if (_) s = 1;
                                    else {
                                        s = a[k + 116 >> 2] | 0;
                                        ZE(s) | 0;
                                        u = k + 188 | 0;
                                        while (1) {
                                            if (!s) {
                                                s = 0;
                                                break t
                                            }
                                            if ((r[(a[s >> 2] | 0) + 112 >> 0] | 0) == 2) r[u >> 0] = 1;
                                            s = a[s + 4 >> 2] | 0
                                        }
                                    }
                                } while (0);
                                Pd(e, n[T + 46 >> 1] | 0, n[T + 48 >> 1] | 0, k);
                                T = a[x >> 2] | 0;
                                e = a[T + 60 >> 2] | 0;
                                lv(e, Co(T) | 0, l & 65535);
                                if (s) {
                                    n[k + 178 >> 1] = n[t + 178 >> 1] | 0;
                                    fv(k, t);
                                    s = 1
                                } else s = 1
                            }
                        } while (0);
                        p = E;
                        return s | 0
                    }

                    function uv(e, t, i, r, s, u, h, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        n[l >> 1] = u;
                        p = e + 48 | 0;
                        c = a[p >> 2] | 0;
                        md(c + 972 | 0, n[t + 48 >> 1] | 0, i, a[c + 56 >> 2] | 0);
                        e: do {
                            if (u << 16 >> 16 == -1) {
                                t = a[s >> 2] | 0;
                                switch (t | 0) {
                                    case 10:
                                        break;
                                    case 11:
                                        {
                                            t = e + 24 | 0;s = n[(a[t >> 2] | 0) + 64 >> 1] | 0;n[h >> 1] = s;Ed((a[p >> 2] | 0) + 1100 | 0, s, r);n[l >> 1] = n[(a[t >> 2] | 0) + 176 >> 1] | 0;t = 1;
                                            break e
                                        }
                                    default:
                                        {
                                            v = 20;
                                            break e
                                        }
                                }
                                f = e + 24 | 0;
                                t = a[f >> 2] | 0;
                                c = n[t + 176 >> 1] | 0;
                                if (((c & 65535) + 1 | 0) >>> 0 < (o[i + 42 >> 1] | 0) >>> 0) {
                                    t = a[i + 4 >> 2] | 0;
                                    u = 0;
                                    while (1) {
                                        if ((c & 65535) < (u & 65535)) break;
                                        t = t + 2 | 0;
                                        u = u + 1 << 16 >> 16
                                    }
                                    t = wE(t) | 0;
                                    n[h >> 1] = t;
                                    Ed((a[p >> 2] | 0) + 1100 | 0, t, r);
                                    n[l >> 1] = (o[(a[f >> 2] | 0) + 176 >> 1] | 0) + 1;
                                    t = 1
                                } else v = 18
                            } else {
                                t = i + 42 | 0;
                                if ((o[t >> 1] | 0) <= (u & 65535)) {
                                    NE();
                                    t = a[s >> 2] | 0;
                                    if ((t | 0) != 10) {
                                        v = 20;
                                        break
                                    }
                                    t = a[e + 24 >> 2] | 0;
                                    v = 18;
                                    break
                                }
                                f = i + 4 | 0;
                                u = wE((a[f >> 2] | 0) + ((u & 65535) << 1) | 0) | 0;
                                n[h >> 1] = u;
                                Ed((a[p >> 2] | 0) + 1100 | 0, u, r);
                                f = a[f >> 2] | 0;
                                u = n[t >> 1] | 0;
                                t = 0;
                                while (1) {
                                    if ((t & 65535) >= (u & 65535)) break;
                                    p = wE(f) | 0;
                                    if (p << 16 >> 16 == (n[h >> 1] | 0)) {
                                        v = 6;
                                        break
                                    }
                                    t = t + 1 << 16 >> 16
                                }
                                if ((v | 0) == 6) n[l >> 1] = t;
                                a[s >> 2] = 12;
                                t = 1
                            }
                        } while (0);
                        if ((v | 0) == 18) {
                            t = cv(a[p >> 2] | 0, i, n[t + 64 >> 1] | 0, r, h, l) | 0;
                            if (!t) {
                                t = a[s >> 2] | 0;
                                v = 20
                            }
                        }
                        e: do {
                            if ((v | 0) == 20)
                                if ((t + -1 | 0) >>> 0 < 4 ? (dv(e, t, h), d = n[h >> 1] | 0, d << 16 >> 16 != -1) : 0) {
                                    Ed((a[p >> 2] | 0) + 1100 | 0, d, r);
                                    f = n[i + 42 >> 1] | 0;
                                    t = a[i + 4 >> 2] | 0;
                                    u = 0;
                                    while (1) {
                                        if ((u & 65535) >= (f & 65535)) {
                                            t = 1;
                                            break e
                                        }
                                        v = wE(t) | 0;
                                        if (v << 16 >> 16 == (n[h >> 1] | 0)) break;
                                        t = t + 2 | 0;
                                        u = u + 1 << 16 >> 16
                                    }
                                    n[l >> 1] = u;
                                    t = 1
                                } else t = 0
                        } while (0);
                        return (t | 0) != 0 | 0
                    }

                    function hv(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 101 | 0;
                        if (r[t >> 0] | 0) {
                            r[t >> 0] = 0;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function lv(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[e + 272 >> 2] | 0;
                        if (r | 0) l$[r & 7](a[e + 276 >> 2] | 0, t, i);
                        return
                    }

                    function fv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        u = a[t + 116 >> 2] | 0;
                        ZE(u) | 0;
                        h = e + 116 | 0;
                        while (1) {
                            if (!u) break;
                            t = a[u >> 2] | 0;
                            e = a[h >> 2] | 0;
                            ZE(e) | 0;
                            i = t + 94 | 0;
                            while (1) {
                                if (!e) break;
                                r = a[e >> 2] | 0;
                                if ((n[i >> 1] | 0) == (n[r + 94 >> 1] | 0)) {
                                    l = 6;
                                    break
                                }
                                e = a[e + 4 >> 2] | 0
                            }
                            e: do {
                                if ((l | 0) == 6) {
                                    l = 0;
                                    s = t + 48 | 0;
                                    e = a[s >> 2] | 0;
                                    ZE(e) | 0;
                                    o = r + 48 | 0;
                                    t = r + 8 | 0;
                                    t: while (1) {
                                        if (!e) break e;
                                        i = a[e >> 2] | 0;
                                        e = a[e + 4 >> 2] | 0;
                                        switch (a[i + 8 >> 2] | 0) {
                                            case 10:
                                            case 8:
                                            case 1:
                                                break;
                                            default:
                                                continue t
                                        }
                                        iS(s, i);
                                        tS(o, i);
                                        ld(a[(a[i + 60 >> 2] | 0) + 12 >> 2] | 0, a[t >> 2] | 0)
                                    }
                                }
                            } while (0);
                            u = a[u + 4 >> 2] | 0
                        }
                        return
                    }

                    function cv(e, t, i, r, s, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = t + 42 | 0;
                        l = (i & 65535) + 1 | 0;
                        h = 0;
                        i = a[t + 4 >> 2] | 0;
                        while (1) {
                            if ((h & 65535) >= (o[f >> 1] | 0)) {
                                i = 0;
                                break
                            }
                            t = wE(i) | 0;
                            n[s >> 1] = t;
                            if ((l | 0) == (t & 65535 | 0)) {
                                c = 4;
                                break
                            }
                            h = h + 1 << 16 >> 16;
                            i = i + 2 | 0
                        }
                        if ((c | 0) == 4) {
                            Ed(e + 1100 | 0, t, r);
                            n[u >> 1] = h;
                            i = 1
                        }
                        return i | 0
                    }

                    function dv(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        A = p;
                        p = p + 80 | 0;
                        y = A + 8 | 0;
                        l = A + 74 | 0;
                        v = A;
                        d = A + 72 | 0;
                        n[d >> 1] = 0;
                        f = bo(a[(a[e + 56 >> 2] | 0) + 60 >> 2] | 0) | 0;
                        n[i >> 1] = -1;
                        b = e + 48 | 0;
                        g = e + 24 | 0;
                        Ed((a[b >> 2] | 0) + 1100 | 0, n[(a[g >> 2] | 0) + 64 >> 1] | 0, y);
                        h = a[y + 8 >> 2] | 0;
                        a[v >> 2] = h;
                        c = n[y + 50 >> 1] | 0;
                        u = a[y + 12 >> 2] | 0;
                        y = y + 52 | 0;
                        m = n[y >> 1] | 0;
                        n[l >> 1] = m;
                        d = Ld(t, c, m, f, d, u, c) | 0;
                        Ud(e, t, 3, f, c, l, h, v);
                        h = c & 65535;
                        l = n[l >> 1] | 0;
                        f = l << 16 >> 16;
                        c = (c & 65535) > 1;
                        d = d & 65535;
                        e = 0;
                        v = a[v >> 2] | 0;
                        m = 0;
                        while (1) {
                            if (m >>> 0 >= h >>> 0) break;
                            r = wE(v) | 0;
                            v = v + 2 | 0;
                            e: do {
                                switch (t | 0) {
                                    case 2:
                                    case 1:
                                        {
                                            if ((m | 0) == (f | 0)) {
                                                n[i >> 1] = r;
                                                n[y >> 1] = l;
                                                if (c) {
                                                    pv((a[b >> 2] | 0) + 1100 | 0, n[(a[g >> 2] | 0) + 64 >> 1] | 0, l);
                                                    r = u;
                                                    _ = 19
                                                } else o = u
                                            } else {
                                                r = u;
                                                _ = 19
                                            }
                                            break
                                        }
                                    case 3:
                                        {
                                            if (!u) {
                                                o = 0;
                                                s = 100 / (h >>> 0) | 0;
                                                e = e & 65535
                                            } else {
                                                o = u + 2 | 0;
                                                s = e & 65535;
                                                e = (wE(u) | 0) & 65535
                                            }
                                            u = s + e | 0;e = u & 65535;
                                            if ((u & 65535) >>> 0 < d >>> 0) {
                                                r = o;
                                                _ = 19
                                            } else n[i >> 1] = r;
                                            break
                                        }
                                    case 4:
                                        {
                                            if ((m | 0) != (f | 0)) {
                                                if (!u) s = 1;
                                                else s = (wE(u) | 0) & 65535;
                                                o = s + (e & 65535) | 0;
                                                e = o & 65535;
                                                if ((o & 65535) >>> 0 >= d >>> 0) {
                                                    n[i >> 1] = r;
                                                    s = m & 65535;
                                                    n[y >> 1] = s;
                                                    if (!c) {
                                                        o = u;
                                                        break e
                                                    }
                                                    pv((a[b >> 2] | 0) + 1100 | 0, n[(a[g >> 2] | 0) + 64 >> 1] | 0, s);
                                                    r = u;
                                                    _ = 19;
                                                    break e
                                                }
                                            }
                                            r = (u | 0) == 0 ? 0 : u + 2 | 0;_ = 19;
                                            break
                                        }
                                    default:
                                        {
                                            r = u;_ = 19
                                        }
                                }
                            } while (0);
                            if ((_ | 0) == 19) {
                                _ = 0;
                                o = r;
                                r = n[i >> 1] | 0
                            }
                            if (r << 16 >> 16 != -1) break;
                            else {
                                u = o;
                                m = m + 1 | 0
                            }
                        }
                        p = A;
                        return
                    }

                    function pv(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        if ((a[e + 48 >> 2] | 0) >>> 0 > t >>> 0) {
                            e = a[e >> 2] | 0;
                            DE(a[e + 8 >> 2] | 0, a[e + 20 >> 2] | 0, n[(a[e + 36 >> 2] | 0) + 36 >> 1] | 0, t, i)
                        }
                        return
                    }

                    function vv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        l = p;
                        p = p + 80 | 0;
                        s = l + 4 | 0;
                        h = l;
                        aE(s, 68);
                        n[s + 6 >> 1] = -1;
                        r[s >> 0] = r[e + 4 >> 0] | 0;
                        a[s + 36 >> 2] = t;
                        if (nd(e) | 0) a[s + 24 >> 2] = a[(a[e + 32 >> 2] | 0) + 12 >> 2];
                        i = ud() | 0;
                        if (i | 0 ? (a[i + 8 >> 2] = 7, a[i + 56 >> 2] = a[e + 20 >> 2], t = a[e + 120 >> 2] | 0, u = i + 48 | 0, a[u >> 2] = t, a[u + 4 >> 2] = ((t | 0) < 0) << 31 >> 31, u = e + 124 | 0, r[s + 2 >> 0] = n[u >> 1], n[u >> 1] = -1, u = t$[a[1826] & 7](1, s, a[e + 56 >> 2] | 0) | 0, (u | 0) > -1) : 0) {
                            a[i + 12 >> 2] = a[s + 20 >> 2];
                            a[i + 16 >> 2] = u;
                            fd(i);
                            t = e + 32 | 0;
                            if (a[t >> 2] | 0) {
                                rS(e + 36 | 0, h);
                                a[i + 60 >> 2] = a[a[h >> 2] >> 2];
                                a[t >> 2] = 0
                            }
                            h = (cd() | 0) + 172 | 0;
                            n[h >> 1] = (o[h >> 1] | 0) + 1
                        }
                        p = l;
                        return
                    }

                    function mv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if ((t | 0) < 0) sE();
                            else {
                                if (!e) {
                                    e = bp(t) | 0;
                                    if (!e) {
                                        sE();
                                        break
                                    }
                                }
                                t = yp(a[e + 8 >> 2] | 0, t) | 0;
                                return (t << 16 >> 16 == -1 ? -1 : t & 65535) | 0
                            }
                        } while (0);
                        return -1
                    }

                    function _v(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (!t) sE();
                            else {
                                if (!e) {
                                    e = gp(t) | 0;
                                    if (!e) {
                                        sE();
                                        break
                                    }
                                }
                                t = Ap(a[e + 8 >> 2] | 0, t) | 0;
                                return (t << 16 >> 16 == -1 ? -1 : t & 65535) | 0
                            }
                        } while (0);
                        return -1
                    }

                    function bv(e, t, i, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0.0;
                        L = p;
                        p = p + 16 | 0;
                        R = L;
                        D = e + 4 | 0;
                        F = i + 8 | 0;
                        B = i + 16 | 0;
                        b = i + 20 | 0;
                        g = i + 24 | 0;
                        y = i + 28 | 0;
                        A = i + 12 | 0;
                        w = i + 6 | 0;
                        x = i + 5 | 0;
                        k = i + 2 | 0;
                        T = i + 4 | 0;
                        E = i + 40 | 0;
                        S = i + 44 | 0;
                        P = i + 50 | 0;
                        I = o + 112 | 0;
                        M = o + 116 | 0;
                        C = i + 52 | 0;
                        O = i + 7 | 0;
                        _ = t + 2200 | 0;
                        l = a[e >> 2] | 0;
                        m = 1;
                        v = o + 24 | 0;
                        while (1) {
                            if (!m) break;
                            o = wE(l) | 0;
                            t = l + 3 | 0;
                            d = r[l + 2 >> 0] | 0;
                            do {
                                switch (o << 16 >> 16) {
                                    case 0:
                                        {
                                            u = 0;o = v;
                                            break
                                        }
                                    case 43:
                                        {
                                            r[F >> 0] = r[t >> 0] | 0;u = m;o = v;t = l + 4 | 0;
                                            break
                                        }
                                    case 65:
                                        {
                                            c = (d & 255) >>> 2 & 255;o = 0;u = t;l = v;
                                            while (1) {
                                                if (o >>> 0 >= c >>> 0) break;
                                                f = Js(xE(u) | 0) | 0;
                                                if (f << 16 >> 16 != -1) n[l >> 1] = f;
                                                o = o + 1 | 0;
                                                u = u + 4 | 0;
                                                l = l + 2 | 0
                                            }
                                            u = m;o = v + (c << 1) | 0;t = t + (d & -4 & 255) | 0;
                                            break
                                        }
                                    case 67:
                                        {
                                            U = +((wE(t) | 0) & 65535) / 1.0e4 * 360.0;jo(B, b, U, +((wE(l + 5 | 0) | 0) & 65535) / 1.0e4 * 360.0);u = m;o = v;t = l + 7 | 0;
                                            break
                                        }
                                    case 68:
                                        {
                                            a[g >> 2] = xE(t) | 0;u = m;o = v;t = l + 7 | 0;
                                            break
                                        }
                                    case 69:
                                        {
                                            a[y >> 2] = xE(t) | 0;u = m;o = v;t = l + 7 | 0;
                                            break
                                        }
                                    case 70:
                                        {
                                            a[A >> 2] = s[t >> 0];u = m;o = v;t = l + 4 | 0;
                                            break
                                        }
                                    case 80:
                                        {
                                            r[w >> 0] = r[t >> 0] | 0;t = l + 4 | 0;N = 15;
                                            break
                                        }
                                    case 72:
                                        {
                                            N = 15;
                                            break
                                        }
                                    case 81:
                                        {
                                            r[w >> 0] = r[t >> 0] | 0;u = m;o = v;t = l + 4 | 0;
                                            break
                                        }
                                    case 79:
                                    case 73:
                                        {
                                            n[i >> 1] = wE(t) | 0;t = l + 7 | 0;n[k >> 1] = wE(l + 5 | 0) | 0;
                                            if (o << 16 >> 16 == 79) {
                                                r[T >> 0] = r[t >> 0] | 0;
                                                u = m;
                                                o = v;
                                                t = l + 8 | 0
                                            } else {
                                                u = m;
                                                o = v
                                            }
                                            break
                                        }
                                    case 74:
                                        {
                                            h[E >> 2] = +((wE(t) | 0) & 65535) / 100.0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 75:
                                        {
                                            n[S >> 1] = wE(t) | 0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 78:
                                        {
                                            n[P >> 1] = wE(t) | 0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 91:
                                        {
                                            u = wE(t) | 0;a[M >> 2] = u & 65535;pc(u, I);u = 0;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 92:
                                        {
                                            u = wE(t) | 0;Ss(a[_ >> 2] | 0, u, R);vc(a[R >> 2] | 0, I);u = 0;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 108:
                                        {
                                            n[C >> 1] = wE(t) | 0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 114:
                                        {
                                            r[O >> 0] = r[t >> 0] | 0;u = m;o = v;t = l + 4 | 0;
                                            break
                                        }
                                    case 127:
                                        {
                                            n[P >> 1] = wE(t) | 0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    case 128:
                                        {
                                            n[C >> 1] = wE(t) | 0;u = m;o = v;t = l + 5 | 0;
                                            break
                                        }
                                    default:
                                        {
                                            u = m;o = v;t = t + (d & 255) | 0
                                        }
                                }
                            } while (0);
                            if ((N | 0) == 15) {
                                N = 0;
                                r[x >> 0] = (s[x >> 0] | 0) + (s[t >> 0] | 0);
                                u = m;
                                o = v;
                                t = t + 1 | 0
                            }
                            l = t;
                            m = ((a[D >> 2] | 0) + (a[e >> 2] | 0) | 0) == (t | 0) ? 0 : u;
                            v = o
                        }
                        p = L;
                        return
                    }

                    function gv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        o = f;
                        u = e + 4 | 0;
                        h = t + 100 | 0;
                        l = t + 48 | 0;
                        n = t + 144 | 0;
                        r = a[e >> 2] | 0;
                        t = 1;
                        while (1) {
                            if (!t) break;
                            i = r + 3 | 0;
                            switch ((wE(r) | 0) << 16 >> 16) {
                                case 0:
                                    {
                                        t = 0;
                                        break
                                    }
                                case 91:
                                    {
                                        Go(wE(i) | 0, h);i = r + 5 | 0;
                                        break
                                    }
                                case 92:
                                    {
                                        i = wE(i) | 0;Ss(a[(a[l >> 2] | 0) + 2200 >> 2] | 0, i, o);$o(a[o >> 2] | 0, h);i = r + 5 | 0;
                                        break
                                    }
                                case 99:
                                    {
                                        i = wE(i) | 0;Ss(a[(a[l >> 2] | 0) + 2200 >> 2] | 0, i, o);Bs(a[o >> 2] | 0, n);i = r + 5 | 0;
                                        break
                                    }
                                default:
                                    i = i + (s[r + 2 >> 0] | 0) | 0
                            }
                            r = i;
                            t = ((a[u >> 2] | 0) + (a[e >> 2] | 0) | 0) == (i | 0) ? 0 : t
                        }
                        p = f;
                        return
                    }

                    function yv(e) {
                        e = e | 0;
                        var t = 0;
                        t = s[e + 12 >> 0] | 0;
                        return (G(t + 392 + (a[e + 8 >> 2] << 2) + (t * 12 | 0) | 0, (a[e + 4 >> 2] | 0) + (a[e >> 2] | 0) | 0) | 0) + 32 | 0
                    }

                    function Av(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = p;
                        p = p + 16 | 0;
                        n = f;
                        o = a[1681] | 0;
                        do {
                            if (!o) {
                                if (!e) {
                                    a[n >> 2] = 64;
                                    a[n + 4 >> 2] = 16;
                                    a[n + 8 >> 2] = 4;
                                    r[n + 12 >> 0] = 8;
                                    e = n
                                }
                                u = yv(e) | 0;
                                if ((u | 0) >= 1) {
                                    if ((t | 0) == 0 & (i | 0) == 0) {
                                        t = oi(u) | 0;
                                        o = t;
                                        n = u
                                    } else {
                                        o = t;
                                        n = i;
                                        t = 0
                                    }
                                    if ((n | 0) < (u | 0) | (o | 0) == 0) {
                                        sE();
                                        if (!t) break;
                                        si(t);
                                        break
                                    }
                                    l = s[e + 12 >> 0] | 0;
                                    l = l + 376 + (a[e + 8 >> 2] << 2) + (l * 12 | 0) | 0;
                                    a[1729] = a[e >> 2];
                                    a[1730] = a[e + 4 >> 2];
                                    a[1731] = a[e + 8 >> 2];
                                    a[1732] = a[e + 12 >> 2];
                                    a[1733] = l;
                                    aE(o, n);
                                    o = o + 7 & -8;
                                    h = o;
                                    a[h >> 2] = t;
                                    t = e + 4 | 0;
                                    u = h + 4 | 0;
                                    n = 0;
                                    o = o + 24 | 0;
                                    while (1) {
                                        i = (a[t >> 2] | 0) + (a[e >> 2] | 0) | 0;
                                        if ((i | 0) <= (n & 65535 | 0)) break;
                                        c = o;
                                        zE(c);
                                        a[c >> 2] = o;
                                        tS(u, c);
                                        i = o + 16 | 0;
                                        a[c + 8 >> 2] = i;
                                        a[c + 12 >> 2] = 0;
                                        n = n + 1 << 16 >> 16;
                                        o = i + l | 0
                                    }
                                    a[1843] = i;
                                    a[h + 20 >> 2] = i;
                                    a[h + 16 >> 2] = 1;
                                    a[1681] = h
                                }
                            } else {
                                c = o + 16 | 0;
                                a[c >> 2] = (a[c >> 2] | 0) + 1;
                                sE()
                            }
                        } while (0);
                        p = f;
                        return
                    }

                    function wv() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = a[1681] | 0;
                        do {
                            if (!i) sE();
                            else {
                                e = i + 16 | 0;
                                t = a[e >> 2] | 0;
                                if ((t | 0) != 1) {
                                    a[e >> 2] = t + -1;
                                    break
                                }
                                e = a[i >> 2] | 0;
                                t = a[1843] | 0;
                                if ((t | 0) != (KE(a[i + 12 >> 2] | 0) | 0)) NE();
                                if (e | 0) si(e);
                                a[1681] = 0
                            }
                        } while (0);
                        return
                    }

                    function xv(e) {
                        e = e | 0;
                        a[1686] = e;
                        return
                    }

                    function kv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        JE(7376);
                        JE(7388);
                        JE(7400);
                        t = t + 7 & -8;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (e | 0)) break;
                            n = t;
                            aE(n, 164);
                            r = t + 164 | 0;
                            zE(r);
                            a[r >> 2] = n;
                            tS(7376, r);
                            t = t + 172 | 0;
                            i = i + 1 | 0
                        }
                        a[1853] = YE(10782) | 0;
                        return
                    }

                    function Tv() {
                        QE(7376);
                        QE(7388);
                        QE(7400);
                        if (a[1853] | 0) a[1853] = 0;
                        return
                    }

                    function Ev() {
                        return Sv() | 0
                    }

                    function Sv() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        rS(7376, t);
                        e = a[t >> 2] | 0;
                        do {
                            if (!e) {
                                rS(7388, t);
                                e = a[t >> 2] | 0;
                                if (!e) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    aE(a[e >> 2] | 0, 164);
                                    i = 5;
                                    break
                                }
                            } else i = 5
                        } while (0);
                        if ((i | 0) == 5) {
                            i = a[e >> 2] | 0;
                            a[e >> 2] = 0;
                            tS(7400, e);
                            e = i
                        }
                        p = r;
                        return e | 0
                    }

                    function Pv(e) {
                        e = e | 0;
                        if (a[1853] | 0) Iv(e);
                        return
                    }

                    function Iv(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        i = t;
                        rS(7400, i);
                        i = a[i >> 2] | 0;
                        a[i >> 2] = e;
                        tS(7388, i);
                        p = t;
                        return
                    }

                    function Mv() {
                        var e = 0;
                        if (!(a[1853] | 0)) e = 0;
                        else e = KE(a[1849] | 0) | 0;
                        return e | 0
                    }

                    function Cv(e) {
                        e = e | 0;
                        if (a[1853] | 0) Ov(e);
                        return
                    }

                    function Ov(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (e | 0)) break;
                            rS(7388, i);
                            r = a[i >> 2] | 0;
                            if (!r) break;
                            aE(a[r >> 2] | 0, 164);
                            tS(7376, r);
                            t = t + 1 | 0
                        }
                        p = n;
                        return
                    }

                    function Rv(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 128 | 0;
                        mS(t + 64 | 0, 64, 4004);
                        mS(t, 64, 4035);
                        aE(e, 3488);
                        i = e + 7 & -8;
                        e = i;
                        a[e >> 2] = Dv() | 0;
                        a[e + 3368 >> 2] = 0;
                        a[e + 3372 >> 2] = i + 3416;
                        a[e + 3376 >> 2] = 0;
                        a[e + 3380 >> 2] = 0;
                        i = e + 3388 | 0;
                        a[i >> 2] = 0;
                        a[i + 4 >> 2] = 0;
                        a[i + 8 >> 2] = 0;
                        a[i + 12 >> 2] = 0;
                        a[i + 16 >> 2] = 0;
                        p = t;
                        return e | 0
                    }

                    function Dv() {
                        var e = 0;
                        e = (a[1854] | 0) + 1 | 0;
                        e = (e | 0) == -1 ? 0 : e;
                        a[1854] = e;
                        return e | 0
                    }

                    function Fv(e) {
                        e = e | 0;
                        Bv(e);
                        return
                    }

                    function Bv(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        t = e + 3368 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            Nv(i);
                            Lv(a[t >> 2] | 0);
                            a[t >> 2] = 0
                        }
                        n = e + 3388 | 0;
                        e: do {
                            if (a[n >> 2] | 0) {
                                s = e + 3404 | 0;
                                o = e + 3376 | 0;
                                r = e + 3396 | 0;
                                e = 0;
                                while (1) {
                                    if (e >>> 0 >= (a[s >> 2] | 0) >>> 0) break e;
                                    t = (a[n >> 2] | 0) + (e << 2) | 0;
                                    i = a[t >> 2] | 0;
                                    do {
                                        if (i | 0) {
                                            if ((e | 0) == 0 ? a[o >> 2] | 0 : 0) {
                                                a[t >> 2] = 0;
                                                break
                                            }
                                            Nv(i);
                                            Lv(a[(a[n >> 2] | 0) + (e << 2) >> 2] | 0);
                                            a[(a[n >> 2] | 0) + (e << 2) >> 2] = 0;
                                            t = a[(a[r >> 2] | 0) + (e << 2) >> 2] | 0;
                                            if (t | 0) {
                                                Uv(t);
                                                a[(a[r >> 2] | 0) + (e << 2) >> 2] = 0
                                            }
                                        }
                                    } while (0);
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function Nv(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        e: do {
                            if (!e) sE();
                            else {
                                t = 0;
                                while (1) {
                                    eo();
                                    i = Jv(e) | 0;
                                    so();
                                    if (i | 0) break e;
                                    Qv();
                                    Zv();
                                    if (((t >>> 0) % 3e3 | 0 | 0) == 2999) jv(e);
                                    t = t + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function Lv(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            Vv(e);
                            s$[a[(a[e >> 2] | 0) + 8 >> 2] & 63](e)
                        }
                        return
                    }

                    function Uv(e) {
                        e = e | 0;
                        if (e | 0) si(e);
                        return
                    }

                    function Vv(e) {
                        e = e | 0;
                        var t = 0;
                        e: do {
                            if (!e) sE();
                            else {
                                t = 0;
                                while (1) {
                                    if (Xv(e) | 0) break e;
                                    gi();
                                    yi();
                                    if (((t >>> 0) % 3e3 | 0 | 0) == 2999) jv(e);
                                    t = t + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function Xv(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 1
                        } else e = (Yv(e, 1) | 0) == 0 & 1;
                        return e | 0
                    }

                    function jv(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        i = Gv() | 0;
                        if (i | 0) {
                            aE(t, 12);
                            a[t + 4 >> 2] = 0;
                            a[t + 8 >> 2] = e;
                            PS(i, t, 18)
                        }
                        p = r;
                        return
                    }

                    function Gv() {
                        return a[1658] | 0
                    }

                    function $v(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (((Hv(t) | 0) + -1 | 0) >>> 0 <= 1 ? (a[t + 276 >> 2] | 0) == (a[e + 8 >> 2] | 0) : 0) {
                            a[e >> 2] = 1;
                            sE();
                            Wv(t)
                        }
                        return
                    }

                    function Hv(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 4
                        } else e = (a[e + 416 >> 2] | 0) >>> 16;
                        return e | 0
                    }

                    function Wv(e) {
                        e = e | 0;
                        vh(e);
                        switch (((a[e + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                            case 1:
                            case 2:
                            case 4:
                                {
                                    r[e + 247 >> 0] = 1;
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function Yv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        r = Gv() | 0;
                        if (!r) e = 0;
                        else {
                            aE(i, 12);
                            a[i + 4 >> 2] = t;
                            a[i + 8 >> 2] = e;
                            PS(r, i, 19);
                            e = a[i >> 2] | 0
                        }
                        p = n;
                        return e | 0
                    }

                    function zv(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((((Hv(t) | 0) + -1 | 0) >>> 0 <= 1 ? (a[t + 276 >> 2] | 0) == (a[e + 8 >> 2] | 0) : 0) ? (a[e >> 2] = 1, a[e + 4 >> 2] | 0) : 0) {
                            mh(a[t + 236 >> 2] | 0, 14, 0);
                            qv(t)
                        }
                        return
                    }

                    function qv(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if ((fI(e, 1) | 0) == 1) {
                                    sE();
                                    break
                                } else {
                                    vh(e);
                                    fI(e, 0) | 0;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Jv(e) {
                        e = e | 0;
                        return Xv(e) | 0
                    }

                    function Qv() {
                        SP();
                        return
                    }

                    function Zv() {
                        Kv();
                        return
                    }

                    function Kv() {
                        var e = 0;
                        do {
                            if (a[1678] | 0) {
                                e = (a[1855] | 0) + 1 | 0;
                                a[1855] = e;
                                if (!((e >>> 0) % ((a[122] | 0) >>> 0) | 0)) {
                                    em();
                                    a[123] = 0;
                                    break
                                } else {
                                    tm();
                                    break
                                }
                            }
                        } while (0);
                        return
                    }

                    function em() {
                        var e = 0;
                        im();
                        vf();
                        rm();
                        e = Wo() | 0;
                        e = dM(e | 0, P | 0, 1e3, 0) | 0;
                        if ((a[123] | 0) == 1) a[1856] = e;
                        else nm(e, e - (a[1856] | 0) | 0);
                        am();
                        sm();
                        om();
                        um();
                        hm();
                        oo();
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            Cv((Mv() | 0) / (1 - e | 0) | 0);
                            vf();
                            lm(e);
                            oo();
                            e = e + 1 | 0
                        }
                        vf();
                        fm();
                        cm();
                        oo();
                        dm();
                        vf();
                        pm();
                        vm();
                        mm();
                        oo();
                        _m();
                        bm();
                        return
                    }

                    function tm() {
                        yi();
                        return
                    }

                    function im() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        eo();
                        e = 0;
                        while (1) {
                            if ((e | 0) == 2) break;
                            t = a[a[7432 + (e << 2) >> 2] >> 2] | 0;
                            oS(t) | 0;
                            i = (e | 0) == 1;
                            while (1) {
                                if (!t) break;
                                r = a[t >> 2] | 0;
                                n = r + 264 | 0;
                                if (cI(a[n >> 2] | 0) | 0) {
                                    if (i) HL(r);
                                    dI(n, 0)
                                }
                                t = a[t + 4 >> 2] | 0
                            }
                            e = e + 1 | 0
                        }
                        so();
                        return
                    }

                    function rm() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        e = _I() | 0;
                        t = P;
                        r = 6384;
                        r = OP(a[r >> 2] | 0, a[r + 4 >> 2] | 0, e, t) | 0;
                        r = fM(r | 0, P | 0, 1e6, 0) | 0;
                        i = 8;
                        i = dM(r | 0, P | 0, a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        r = P;
                        s = 16;
                        o = a[s >> 2] | 0;
                        s = a[s + 4 >> 2] | 0;
                        n = r >>> 0 > s >>> 0 | (r | 0) == (s | 0) & i >>> 0 > o >>> 0;
                        i = n ? o : i;
                        r = n ? s : r;
                        if (!(a[2066] | 0)) {
                            n = 6368;
                            n = aM(a[n >> 2] | 0, a[n + 4 >> 2] | 0, i | 0, r | 0) | 0;
                            s = P
                        } else {
                            n = DT(0) | 0;
                            s = P
                        }
                        o = 6368;
                        a[o >> 2] = n;
                        a[o + 4 >> 2] = s;
                        o = 6384;
                        a[o >> 2] = e;
                        a[o + 4 >> 2] = t;
                        o = 6376;
                        a[o >> 2] = i;
                        a[o + 4 >> 2] = r;
                        return
                    }

                    function nm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = jL() | 0;
                        e: do {
                            if (i | 0) {
                                r = 6940;
                                while (1) {
                                    n = a[r >> 2] | 0;
                                    if ((n | 0) == 6936) break e;
                                    r = n + 204 | 0;
                                    if (a[r >> 2] | 0) {
                                        GL(r, n, e, t);
                                        i = i + -1 | 0;
                                        if (!i) break e
                                    }
                                    r = n + 4 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function am() {
                        var e = 0.0,
                            t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        l = Wo() | 0;
                        f = P;
                        u = 0;
                        e: while (1) {
                            if ((u | 0) >= 128) break;
                            c = 7720 + (u << 2) | 0;
                            d = a[c >> 2] | 0;
                            do {
                                if (d | 0) {
                                    o = 0;
                                    while (1) {
                                        if ((o | 0) == 64) break;
                                        s = d + 176 + (o * 72 | 0) | 0;
                                        if (a[s >> 2] | 0) {
                                            t = d + 176 + (o * 72 | 0) + 8 | 0;
                                            t = sM(l | 0, f | 0, a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                                            i = P;
                                            n = d + 176 + (o * 72 | 0) + 16 | 0;
                                            r = a[n >> 2] | 0;
                                            n = a[n + 4 >> 2] | 0;
                                            if ((i | 0) < (n | 0) | (i | 0) == (n | 0) & t >>> 0 < r >>> 0) e = (+(t >>> 0) + 4294967296.0 * +(i | 0)) / (+(r >>> 0) + 4294967296.0 * +(n | 0));
                                            else {
                                                a[s >> 2] = 0;
                                                e = 1.0
                                            }
                                            h[d + 176 + (o * 72 | 0) + 24 >> 2] = e;
                                            PL(u, o, e)
                                        }
                                        o = o + 1 | 0
                                    }
                                    if (!(a[d >> 2] | 0)) break e;
                                    t = d + 136 | 0;
                                    t = sM(l | 0, f | 0, a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                                    i = P;
                                    o = d + 144 | 0;
                                    s = a[o + 4 >> 2] | 0;
                                    if ((i | 0) < (s | 0) | ((i | 0) == (s | 0) ? t >>> 0 < (a[o >> 2] | 0) >>> 0 : 0)) {
                                        c = a[c >> 2] | 0;
                                        o = c + 144 | 0;
                                        h[c + 152 >> 2] = (+(t >>> 0) + 4294967296.0 * +(i | 0)) / (+((a[o >> 2] | 0) >>> 0) + 4294967296.0 * +(a[o + 4 >> 2] | 0));
                                        IL(u, d + 68 | 0, +h[d + 152 >> 2]);
                                        break
                                    } else {
                                        c = d + 68 | 0;
                                        IL(u, c, 1.0);
                                        ML(d + 4 | 0, c, 1.0, a[d + 156 >> 2] | 0);
                                        a[d >> 2] = 0;
                                        break
                                    }
                                }
                            } while (0);
                            u = u + 1 | 0
                        }
                        return
                    }

                    function sm() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = p;
                        p = p + 16 | 0;
                        u = f;
                        e = a[1687] | 0;
                        e: do {
                            if (e | 0 ? (o = QD() | 0, s = P, i = dM(o | 0, s | 0, 1e3, 0) | 0, n = e + 32 | 0, a[n >> 2] = i, a[n + 4 >> 2] = P, !(s >>> 0 < 0 | (s | 0) == 0 & o >>> 0 < 1e3)) : 0) {
                                o = 0;
                                while (1) {
                                    s = o & 65535;
                                    if ((a[e + 52 >> 2] | 0) <= (s | 0)) break e;
                                    i = a[e + 12 >> 2] | 0;
                                    t = i + (s * 84 | 0) + 28 | 0;
                                    e = r[t >> 0] | 0;
                                    if (!(e << 24 >> 24)) {
                                        e = a[i + (s * 84 | 0) + 12 >> 2] | 0;
                                        if (!(hN(a[e + 204 >> 2] | 0, 146) | 0)) {
                                            r[t >> 0] = 1;
                                            Io(e, 148, 1);
                                            h = r[t >> 0] | 0;
                                            l = 8
                                        }
                                    } else {
                                        h = e;
                                        l = 8
                                    }
                                    if (((l | 0) == 8 ? (l = 0, h << 24 >> 24 == 2) : 0) ? (hN(a[(a[i + (s * 84 | 0) + 12 >> 2] | 0) + 204 >> 2] | 0, 146) | 0) == 0 : 0) {
                                        r[t >> 0] = 1;
                                        FN(o)
                                    }
                                    EL(o);
                                    n = i + (s * 84 | 0) + 56 | 0;
                                    t = KE(a[i + (s * 84 | 0) + 64 >> 2] | 0) | 0;
                                    e = 0;
                                    while (1) {
                                        if ((e | 0) >= (t | 0)) break;
                                        rS(n, u);
                                        i = a[u >> 2] | 0;
                                        c = (a[i >> 2] | 0) + 12 | 0;
                                        s = (a[c >> 2] | 0) + -1 | 0;
                                        a[c >> 2] = s;
                                        if (!s) tS(7488, i);
                                        else tS(n, i);
                                        e = e + 1 | 0
                                    }
                                    o = o + 1 << 16 >> 16;
                                    e = a[1687] | 0
                                }
                            }
                        } while (0);
                        p = f;
                        return
                    }

                    function om() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0;
                        e = a[(a[1698] | 0) + 88 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            t = a[e >> 2] | 0;
                            i = YB(t) | 0;
                            r = (zB(t) | 0) == 0;
                            e = a[e + 4 >> 2] | 0;
                            if (!r) continue;
                            iS((a[1698] | 0) + 88 | 0, t);
                            if (i | 0) a[i + 72 >> 2] = 0;
                            wd(t)
                        }
                        i = Wo() | 0;
                        r = (a[1698] | 0) + 152 | 0;
                        a[r >> 2] = i;
                        a[r + 4 >> 2] = P;
                        return
                    }

                    function um() {
                        var e = 0,
                            t = 0;
                        t = OB() | 0;
                        if ((t | 0) != (RB() | 0)) {
                            eo();
                            e = a[1866] | 0;
                            oS(e) | 0;
                            while (1) {
                                if (!e) break;
                                t = a[(a[e >> 2] | 0) + 180 >> 2] | 0;
                                ZE(t) | 0;
                                while (1) {
                                    if (!t) break;
                                    DB(a[t >> 2] | 0);
                                    t = a[t + 4 >> 2] | 0
                                }
                                e = a[e + 4 >> 2] | 0
                            }
                            so()
                        }
                        return
                    }

                    function hm() {
                        if ((a[2061] | 0) >= 1) {
                            EB();
                            SB()
                        }
                        return
                    }

                    function lm(e) {
                        e = e | 0;
                        TB(e);
                        return
                    }

                    function fm() {
                        kB();
                        return
                    }

                    function cm() {
                        var e = 0;
                        e = 6940;
                        while (1) {
                            e = a[e >> 2] | 0;
                            if ((e | 0) == 6936) break;
                            xB(e);
                            e = e + 4 | 0
                        }
                        return
                    }

                    function dm() {
                        var e = 0;
                        if (a[1635] | 0) {
                            e = a[1636] | 0;
                            if (e | 0) s$[e & 63](a[1637] | 0);
                            e = a[1638] | 0;
                            if (e | 0) s$[e & 63](a[1639] | 0);
                            Ai();
                            wB();
                            xi()
                        }
                        return
                    }

                    function pm() {
                        var e = 0;
                        e = 6376;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        return
                    }

                    function vm() {
                        qD();
                        return
                    }

                    function mm() {
                        if (!(a[1865] | 0)) {
                            a[1865] = 1;
                            Qm();
                            Zm();
                            Km();
                            a[1865] = 0
                        }
                        return
                    }

                    function _m() {
                        var e = 0;
                        if (a[1635] | 0) {
                            Ai();
                            Ti();
                            xi();
                            e = a[1640] | 0;
                            if (e | 0) s$[e & 63](a[1641] | 0);
                            e = a[1642] | 0;
                            if (e | 0) s$[e & 63](a[1643] | 0)
                        }
                        return
                    }

                    function bm() {
                        if (a[1842] | 0 ? (pI(7428, 1) | 0) == 0 : 0) {
                            gm();
                            dI(7428, 0)
                        }
                        return
                    }

                    function gm() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        eo();
                        e = ym() | 0;
                        if (e) {
                            Am(e);
                            so();
                            t = a[e + 28 >> 2] | 0;
                            i = a[e + 32 >> 2] | 0;
                            wm(e);
                            if (t | 0) s$[t & 63](i)
                        } else so();
                        return
                    }

                    function ym() {
                        var e = 0,
                            t = 0;
                        t = a[1833] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 0;
                                break
                            }
                            e = a[t >> 2] | 0;
                            t = a[t + 4 >> 2] | 0;
                            if (!(cI(a[e + 36 >> 2] | 0) | 0)) continue;
                            if (Tm(e) | 0) break
                        }
                        return e | 0
                    }

                    function Am(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 24 | 0;
                        if (a[t >> 2] | 0) {
                            iS(7332, e);
                            a[e >> 2] = 0;
                            a[t >> 2] = 0;
                            a[1864] = (a[1864] | 0) + -1
                        }
                        return
                    }

                    function wm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (!e) sE();
                        else {
                            i = a[e + 16 >> 2] | 0;
                            xm(e);
                            eo();
                            km(e);
                            so();
                            e = e + 8 | 0;
                            t = a[e >> 2] | 0;
                            if (t | 0) {
                                Fv(t);
                                a[e >> 2] = 0
                            }
                            Uv(i)
                        }
                        return
                    }

                    function xm(e) {
                        e = e | 0;
                        var t = 0;
                        t = 0;
                        while (1) {
                            qm(e);
                            if (Jm(e) | 0) break;
                            Qv();
                            Zv();
                            if (((t >>> 0) % 3e3 | 0 | 0) == 2999) break;
                            else t = t + 1 | 0
                        }
                        return
                    }

                    function km(e) {
                        e = e | 0;
                        Tm(e) | 0;
                        Em(e);
                        e = a[e + 8 >> 2] | 0;
                        if (e | 0) Sm(e);
                        return
                    }

                    function Tm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        t = Cm(e, 1) | 0;
                        Om(e);
                        i = Rm(e) | 0;
                        if (i) {
                            Dm(i);
                            t = Fm(i, 1) | 0 | t;
                            t = t | (Yv(i, 1) | 0)
                        }
                        r = e + 8 | 0;
                        n = Bm(a[(a[r >> 2] | 0) + 3404 >> 2] | 0) | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (n | 0)) break;
                            i = Nm(a[r >> 2] | 0, e) | 0;
                            if (i) {
                                Dm(i);
                                t = Fm(i, 1) | 0 | t;
                                t = t | (Yv(i, 1) | 0)
                            }
                            e = e + 1 | 0
                        }
                        return (t | 0) == 0 | 0
                    }

                    function Em(e) {
                        e = e | 0;
                        Am(e);
                        return
                    }

                    function Sm(e) {
                        e = e | 0;
                        Pm(e);
                        a[e + 72 >> 2] = 0;
                        a[e + 68 >> 2] = 0;
                        return
                    }

                    function Pm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = a[(a[1698] | 0) + 88 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            t = a[(a[i >> 2] | 0) + 8 >> 2] | 0;
                            ZE(t) | 0;
                            while (1) {
                                if (!t) break;
                                r = a[t >> 2] | 0;
                                if (!(a[r >> 2] | 0)) Im(r, e);
                                else Mm(r, e);
                                t = a[t + 4 >> 2] | 0
                            }
                            i = a[i + 4 >> 2] | 0
                        }
                        return
                    }

                    function Im(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = e + 20 | 0;
                        if ((a[i >> 2] | 0) == (t | 0)) {
                            Vh(e, 0, 48);
                            a[i >> 2] = 0
                        }
                        i = a[e + 116 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            r = a[i >> 2] | 0;
                            n = a[r + 20 >> 2] | 0;
                            if (n | 0 ? (a[n + 32 >> 2] | 0) == (t | 0) : 0) jh(r, 0, 48);
                            i = a[i + 4 >> 2] | 0
                        }
                        i = a[e + 8 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            r = a[i >> 2] | 0;
                            if (!(a[r >> 2] | 0)) Im(r, t);
                            else Mm(r, t);
                            i = a[i + 4 >> 2] | 0
                        }
                        return
                    }

                    function Mm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            Im(a[e >> 2] | 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Cm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        t = Ym(e, t) | 0;
                        so();
                        return t | 0
                    }

                    function Om(e) {
                        e = e | 0;
                        eo();
                        Gm(e);
                        so();
                        return
                    }

                    function Rm(e) {
                        e = e | 0;
                        if (e) {
                            e = a[e + 8 >> 2] | 0;
                            if (!e) e = 0;
                            else e = Lm(e, 0, 0) | 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Dm(e) {
                        e = e | 0;
                        jm(e);
                        return
                    }

                    function Fm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        t = Vm(e, t) | 0;
                        so();
                        return t | 0
                    }

                    function Bm(e) {
                        e = e | 0;
                        return Um(e) | 0
                    }

                    function Nm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return Lm(e, 1, t & 65535) | 0
                    }

                    function Lm(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!t) {
                            e = a[e + 3368 >> 2] | 0;
                            qp(e) | 0
                        } else e = Jp(e, i) | 0;
                        return e | 0
                    }

                    function Um(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function Vm(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        e: do {
                            if (!e) i = 0;
                            else {
                                r = 0;
                                i = 0;
                                while (1) {
                                    if ((r | 0) == 2) break e;
                                    n = a[a[7432 + (r << 2) >> 2] >> 2] | 0;
                                    oS(n) | 0;
                                    while (1) {
                                        if (!n) break;
                                        s = Xm(a[n >> 2] | 0, e, t) | 0 | i;
                                        n = a[n + 4 >> 2] | 0;
                                        i = s
                                    }
                                    r = r + 1 | 0
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function Xm(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        n = a[e + 180 >> 2] | 0;
                        ZE(n) | 0;
                        s = (i | 0) == 0;
                        e = 0;
                        while (1) {
                            if (!n) break;
                            r = a[n >> 2] | 0;
                            if ((a[r + 84 >> 2] | 0) == 7) i = a[r + 88 >> 2] | 0;
                            else i = 0;
                            if ((i | 0) == (t | 0)) {
                                if (s) {
                                    e = 1;
                                    break
                                }
                                nh(r, 35);
                                e = 1
                            }
                            n = a[n + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function jm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (a[1674] | 0)) break;
                            n = a[1673] | 0;
                            i = n + (t * 588 | 0) | 0;
                            if ((r[n + (t * 588 | 0) + 507 >> 0] | 0 ? (a[n + (t * 588 | 0) + 8 >> 2] | 0) == 4 : 0) ? (a[n + (t * 588 | 0) + 12 >> 2] | 0) == (e | 0) : 0) fh(i);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function Gm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == 2) break;
                            r = a[a[7432 + (t << 2) >> 2] >> 2] | 0;
                            oS(r) | 0;
                            while (1) {
                                if (!r) break;
                                n = a[r >> 2] | 0;
                                if (((a[n + 156 >> 2] | 0) + -1 | 0) >>> 0 < 3) i = a[n + 160 >> 2] | 0;
                                else i = 0;
                                if ((i | 0) == (e | 0)) {
                                    dI(n + 260 | 0, 0);
                                    $m(n)
                                }
                                r = a[r + 4 >> 2] | 0
                            }
                            t = t + 1 | 0
                        }
                        return
                    }

                    function $m(e) {
                        e = e | 0;
                        gS(e + 160 | 0, 0, 8) | 0;
                        a[e + 156 >> 2] = 0;
                        Hm(a[e + 104 >> 2] | 0);
                        return
                    }

                    function Hm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        e = e + 12 | 0;
                        rS(e, i);
                        while (1) {
                            t = a[i >> 2] | 0;
                            if (!t) break;
                            Wm(a[t >> 2] | 0);
                            rS(e, i)
                        }
                        p = r;
                        return
                    }

                    function Wm(e) {
                        e = e | 0;
                        tS(7444, e);
                        return
                    }

                    function Ym(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        r = 0;
                        i = 0;
                        while (1) {
                            if ((r | 0) == 2) break;
                            n = a[a[7432 + (r << 2) >> 2] >> 2] | 0;
                            oS(n) | 0;
                            while (1) {
                                if (!n) break;
                                s = zm(a[n >> 2] | 0, e, t) | 0 | i;
                                n = a[n + 4 >> 2] | 0;
                                i = s
                            }
                            r = r + 1 | 0
                        }
                        return i | 0
                    }

                    function zm(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        s = a[e + 180 >> 2] | 0;
                        ZE(s) | 0;
                        o = (i | 0) == 0;
                        e = 0;
                        while (1) {
                            if (!s) break;
                            r = a[s >> 2] | 0;
                            if (((a[r + 84 >> 2] | 0) + -1 | 0) >>> 0 < 3) i = a[r + 88 >> 2] | 0;
                            else i = 0;
                            if ((i | 0) == (t | 0)) {
                                if (o) {
                                    e = 1;
                                    break
                                }
                                nh(r, 35);
                                e = 1
                            }
                            n = a[r + 48 >> 2] | 0;
                            ZE(n) | 0;
                            while (1) {
                                if (!n) break;
                                r = a[n >> 2] | 0;
                                if (((a[r + 84 >> 2] | 0) + -1 | 0) >>> 0 < 3) i = a[r + 88 >> 2] | 0;
                                else i = 0;
                                if ((i | 0) == (t | 0)) {
                                    if (o) {
                                        e = 1;
                                        break
                                    }
                                    nh(r, 35);
                                    e = 1
                                }
                                n = a[n + 4 >> 2] | 0
                            }
                            s = a[s + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function qm(e) {
                        e = e | 0;
                        eo();
                        Tm(e) | 0;
                        so();
                        return
                    }

                    function Jm(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        e: do {
                            if (!(Cm(e, 0) | 0)) {
                                t = Rm(e) | 0;
                                if (t | 0) {
                                    if (Fm(t, 0) | 0) {
                                        e = 0;
                                        break
                                    }
                                    if (Yv(t, 0) | 0) {
                                        e = 0;
                                        break
                                    }
                                }
                                t = e + 8 | 0;
                                r = Bm(a[(a[t >> 2] | 0) + 3404 >> 2] | 0) | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) >= (r | 0)) {
                                        e = 1;
                                        break e
                                    }
                                    i = Nm(a[t >> 2] | 0, e) | 0;
                                    if (i | 0) {
                                        if (Fm(i, 0) | 0) {
                                            e = 0;
                                            break e
                                        }
                                        if (Yv(i, 0) | 0) {
                                            e = 0;
                                            break e
                                        }
                                    }
                                    e = e + 1 | 0
                                }
                            } else e = 0
                        } while (0);
                        return e | 0
                    }

                    function Qm() {
                        var e = 0,
                            t = 0;
                        e = a[1869] | 0;
                        oS(e) | 0;
                        while (1) {
                            if (!e) break;
                            t = a[e >> 2] | 0;
                            e = a[e + 4 >> 2] | 0;
                            if (cI(a[t + 260 >> 2] | 0) | 0) N_(t) | 0;
                            if (((e_(t) | 0) + -1 | 0) >>> 0 > 1) continue;
                            L_(t)
                        }
                        return
                    }

                    function Zm() {
                        var e = 0;
                        eo();
                        e = a[1866] | 0;
                        oS(e) | 0;
                        while (1) {
                            if (!e) break;
                            s_(a[e >> 2] | 0);
                            e = a[e + 4 >> 2] | 0
                        }
                        so();
                        return
                    }

                    function Km() {
                        var e = 0,
                            t = 0;
                        e = a[1866] | 0;
                        oS(e) | 0;
                        e: while (1) {
                            if (!e) break;
                            t = a[e >> 2] | 0;
                            e = a[e + 4 >> 2] | 0;
                            switch (e_(t) | 0) {
                                case 0:
                                case 3:
                                    break;
                                default:
                                    continue e
                            }
                            t_(t)
                        }
                        return
                    }

                    function e_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        do {
                            if (e) {
                                t = cI(a[e + 260 >> 2] | 0) | 0;
                                i = e + 16 | 0;
                                r = a[i >> 2] | 0;
                                e = a[e + 208 >> 2] | 0;
                                if ((r | 0) == 2 & (e | 0) != 0 ? (n = a[e + 128 >> 2] | 0, (n | 0) != -1 & (a_(a[e + 120 >> 2] | 0) | 0) == 0) : 0) {
                                    e = 1;
                                    break
                                }
                                if ((t | 0) != 0 & ((r | 0) == 0 | (r | 0) == 3)) e = 1;
                                else e = a[i >> 2] | 0
                            } else {
                                sE();
                                e = 4
                            }
                        } while (0);
                        return e | 0
                    }

                    function t_(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 12 | 0;
                        lS(a[t >> 2] | 0, e);
                        i_(a[e + 104 >> 2] | 0);
                        a[t >> 2] = 7476;
                        hS(7476, e);
                        return
                    }

                    function i_(e) {
                        e = e | 0;
                        var t = 0;
                        t = pI(e + 60 | 0, -1) | 0;
                        if ((t | 0) >= 0) {
                            lS(6672 + (t * 12 | 0) | 0, e);
                            r_(e);
                            Hm(e)
                        }
                        return
                    }

                    function r_(e) {
                        e = e | 0;
                        n_(e);
                        return
                    }

                    function n_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        t = s;
                        i = e + 24 | 0;
                        while (1) {
                            rS(i, t);
                            n = a[t >> 2] | 0;
                            if (!n) break;
                            oh(a[n >> 2] | 0)
                        }
                        r[e + 56 >> 0] = 0;
                        r[e + 58 >> 0] = 0;
                        p = s;
                        return
                    }

                    function a_(e) {
                        e = e | 0;
                        return (Cu(e) | 0) << 24 >> 24 != 1 | 0
                    }

                    function s_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        x = p;
                        p = p + 16 | 0;
                        m = x + 8 | 0;
                        _ = x;
                        w = e + 16 | 0;
                        e: do {
                            switch (a[w >> 2] | 0) {
                                case 3:
                                case 0:
                                    break;
                                default:
                                    {
                                        g = e + 180 | 0;v = e + 188 | 0;y = KE(a[v >> 2] | 0) | 0;i = a[e + 200 >> 2] | 0;
                                        if (((i | 0) != -1 ? (y | 0) > 0 & (r[e + 178 >> 0] | 0) != 0 : 0) ? (t = o_(i) | 0, (t | 0) > -1) : 0) a[e + 196 >> 2] = t;f = e + 300 | 0;c = _ + 4 | 0;d = e + 304 | 0;l = 0;u = 0;
                                        while (1) {
                                            if ((l | 0) >= (y | 0)) break;
                                            rS(g, m);
                                            o = a[m >> 2] | 0;
                                            if (!o) {
                                                A = 9;
                                                break
                                            }
                                            h = a[o >> 2] | 0;
                                            t = a[f >> 2] | 0;
                                            do {
                                                if (t | 0) {
                                                    i = u_(h) | 0;
                                                    n = h + 163 | 0;
                                                    s = r[n >> 0] | 0;
                                                    if ((i | 0) != 0 & s << 24 >> 24 != 0) {
                                                        r[n >> 0] = 0;
                                                        a[c >> 2] = Co(h) | 0;
                                                        a[_ >> 2] = e;
                                                        l$[t & 7](a[d >> 2] | 0, 1, _);
                                                        break
                                                    }
                                                    if ((i | 0) == 0 & s << 24 >> 24 == 0) {
                                                        r[n >> 0] = 1;
                                                        a[c >> 2] = Co(h) | 0;
                                                        a[_ >> 2] = e;
                                                        l$[t & 7](a[d >> 2] | 0, 2, _)
                                                    }
                                                }
                                            } while (0);
                                            t: do {
                                                if ((h_(h) | 0) < 1) {
                                                    t = Ph(h) | 0;
                                                    switch (t | 0) {
                                                        case 0:
                                                        case 3:
                                                            break;
                                                        default:
                                                            {
                                                                A = 22;
                                                                break t
                                                            }
                                                    }
                                                    n = Co(h) | 0;
                                                    i = a[f >> 2] | 0;
                                                    if (i | 0 ? (b = h + 163 | 0, (r[b >> 0] | 0) == 0) : 0) {
                                                        r[b >> 0] = 1;
                                                        a[c >> 2] = n;
                                                        a[_ >> 2] = e;
                                                        l$[i & 7](a[d >> 2] | 0, 2, _)
                                                    }
                                                    l_(h);
                                                    i = a[f >> 2] | 0;
                                                    if (i) {
                                                        a[c >> 2] = n;
                                                        a[_ >> 2] = e;
                                                        l$[i & 7](a[d >> 2] | 0, 3, _)
                                                    }
                                                } else {
                                                    t = u;
                                                    A = 22
                                                }
                                            } while (0);
                                            if ((A | 0) == 22) {
                                                A = 0;
                                                f_(h);
                                                tS(g, o)
                                            }
                                            l = l + 1 | 0;
                                            u = t
                                        }
                                        if ((A | 0) == 9) sE();n = (KE(a[v >> 2] | 0) | 0) == 0;do {
                                            if (n)
                                                if (!(r[e + 176 >> 0] | 0)) {
                                                    a[w >> 2] = 0;
                                                    a[e + 196 >> 2] = 0;
                                                    break
                                                } else {
                                                    a[w >> 2] = 3;
                                                    A = 28;
                                                    break
                                                }
                                            else A = 28
                                        } while (0);
                                        if ((A | 0) == 28) {
                                            t = a[e + 104 >> 2] | 0;
                                            i = c_(t) | 0;
                                            do {
                                                if ((i | 0) == 4)
                                                    if (!(r[e + 176 >> 0] | 0)) {
                                                        a[w >> 2] = 0;
                                                        d_(t);
                                                        break
                                                    } else {
                                                        a[w >> 2] = 4;
                                                        break
                                                    }
                                                else if ((a[w >> 2] | 0) == 1 ? (u | 0) == 2 | (i | 0) == 2 : 0) a[w >> 2] = 2
                                            } while (0);
                                            if (!n) break e
                                        }
                                        t = a[e + 208 >> 2] | 0;
                                        if (t | 0 ? (a[t + 168 >> 2] | 0) == 1 : 0) {
                                            p_(t);
                                            v_(e, 0, 0);
                                            m_(e, 0, 0);
                                            __(e, 0)
                                        }
                                    }
                            }
                        } while (0);
                        p = x;
                        return
                    }

                    function o_(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (!e) e = -1;
                        else e = O_(e) | 0;
                        return e | 0
                    }

                    function u_(e) {
                        e = e | 0;
                        var t = 0;
                        t = P_(e) | 0;
                        e: do {
                            if (!t) {
                                e = a[e + 48 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) {
                                        t = 0;
                                        break e
                                    }
                                    t = P_(a[e >> 2] | 0) | 0;
                                    if (t | 0) break e;
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function h_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = p;
                        p = p + 16 | 0;
                        n = f + 4 | 0;
                        h = f;
                        s = e + 36 | 0;
                        o = KE(a[e + 44 >> 2] | 0) | 0;
                        u = Au(a[(a[e + 60 >> 2] | 0) + 104 >> 2] | 0) | 0;
                        r = 0;
                        t = 0;
                        while (1) {
                            if ((r | 0) >= (o | 0)) break;
                            rS(s, n);
                            i = a[n >> 2] | 0;
                            if (!i) {
                                l = 4;
                                break
                            }
                            if (((Mh(u, a[i >> 2] | 0) | 0) + -1 | 0) >>> 0 > 1) S_(i);
                            else {
                                tS(s, i);
                                t = t + 1 | 0
                            }
                            r = r + 1 | 0
                        }
                        if ((l | 0) == 4) sE();
                        o = e + 48 | 0;
                        u = KE(a[e + 56 >> 2] | 0) | 0;
                        s = 0;
                        while (1) {
                            if ((s | 0) >= (u | 0)) break;
                            rS(o, h);
                            i = a[h >> 2] | 0;
                            if (!i) {
                                l = 12;
                                break
                            }
                            r = a[i >> 2] | 0;
                            c = Ph(r) | 0;
                            n = h_(r) | 0;
                            if (((c | 0) == 0 | (c | 0) == 3) & (n | 0) == 0) l_(r);
                            else {
                                tS(o, i);
                                t = t + 1 + n | 0
                            }
                            s = s + 1 | 0
                        }
                        if ((l | 0) == 12) sE();
                        c = e + 148 | 0;
                        a[c >> 2] = a[c >> 2] | (t | 0) > 0;
                        p = f;
                        return t | 0
                    }

                    function l_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 16 | 0;
                        o = d + 4 | 0;
                        t = d;
                        i = e + 36 | 0;
                        rS(i, t);
                        while (1) {
                            s = a[t >> 2] | 0;
                            if (!s) break;
                            S_(s);
                            rS(i, t)
                        }
                        t = e + 48 | 0;
                        rS(t, o);
                        while (1) {
                            i = a[o >> 2] | 0;
                            if (!i) break;
                            l_(a[i >> 2] | 0);
                            rS(t, o)
                        }
                        i = Fa() | 0;
                        s = e + 20 | 0;
                        o = e + 76 | 0;
                        u = e + 131 | 0;
                        h = e + 129 | 0;
                        l = e + 80 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == (i | 0)) break;
                            f = n[(a[s >> 2] | 0) + (t << 1) >> 1] | 0;
                            e: do {
                                if (f << 16 >> 16 != -1 ? (a[o >> 2] & 2 | 0) == 0 : 0) {
                                    if ((r[u >> 0] | 0) == 1) fu(f);
                                    switch (r[h >> 0] | 0) {
                                        case 3:
                                        case 1:
                                            break;
                                        default:
                                            break e
                                    }
                                    T_(n[(a[s >> 2] | 0) + (t << 1) >> 1] | 0, (a[l >> 2] | 0) == 0 & 1, 1)
                                }
                            } while (0);
                            t = t + 1 | 0
                        }
                        if ((r[u >> 0] | 0) == 1) r[u >> 0] = 2;
                        r[h >> 0] = 2;
                        Tu(e);
                        s = e + 68 | 0;
                        t = a[s >> 2] | 0;
                        i = a[t + 80 >> 2] | 0;
                        if (ll(i) | 0) {
                            mI(i + 324 | 0);
                            t = a[s >> 2] | 0
                        }
                        t = a[t + 84 >> 2] | 0;
                        if (fl(t) | 0) mI(t + 156 | 0);
                        if (!((a[e + 12 >> 2] | 0) == 0 ? !(a[e + 16 >> 2] | 0) : 0)) cu(e);
                        t = e + 108 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            iS(i, e + 100 | 0);
                            a[t >> 2] = 0
                        }
                        t = e + 112 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            Jo(i);
                            a[t >> 2] = 0
                        }
                        t = e + 116 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            p_(i);
                            a[t >> 2] = 0
                        }
                        if ((r[e + 120 >> 0] | 0) == 0 ? (c = a[s >> 2] | 0, c | 0) : 0) uo(c);
                        a[s >> 2] = 0;
                        c = e + 32 | 0;
                        a[c >> 2] = (a[c >> 2] | 0) + 1 & 65535;
                        tS(7356, e + 24 | 0);
                        p = d;
                        return
                    }

                    function f_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        i = e + 129 | 0;
                        o = r[i >> 0] | 0;
                        t = e + 76 | 0;
                        e: do {
                            if (o << 24 >> 24 != 2 ? (u = a[t >> 2] | 0, (u & 2 | 0) == 0) : 0) {
                                if ((y_(e) | 0) << 24 >> 24) {
                                    if (!(o << 24 >> 24)) break;
                                    A_(e, 1, (a[e + 80 >> 2] | 0) == 0 & 1);
                                    r[i >> 0] = 2;
                                    break
                                }
                                n = a[e + 80 >> 2] | 0;
                                s = (n & 2 | 0) == 0;
                                if (!u)
                                    if (s) {
                                        w_(e, (n | 0) == 0 & 1, 1);
                                        break
                                    } else {
                                        w_(e, 1, 1);
                                        break
                                    }
                                if (!s) {
                                    if (!(u & 65537)) break;
                                    w_(e, 1, 0);
                                    break
                                }
                                if (!n) switch (o << 24 >> 24) {
                                    case 0:
                                        {
                                            w_(e, 1, 0);
                                            break e
                                        }
                                    case 1:
                                        {
                                            A_(e, 0, 1);r[i >> 0] = 3;
                                            break e
                                        }
                                    default:
                                        break e
                                }
                            }
                        } while (0);
                        a[e + 80 >> 2] = a[t >> 2];
                        t = a[e + 48 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) break;
                            f_(a[t >> 2] | 0);
                            t = a[t + 4 >> 2] | 0
                        }
                        return
                    }

                    function c_(e) {
                        e = e | 0;
                        return g_(e) | 0
                    }

                    function d_(e) {
                        e = e | 0;
                        b_(e);
                        return
                    }

                    function p_(e) {
                        e = e | 0;
                        tS(7344, e + 160 | 0);
                        return
                    }

                    function v_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        a[e + 224 >> 2] = t;
                        a[e + 220 >> 2] = i;
                        so();
                        return
                    }

                    function m_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        a[e + 216 >> 2] = t;
                        a[e + 212 >> 2] = i;
                        so();
                        return
                    }

                    function __(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 208 >> 2] = t;
                        return
                    }

                    function b_(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 24 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) break;
                            Nh(a[t >> 2] | 0, 34);
                            t = a[t + 4 >> 2] | 0
                        }
                        r[e + 56 >> 0] = 0;
                        r[e + 58 >> 0] = 0;
                        return
                    }

                    function g_(e) {
                        e = e | 0;
                        var t = 0;
                        e: do {
                            if (!(r[e + 58 >> 0] | 0)) {
                                t = a[e + 24 >> 2] | 0;
                                if (!(ZE(t) | 0)) {
                                    t = (r[e + 56 >> 0] | 0) == 0 ? 0 : 3;
                                    break
                                }
                                while (1) {
                                    if (!t) {
                                        t = 2;
                                        break e
                                    }
                                    if ((r[(a[t >> 2] | 0) + 24 >> 0] | 0) < 4) {
                                        t = 1;
                                        break e
                                    }
                                    t = a[t + 4 >> 2] | 0
                                }
                            } else t = 4
                        } while (0);
                        return t | 0
                    }

                    function y_(e) {
                        e = e | 0;
                        if (!(a[e + 72 >> 2] | 0)) e = r[e + 121 >> 0] | 0;
                        else e = E_(e) | 0;
                        return e | 0
                    }

                    function A_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        r = e + 20 | 0;
                        e = 0;
                        while (1) {
                            if (e >>> 0 >= (Fa() | 0) >>> 0) break;
                            s = n[(a[r >> 2] | 0) + (e << 1) >> 1] | 0;
                            if (s << 16 >> 16 != -1) T_(s, i, t);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function w_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0;
                        u = e + 129 | 0;
                        o = r[u >> 0] | 0;
                        if (!(o << 24 >> 24 != 0 ? !((t | 0) == 0 | o << 24 >> 24 == 3) : 0)) {
                            o = e + 20 | 0;
                            e = 0;
                            while (1) {
                                if (e >>> 0 >= (Fa() | 0) >>> 0) break;
                                s = n[(a[o >> 2] | 0) + (e << 1) >> 1] | 0;
                                if (s << 16 >> 16 != -1) x_(s, i, t);
                                e = e + 1 | 0
                            }
                            r[u >> 0] = 1
                        }
                        return
                    }

                    function x_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        _ = p;
                        p = p + 16 | 0;
                        v = _;
                        u = a[1687] | 0;
                        e: do {
                            if (u | 0) {
                                u = a[u + 12 >> 2] | 0;
                                d = e << 16 >> 16;
                                if ((i | 0) == 1) {
                                    c = u + (d * 84 | 0) + 38 | 0;
                                    n[c >> 1] = (o[c >> 1] | 0) + 1
                                }
                                i = u + (d * 84 | 0) + 40 | 0;
                                e = n[i >> 1] | 0;
                                if ((t | 0) == 1) {
                                    e = (e & 65535) + 1 & 65535;
                                    n[i >> 1] = e
                                }
                                if ((o[u + (d * 84 | 0) + 38 >> 1] | 0) < (e & 65535)) {
                                    sE();
                                    u = a[(a[1687] | 0) + 12 >> 2] | 0
                                }
                                if (a[u + (d * 84 | 0) + 52 >> 2] | 0) {
                                    c = a[u + (d * 84 | 0) + 44 >> 2] | 0;
                                    ZE(c) | 0;
                                    while (1) {
                                        if (!c) break e;
                                        f = a[c >> 2] | 0;
                                        t = a[(a[1687] | 0) + 12 >> 2] | 0;
                                        if (!(r[f + 29 >> 0] | 0)) {
                                            if ((n[t + (d * 84 | 0) + 40 >> 1] | 0) == 1) m = 14
                                        } else if ((n[t + (d * 84 | 0) + 38 >> 1] | 0) == 1) m = 14;
                                        do {
                                            if ((m | 0) == 14) {
                                                m = 0;
                                                l = f + 30 | 0;
                                                u = n[l >> 1] | 0;
                                                if (u << 16 >> 16 != -1) {
                                                    a[f + 48 >> 2] = 1;
                                                    e = f + 12 | 0;
                                                    i = a[e >> 2] | 0;
                                                    if (!i) {
                                                        i = cf(1, 0, 5, a[f + 16 >> 2] | 0, 389) | 0;
                                                        a[e >> 2] = i;
                                                        go(i, n[l >> 1] | 0, 1.0);
                                                        k_(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((o[f + 20 >> 1] | 0) * 84 | 0) + 12 >> 2] | 0, a[e >> 2] | 0);
                                                        i = a[e >> 2] | 0;
                                                        u = n[l >> 1] | 0
                                                    }
                                                    El(i, u, +h[f + 8 >> 2], o[f + 24 >> 1] | 0, s[f + 22 >> 0] | 0, +h[f + 40 >> 2]);
                                                    break
                                                }
                                                i = o[f + 20 >> 1] | 0;
                                                a[f + 48 >> 2] = 2;
                                                a[f + 36 >> 2] = a[f + 32 >> 2];
                                                u = f + 24 | 0;
                                                do {
                                                    if ((n[u >> 1] | 0) != -1) {
                                                        rS(7488, v);
                                                        e = a[v >> 2] | 0;
                                                        if (!e) {
                                                            sE();
                                                            break
                                                        } else {
                                                            f = a[e >> 2] | 0;
                                                            a[f + 8 >> 2] = o[u >> 1];
                                                            a[f + 12 >> 2] = 2;
                                                            tS(t + (i * 84 | 0) + 56 | 0, e);
                                                            break
                                                        }
                                                    }
                                                } while (0)
                                            }
                                        } while (0);
                                        c = a[c + 4 >> 2] | 0
                                    }
                                }
                            }
                        } while (0);
                        p = _;
                        return
                    }

                    function k_(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 44 | 0;
                        a[t + 44 >> 2] = a[i >> 2];
                        a[i >> 2] = t;
                        r[e + 8 >> 0] = 1;
                        return
                    }

                    function T_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0;
                        s = a[1687] | 0;
                        e: do {
                            if (s | 0) {
                                u = a[s + 12 >> 2] | 0;
                                h = e << 16 >> 16;
                                if ((i | 0) == 1 ? (e = u + (h * 84 | 0) + 38 | 0, i = (o[e >> 1] | 0) + 65535 & 65535, n[e >> 1] = i, i << 16 >> 16 == -1) : 0) {
                                    sE();
                                    s = a[1687] | 0;
                                    u = a[s + 12 >> 2] | 0;
                                    n[u + (h * 84 | 0) + 38 >> 1] = 0
                                }
                                i = u + (h * 84 | 0) + 40 | 0;
                                e = n[i >> 1] | 0;
                                if ((t | 0) == 1) {
                                    e = (e & 65535) + 65535 & 65535;
                                    e = e << 16 >> 16 == -1 ? 0 : e;
                                    n[i >> 1] = e
                                }
                                if ((o[u + (h * 84 | 0) + 38 >> 1] | 0) < (e & 65535)) {
                                    sE();
                                    s = a[1687] | 0;
                                    e = a[s + 12 >> 2] | 0
                                } else e = u;
                                if (a[e + (h * 84 | 0) + 52 >> 2] | 0) {
                                    t = a[e + (h * 84 | 0) + 44 >> 2] | 0;
                                    ZE(t) | 0;
                                    e = s + 12 | 0;
                                    s = t;
                                    while (1) {
                                        if (!s) break e;
                                        i = a[s >> 2] | 0;
                                        t = a[e >> 2] | 0;
                                        if ((n[((r[i + 29 >> 0] | 0) == 0 ? t + (h * 84 | 0) + 40 | 0 : t + (h * 84 | 0) + 38 | 0) >> 1] | 0) == 0 ? (r[i + 28 >> 0] | 0) == 0 : 0) {
                                            a[i + 36 >> 2] = a[i + 32 >> 2];
                                            a[i + 48 >> 2] = 2
                                        }
                                        s = a[s + 4 >> 2] | 0
                                    }
                                }
                            }
                        } while (0);
                        return
                    }

                    function E_(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[(a[e + 72 >> 2] | 0) + 8 >> 2] | 0;
                        do {
                            if (ZE(t) | 0) {
                                t = a[t >> 2] | 0;
                                if (!(a[t >> 2] | 0)) {
                                    t = r[t + 68 >> 0] | 0;
                                    break
                                }
                                t = a[t + 36 >> 2] | 0;
                                if (!t) {
                                    t = r[e + 121 >> 0] | 0;
                                    break
                                } else {
                                    t = r[t + 68 >> 0] | 0;
                                    break
                                }
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function S_(e) {
                        e = e | 0;
                        tS(7500, e);
                        return
                    }

                    function P_(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 36 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 0;
                                break
                            }
                            e = I_(a[t >> 2] | 0) | 0;
                            if (e | 0) break;
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function I_(e) {
                        e = e | 0;
                        e = th(e) | 0;
                        if (!e) e = 0;
                        else e = M_(e) | 0;
                        return e | 0
                    }

                    function M_(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 12 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 0;
                                break
                            }
                            e = C_(a[(a[(a[t >> 2] | 0) + 12 >> 2] | 0) + 4 >> 2] | 0) | 0;
                            if (e | 0) break;
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function C_(e) {
                        e = e | 0;
                        if (!e) e = 0;
                        else e = a[e + 4 >> 2] | 0;
                        return e | 0
                    }

                    function O_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = Sh(e, r) | 0;
                        e: do {
                            if ((t | 0) <= -1) {
                                i = a[e + 48 >> 2] | 0;
                                n = ZE(i) | 0;
                                t = a[e + 36 >> 2] | 0;
                                e = (ZE(t) | 0) == 0;
                                if ((n | 0) == 0 & e) t = -1;
                                else {
                                    if (e) t = -1;
                                    else t = R_(a[t >> 2] | 0) | 0;
                                    while (1) {
                                        if (!i) break e;
                                        n = O_(a[i >> 2] | 0) | 0;
                                        i = a[i + 4 >> 2] | 0;
                                        t = (t | 0) < (n | 0) ? n : t
                                    }
                                }
                            }
                        } while (0);
                        p = r;
                        return t | 0
                    }

                    function R_(e) {
                        e = e | 0;
                        var t = 0;
                        e = th(e) | 0;
                        if (!e) {
                            e = -1;
                            t = -1
                        } else {
                            t = D_(e) | 0;
                            e = P
                        }
                        P = e;
                        return t | 0
                    }

                    function D_(e) {
                        e = e | 0;
                        e = F_(e) | 0;
                        return e | 0
                    }

                    function F_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 32 | 0;
                        t = e + 40 | 0;
                        t = B_(a[i >> 2] | 0, a[i + 4 >> 2] | 0, a[t >> 2] | 0, a[t + 4 >> 2] | 0, a[e + 48 >> 2] | 0) | 0;
                        e = a[e + 52 >> 2] | 0;
                        e = aM(t | 0, P | 0, e | 0, ((e | 0) < 0) << 31 >> 31 | 0) | 0;
                        return e | 0
                    }

                    function B_(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        r = sM(i | 0, r | 0, e | 0, t | 0) | 0;
                        r = aM(r | 0, P | 0, n | 0, ((n | 0) < 0) << 31 >> 31 | 0) | 0;
                        return r | 0
                    }

                    function N_(e) {
                        e = e | 0;
                        var t = 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else {
                            eo();
                            t = U_(e, 0) | 0;
                            dI(e + 260 | 0, 0);
                            so();
                            e = t
                        }
                        return e | 0
                    }

                    function L_(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 12 | 0;
                        lS(a[t >> 2] | 0, e);
                        a[t >> 2] = 7464;
                        hS(7464, e);
                        dI(e + 260 | 0, 0);
                        return
                    }

                    function U_(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        _ = p;
                        p = p + 32 | 0;
                        u = _ + 8 | 0;
                        m = _;
                        d = e + 200 | 0;
                        a[d >> 2] = -1;
                        v = e + 196 | 0;
                        a[v >> 2] = -1;
                        r[e + 176 >> 0] = 1;
                        o = e + 156 | 0;
                        do {
                            if (a[o >> 2] | 0) {
                                c = (r[e + 177 >> 0] | 0) != 0 & 1;
                                c = (t | 0) == 0 ? c : c | 2;
                                t = a[e + 172 >> 2] | 0;
                                do {
                                    if ((t | 0) != -1) {
                                        t = nC(t) | 0;
                                        if (!t) {
                                            aC(e);
                                            break
                                        } else {
                                            sC(a[e + 192 >> 2] | 0, 122, t);
                                            break
                                        }
                                    }
                                } while (0);
                                if ((oC() | 0) < 1) {
                                    mm();
                                    NE()
                                }
                                s = e + 192 | 0;
                                l = op(a[s >> 2] | 0) | 0;
                                if (l) {
                                    f = Co(l) | 0;
                                    a[l + 60 >> 2] = e;
                                    r[l + 128 >> 0] = r[e + 136 >> 0] | 0;
                                    a[l + 76 >> 2] = c;
                                    h = e + 104 | 0;
                                    i = a[h >> 2] | 0;
                                    t = i + 64 | 0;
                                    if (!(a[e + 228 >> 2] | 0)) {
                                        a[t >> 2] = 0;
                                        t = 0
                                    } else {
                                        a[t >> 2] = 20;
                                        t = f
                                    }
                                    a[i + 68 >> 2] = t;
                                    t = i + 72 | 0;
                                    if (!(a[e + 236 >> 2] | 0)) {
                                        a[t >> 2] = 0;
                                        t = 0
                                    } else {
                                        a[t >> 2] = 1;
                                        t = f
                                    }
                                    a[i + 76 >> 2] = t;
                                    n = l + 84 | 0;
                                    a[n >> 2] = a[o >> 2];
                                    a[n + 4 >> 2] = a[o + 4 >> 2];
                                    a[n + 8 >> 2] = a[o + 8 >> 2];
                                    a[(a[h >> 2] | 0) + 36 >> 2] = l;
                                    if (!(lC(a[e + 156 >> 2] | 0) | 0)) {
                                        i = u + 8 | 0;
                                        a[i >> 2] = 0;
                                        n = u + 12 | 0;
                                        a[n >> 2] = 65535;
                                        t = u + 16 | 0;
                                        a[t >> 2] = 0;
                                        a[u + 20 >> 2] = 0;
                                        a[u >> 2] = 7;
                                        a[u + 4 >> 2] = l;
                                        Sc(o, i, n);
                                        a[t >> 2] = a[e + 168 >> 2];
                                        t = e + 148 | 0;
                                        if ((r[t >> 0] | 0) != -1) nE(l + 152 | 0, 8, t, 8);
                                        do {
                                            if (!(cC(a[s >> 2] | 0) | 0)) {
                                                if (rf(0) | 0 ? (Fc(a[i >> 2] | 0, a[n >> 2] | 0) | 0) != 1 : 0) break;
                                                o = a[l + 68 >> 2] | 0;
                                                Oo(o, Ls() | 0, 1.0) | 0
                                            }
                                        } while (0);
                                        nv(u);
                                        i = 0
                                    } else {
                                        if (!(cC(a[s >> 2] | 0) | 0)) {
                                            u = a[l + 68 >> 2] | 0;
                                            Oo(u, Ls() | 0, 1.0) | 0
                                        }
                                        n = dC() | 0;
                                        if (!n) {
                                            l_(l);
                                            t = -1;
                                            break
                                        }
                                        t = r[e + 148 >> 0] | 0;
                                        if (t << 24 >> 24 != -1) Mo(a[l + 68 >> 2] | 0, 179, t << 24 >> 24);
                                        pC(e);
                                        if (!(a[e + 208 >> 2] | 0))
                                            if (!c) i = 34;
                                            else i = 33;
                                        else if ((c | 0) != 0 | (a[e + 212 >> 2] | 0) != 0) i = 33;
                                        else i = 34;
                                        if ((i | 0) == 33) t = vC(a[h >> 2] | 0, a[l + 68 >> 2] | 0) | 0;
                                        else if ((i | 0) == 34) t = mC(a[h >> 2] | 0, a[l + 68 >> 2] | 0) | 0;
                                        Hm(a[h >> 2] | 0);
                                        a[n >> 2] = t;
                                        tS(l + 36 | 0, n);
                                        i = (t | 0) == -1 & 1
                                    }
                                    if (_C(l) | 0) {
                                        t = a[h >> 2] | 0;
                                        a[t + 36 >> 2] = 0;
                                        if (!(bC(t) | 0)) gC(t);
                                        tS(e + 180 | 0, l + 24 | 0);
                                        a[e + 16 >> 2] = 1;
                                        t = (i | 0) == 0 ? f : -1;
                                        a[d >> 2] = t;
                                        a[v >> 2] = 0;
                                        yC(e, l, (c | 0) != 0 & (a[e + 208 >> 2] | 0) != 0 & 1, 1);
                                        i = a[e + 300 >> 2] | 0;
                                        if ((t | 0) != -1 & (i | 0) != 0) {
                                            a[m + 4 >> 2] = t;
                                            a[m >> 2] = e;
                                            l$[i & 7](a[e + 304 >> 2] | 0, 0, m);
                                            t = f
                                        }
                                    } else t = -1
                                } else t = -1
                            } else {
                                NE();
                                t = -1
                            }
                        } while (0);
                        p = _;
                        return t | 0
                    }

                    function V_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 676 | 0;
                        i = a[t >> 2] | 0;
                        a[t >> 2] = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) break;
                            zD(e + (t << 3) | 0);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function X_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 740 | 0;
                        i = a[t >> 2] | 0;
                        a[t >> 2] = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) break;
                            a[e + 704 + (t << 2) >> 2] = 0;
                            t = t + 1 | 0
                        }
                        return
                    }

                    function j_(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + 280 | 0;
                        r = a[i >> 2] | 0;
                        do {
                            if (r)
                                if ((r | 0) == (t | 0)) {
                                    a[i >> 2] = 0;
                                    e = e + 284 | 0;
                                    break
                                } else {
                                    sE();
                                    e = 0;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function G_(e) {
                        e = e | 0;
                        var t = 0;
                        do {
                            if ((a[2419] | 0) >= 1)
                                if (!e) {
                                    sE();
                                    break
                                } else {
                                    $_(e);
                                    eo();
                                    t = e + 4 | 0;
                                    iS(9680, t);
                                    so();
                                    a[t >> 2] = 0;
                                    Uv(a[e >> 2] | 0);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function $_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        do {
                            if ((a[2419] | 0) < 1) sE();
                            else {
                                if (!e) {
                                    sE();
                                    break
                                }
                                eo();
                                r = e + 12 | 0;
                                while (1) {
                                    rS(r, i);
                                    t = a[i >> 2] | 0;
                                    if (!t) break;
                                    t = a[t >> 2] | 0;
                                    if (t | 0) {
                                        if (e_(t) | 0) zG(t, 58);
                                        if (!(j_(t, e) | 0)) sE()
                                    }
                                }
                                so()
                            }
                        } while (0);
                        p = n;
                        return
                    }

                    function H_() {
                        var e = 0;
                        e = a[1661] | 0;
                        if (!(ZE(e) | 0)) e = 0;
                        else e = a[e >> 2] | 0;
                        return e | 0
                    }

                    function W_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (e) {
                            t = a[e + 48 >> 2] | 0;
                            i = a[e + 52 >> 2] | 0;
                            eo();
                            Y_(e);
                            so();
                            z_(e);
                            NG(e);
                            if (i | 0) si(i);
                            if (t | 0) si(t)
                        } else sE();
                        return
                    }

                    function Y_(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 8 | 0;
                        if (n[t >> 1] | 0) {
                            iS(6644, e);
                            a[e >> 2] = 0;
                            n[t >> 1] = 0
                        }
                        return
                    }

                    function z_(e) {
                        e = e | 0;
                        var t = 0;
                        t = 0;
                        while (1) {
                            eo();
                            q_(e);
                            so();
                            if (J_(e) | 0) break;
                            Qv();
                            Zv();
                            if (((t >>> 0) % 3e3 | 0 | 0) == 2999) break;
                            else t = t + 1 | 0
                        }
                        return
                    }

                    function q_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        e: do {
                            if ((a[2414] | 0) < 1) sE();
                            else {
                                r = e + 10 | 0;
                                i = e + 44 | 0;
                                t = 0;
                                while (1) {
                                    e = n[r >> 1] | 0;
                                    if ((t | 0) >= (e << 16 >> 16 | 0)) {
                                        t = 0;
                                        break
                                    }
                                    e = a[i >> 2] | 0;
                                    if (a[e + (t << 5) + 8 >> 2] | 0) ph(e + (t << 5) | 0);
                                    t = t + 1 | 0
                                }
                                while (1) {
                                    if ((t | 0) >= (e << 16 >> 16 | 0)) break e;
                                    dh(a[(a[i >> 2] | 0) + (t << 5) + 4 >> 2] | 0);
                                    t = t + 1 | 0;
                                    e = n[r >> 1] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function J_(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 44 | 0;
                        t = n[e + 10 >> 1] | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (t | 0)) break;
                            if ((a[(a[(a[i >> 2] | 0) + (e << 5) + 4 >> 2] | 0) + 416 >> 2] | 0) >>> 0 > 65535) break;
                            e = e + 1 | 0
                        }
                        return (e | 0) >= (t | 0) | 0
                    }

                    function Q_(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 32 | 0;
                        s = u;
                        n = u + 8 | 0;
                        a[t >> 2] = 0;
                        a[i >> 2] = 0;
                        r = a[2109] | 0;
                        do {
                            if (!r) {
                                r = a[e >> 2] | 0;
                                if ((r | 0) == 3) {
                                    a[1721] = 1;
                                    r = a[e + 4 >> 2] | 0;
                                    a[2109] = r;
                                    a[2110] = a[e + 8 >> 2];
                                    o = 11;
                                    break
                                }
                                if (!(xI() | 0)) {
                                    sE();
                                    r = 0;
                                    break
                                }
                                if ((r | 0) == 2) {
                                    a[s >> 2] = a[e + 8 >> 2];
                                    dS(n, 0, 4338, s);
                                    r = Vj(n) | 0
                                } else r = Vj(a[e + 8 >> 2] | 0) | 0;
                                if (!r) r = 0;
                                else {
                                    r = a[2109] | 0;
                                    o = 11
                                }
                            } else o = 11
                        } while (0);
                        if ((o | 0) == 11) {
                            a[t >> 2] = r;
                            a[i >> 2] = a[2110];
                            r = 1
                        }
                        p = u;
                        return r | 0
                    }

                    function Z_() {
                        var e = 0;
                        if (!(ej(a[2109] | 0, a[2110] | 0) | 0)) {
                            JX();
                            e = 0
                        } else {
                            a[1721] = 1;
                            e = 1
                        }
                        return e | 0
                    }

                    function K_() {
                        var e = 0;
                        if (!(rf(0) | 0)) e = 0;
                        else e = (bs() | 0) & 65535;
                        return e | 0
                    }

                    function eb() {
                        var e = 0;
                        if (!(rf(0) | 0)) e = 0;
                        else e = (gs() | 0) & 65535;
                        return e | 0
                    }

                    function tb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(rf(0) | 0)) e = 0;
                        else e = Ks(e, t) | 0;
                        return e | 0
                    }

                    function ib(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 == -1) e = 0;
                            else e = Ks(e, t) | 0
                        } else {
                            a[t >> 2] = 0;
                            a[t + 12 >> 2] = -1;
                            e = 0
                        }
                        return e | 0
                    }

                    function rb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 == -1) e = 0;
                            else e = Ks(e, t) | 0
                        } else {
                            a[t >> 2] = 0;
                            a[t + 12 >> 2] = -1;
                            e = 0
                        }
                        return e | 0
                    }

                    function nb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 2544 | 0;
                        i = r;
                        gS(8448, 0, 120) | 0;
                        if ((Oa(i, e, t) | 0 ? Ca(i) | 0 : 0) ? ms() | 0 : 0) {
                            sc(i + 2292 | 0, 8508);
                            Ca(0) | 0;
                            a[2112] = 1
                        }
                        p = r;
                        return
                    }

                    function ab(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            o = 0;
                        aE(t, (e * 176 | 0) + 24 | 0);
                        i = t + 7 | 0;
                        JE(6808);
                        a[1624] = e;
                        r = i & -8;
                        a[1626] = r;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (e | 0)) break;
                            o = r + (t * 84 | 0) | 0;
                            zE(o);
                            s = r + (t * 84 | 0) | 0;
                            a[s >> 2] = s;
                            tS(6808, o);
                            t = t + 1 | 0
                        }
                        s = (e * 84 | 0) + (i | 7) | 0;
                        JE(6820);
                        a[1625] = e;
                        i = s & -8;
                        a[1627] = i;
                        t = 0;
                        o = e;
                        while (1) {
                            if ((t | 0) >= (o | 0)) break;
                            zE(i + (t * 36 | 0) | 0);
                            r = a[1627] | 0;
                            o = r + (t * 36 | 0) | 0;
                            a[o >> 2] = o;
                            tS(6820, r + (t * 36 | 0) | 0);
                            n[r + (t * 36 | 0) + 18 >> 1] = t;
                            t = t + 1 | 0;
                            o = a[1625] | 0;
                            i = r
                        }
                        JE(6752);
                        r = e << 1;
                        i = (o * 36 | 0) + (s | 7) & -8;
                        a[1628] = i;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (r | 0)) break;
                            e = i + (t * 28 | 0) + 4 | 0;
                            zE(e);
                            a[i + (t * 28 | 0) + 4 >> 2] = i + (t * 28 | 0);
                            tS(6752, e);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function sb() {
                        eo();
                        a[1623] = 14;
                        so();
                        return
                    }

                    function ob(e) {
                        e = e | 0;
                        var t = 0.0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        h[i >> 2] = 0.0;
                        if (rf(0) | 0)
                            if (e << 16 >> 16 > -1) {
                                e = a[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 12 >> 2] | 0;
                                no(+h[e + 244 >> 2], a[e + 284 >> 2] | 0, i, 0) | 0;
                                t = +h[i >> 2]
                            } else t = 0.0;
                        else {
                            sE();
                            t = 0.0
                        }
                        p = r;
                        return +t
                    }

                    function ub(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!(rf(0) | 0)) sE();
                        else hb(Js(e) | 0, t);
                        return
                    }

                    function hb(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0;
                        if (rf(0) | 0) {
                            if (e << 16 >> 16 > -1) {
                                e = e << 16 >> 16;
                                i = a[(a[1687] | 0) + 12 >> 2] | 0;
                                if (!((r[i + (e * 84 | 0) + 29 >> 0] | 0) == 0 ? (a[(a[i + (e * 84 | 0) + 8 >> 2] | 0) + 20 >> 2] | 0) != 0 : 0)) n = 6;
                                if ((n | 0) == 6 ? (r[i + (e * 84 | 0) + 30 >> 0] | 0) == 0 : 0) {
                                    eo();
                                    go(a[i + (e * 84 | 0) + 12 >> 2] | 0, 0, t);
                                    so()
                                }
                                h[i + (e * 84 | 0) + 32 >> 2] = t
                            }
                        } else sE();
                        return
                    }

                    function lb(e) {
                        e = e | 0;
                        var t = 0.0;
                        if (!(rf(0) | 0)) {
                            sE();
                            t = -1.0
                        } else t = +ob(Js(e) | 0);
                        return +t
                    }

                    function fb(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!(rf(0) | 0)) sE();
                        else hb(Qs(e) | 0, t);
                        return
                    }

                    function cb(e) {
                        e = e | 0;
                        return + +ob(Qs(e) | 0)
                    }

                    function db(e) {
                        e = e | 0;
                        var t = 0.0,
                            i = 0;
                        if (rf(0) | 0)
                            if (e << 16 >> 16 > -1) {
                                i = a[(a[1687] | 0) + 12 >> 2] | 0;
                                eo();
                                t = +pb(a[i + ((e << 16 >> 16) * 84 | 0) + 12 >> 2] | 0);
                                so()
                            } else t = 0.0;
                        else {
                            sE();
                            t = 0.0
                        }
                        return +t
                    }

                    function pb(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 384 | 0;
                        i = n;
                        r = cf(0, 0, 2, n + 8 | 0, 376) | 0;
                        t = r;
                        while (1) {
                            a[t + 32 >> 2] = e;
                            if (!e) break;
                            t = e;
                            e = a[e + 44 >> 2] | 0
                        }
                        lR(r);
                        no(+h[r + 244 >> 2], a[r + 284 >> 2] | 0, i, 0) | 0;
                        uo(r);
                        p = n;
                        return + +h[i >> 2]
                    }

                    function vb(e) {
                        e = e | 0;
                        var t = 0.0;
                        if (!(rf(0) | 0)) {
                            sE();
                            t = 0.0
                        } else t = +db(Js(e) | 0);
                        return +t
                    }

                    function mb(e) {
                        e = e | 0;
                        var t = 0.0;
                        if (!(rf(0) | 0)) {
                            sE();
                            t = 0.0
                        } else t = +db(Qs(e) | 0);
                        return +t
                    }

                    function _b(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(rf(0) | 0)) sE();
                        else bb(Js(e) | 0, t);
                        return
                    }

                    function bb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        n = f;
                        if (rf(0) | 0) {
                            if (e << 16 >> 16 > -1 ? (u = e << 16 >> 16, l = a[(a[1687] | 0) + 12 >> 2] | 0, i = l + (u * 84 | 0) + 30 | 0, (s[i >> 0] | 0) != (t | 0)) : 0) {
                                r[i >> 0] = t;
                                eo();
                                e = (r[l + (u * 84 | 0) + 29 >> 0] | 0) != 0;
                                do {
                                    if (!(r[i >> 0] | 0)) {
                                        if (!e ? (o = a[l + (u * 84 | 0) + 8 >> 2] | 0, a[o + 20 >> 2] | 0) : 0) {
                                            go(a[l + (u * 84 | 0) + 12 >> 2] | 0, 0, +h[o + 24 >> 2]);
                                            break
                                        }
                                        go(a[l + (u * 84 | 0) + 12 >> 2] | 0, 0, +h[l + (u * 84 | 0) + 32 >> 2])
                                    } else {
                                        if (!e ? a[(a[l + (u * 84 | 0) + 8 >> 2] | 0) + 20 >> 2] | 0 : 0) {
                                            go(a[l + (u * 84 | 0) + 12 >> 2] | 0, 0, 1.5249999705702066e-05);
                                            break
                                        }
                                        o = l + (u * 84 | 0) + 12 | 0;
                                        i = a[o >> 2] | 0;
                                        i = (no(+h[i + 244 >> 2], a[i + 284 >> 2] | 0, n, 1) | 0) == 1;
                                        h[l + (u * 84 | 0) + 32 >> 2] = i ? +h[n >> 2] : 1.0;
                                        go(a[o >> 2] | 0, 0, 1.5249999705702066e-05)
                                    }
                                } while (0);
                                so()
                            }
                        } else sE();
                        p = f;
                        return
                    }

                    function gb(e) {
                        e = e | 0;
                        if (!(rf(0) | 0)) {
                            sE();
                            e = 0
                        } else e = yb(Js(e) | 0) | 0;
                        return e | 0
                    }

                    function yb(e) {
                        e = e | 0;
                        if (rf(0) | 0)
                            if (e << 16 >> 16 > -1) e = s[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 30 >> 0] | 0;
                            else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Ab(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(rf(0) | 0)) sE();
                        else bb(Qs(e) | 0, t);
                        return
                    }

                    function wb(e) {
                        e = e | 0;
                        if (!(rf(0) | 0)) {
                            sE();
                            e = 0
                        } else e = yb(Qs(e) | 0) | 0;
                        return e | 0
                    }

                    function xb(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) kb(e, t, i)
                        } else sE();
                        return
                    }

                    function kb(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var n = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        if (rf(0) | 0) {
                            n = a[(a[1687] | 0) + 12 >> 2] | 0;
                            e = e << 16 >> 16;
                            v = n + (e * 84 | 0) | 0;
                            l = n + (e * 84 | 0) + 29 | 0;
                            if ((s[l >> 0] | 0) != (t | 0)) {
                                eo();
                                f = n + (e * 84 | 0) + 8 | 0;
                                o = a[(a[f >> 2] | 0) + 8 >> 2] | 0;
                                ZE(o) | 0;
                                c = (t | 0) != 0;
                                d = n + (e * 84 | 0) + 30 | 0;
                                p = n + (e * 84 | 0) + 12 | 0;
                                u = n + (e * 84 | 0) + 32 | 0;
                                while (1) {
                                    if (!o) break;
                                    e = a[o >> 2] | 0;
                                    do {
                                        if ((v | 0) == (e | 0)) {
                                            if ((c ? (r[d >> 0] | 0) == 0 : 0) ? a[(a[f >> 2] | 0) + 20 >> 2] | 0 : 0) go(a[p >> 2] | 0, 0, +h[u >> 2])
                                        } else {
                                            n = (r[e + 30 >> 0] | 0) == 0;
                                            if (!c) {
                                                if (!n) break;
                                                go(a[e + 12 >> 2] | 0, 0, +h[e + 32 >> 2]);
                                                break
                                            }
                                            if (n) go(a[e + 12 >> 2] | 0, 0, +h[e + 32 >> 2] * i);
                                            e = e + 29 | 0;
                                            if (r[e >> 0] | 0) r[e >> 0] = 0
                                        }
                                    } while (0);
                                    o = a[o + 4 >> 2] | 0
                                }
                                r[l >> 0] = t;
                                v = a[f >> 2] | 0;
                                a[v + 20 >> 2] = t;
                                h[v + 24 >> 2] = i;
                                so()
                            }
                        } else sE();
                        return
                    }

                    function Tb(e) {
                        e = e | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) e = s[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 29 >> 0] | 0;
                            else e = 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Eb(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) kb(e, t, i)
                        } else sE();
                        return
                    }

                    function Sb(e) {
                        e = e | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) e = s[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 29 >> 0] | 0;
                            else e = 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Pb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) aL(e, t)
                        } else sE();
                        return
                    }

                    function Ib(e) {
                        e = e | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) e = Mb(e) | 0;
                            else e = 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Mb(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        t = n;
                        a[t >> 2] = 0;
                        do {
                            if (rf(0) | 0) {
                                i = e << 16 >> 16;
                                if (e << 16 >> 16 >= 0 ? (r = a[1687] | 0, (a[r + 52 >> 2] | 0) > (i | 0)) : 0)
                                    if ((FO(a[(a[(a[r + 12 >> 2] | 0) + (i * 84 | 0) + 12 >> 2] | 0) + 284 >> 2] | 0, t) | 0) == 1) {
                                        e = a[t >> 2] | 0;
                                        break
                                    } else {
                                        a[t >> 2] = 0;
                                        e = 0;
                                        break
                                    }
                                else e = 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = n;
                        return e | 0
                    }

                    function Cb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) aL(e, t)
                        } else sE();
                        return
                    }

                    function Ob(e) {
                        e = e | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) e = Mb(e) | 0;
                            else e = 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function Rb(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        do {
                            if (rf(0) | 0)
                                if (t >>> 0 > 999) {
                                    sE();
                                    break
                                } else {
                                    i = i > 0.0 ? i : 0.0;
                                    Db(Js(e) | 0, t + 1e3 | 0, i < 1.0 ? i : 1.0);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Db(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0;
                        do {
                            if (rf(0) | 0) {
                                if ((t | 0) == 65535 | t >>> 0 < 1e3) {
                                    sE();
                                    break
                                }
                                if (e << 16 >> 16 < 0) {
                                    sE();
                                    break
                                } else {
                                    r = a[(a[1687] | 0) + 12 >> 2] | 0;
                                    eo();
                                    go(a[r + ((e << 16 >> 16) * 84 | 0) + 12 >> 2] | 0, t & 65535, i);
                                    so();
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function Fb(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        do {
                            if (rf(0) | 0) {
                                if (!t) {
                                    sE();
                                    break
                                }
                                t = Gf(t) | 0;
                                if (t << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    i = i > 0.0 ? i : 0.0;
                                    Db(Qs(e) | 0, t & 65535, i < 1.0 ? i : 1.0);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function Bb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) Nb(e, t)
                        } else sE();
                        return
                    }

                    function Nb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (rf(0) | 0)
                                if (e << 16 >> 16 < 0) {
                                    sE();
                                    break
                                } else {
                                    n[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 24 >> 1] = t;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Lb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) Nb(e, t)
                        } else sE();
                        return
                    }

                    function Ub(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Js(e) | 0;
                            if (e << 16 >> 16 > -1) Vb(e, t)
                        } else sE();
                        return
                    }

                    function Vb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (rf(0) | 0)
                                if (e << 16 >> 16 < 0) {
                                    sE();
                                    break
                                } else {
                                    n[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 26 >> 1] = t;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Xb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (rf(0) | 0) {
                            e = Qs(e) | 0;
                            if (e << 16 >> 16 > -1) Vb(e, t)
                        } else sE();
                        return
                    }

                    function jb(e) {
                        e = e | 0;
                        if (!(rf(0) | 0)) {
                            sE();
                            e = -1
                        } else e = Gb(Js(e) | 0) | 0;
                        return e | 0
                    }

                    function Gb(e) {
                        e = e | 0;
                        do {
                            if (rf(0) | 0)
                                if (e << 16 >> 16 < 0) {
                                    sE();
                                    e = -1;
                                    break
                                } else {
                                    e = o[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 36 >> 1] | 0;
                                    break
                                }
                            else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function $b(e) {
                        e = e | 0;
                        if (!(rf(0) | 0)) {
                            sE();
                            e = -1
                        } else e = Gb(Qs(e) | 0) | 0;
                        return e | 0
                    }

                    function Hb() {
                        oj(0);
                        return
                    }

                    function Wb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Yb(e, t);
                        return
                    }

                    function Yb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        if ((t | 0) < 0) sE();
                        else {
                            eo();
                            r = a[1930] | 0;
                            do {
                                if (!r) sE();
                                else {
                                    i = a[r + 156 >> 2] | 0;
                                    if (!i) {
                                        sE();
                                        break
                                    }
                                    if (!(a[r >> 2] | 0)) i = r;
                                    else {
                                        ML(r + 4 | 0, r + 68 | 0, +h[r + 152 >> 2], i);
                                        i = a[1930] | 0
                                    }
                                    i = i + 68 | 0;
                                    if (!e) mS(i, 64, 11354);
                                    else mS(i, 64, e);
                                    a[r >> 2] = 1;
                                    i = Wo() | 0;
                                    e = r + 136 | 0;
                                    a[e >> 2] = i;
                                    a[e + 4 >> 2] = P;
                                    e = fM(t | 0, ((t | 0) < 0) << 31 >> 31 | 0, 1e3, 0) | 0;
                                    t = r + 144 | 0;
                                    a[t >> 2] = e;
                                    a[t + 4 >> 2] = P;
                                    h[r + 152 >> 2] = 0.0
                                }
                            } while (0);
                            so()
                        }
                        return
                    }

                    function zb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            o = 0;
                        o = p;
                        p = p + 448 | 0;
                        i = o + 168 | 0;
                        r = o;
                        do {
                            if (!(rf(0) | 0))
                                if (e >>> 0 > 7) e = 0;
                                else {
                                    a[t >> 2] = a[24 + (e << 2) >> 2];
                                    e = 1
                                }
                            else {
                                if (LF(0) | 0) {
                                    eo();
                                    if ((mf((a[1930] | 0) + 4 | 0, i) | 0 ? (s[i + 262 >> 0] | 0 | 0) > (e | 0) : 0) ? kf(n[i + 4 + (e << 1) >> 1] | 0, r) | 0 : 0) {
                                        a[t >> 2] = a[r >> 2];
                                        so();
                                        e = 1;
                                        break
                                    }
                                    so();
                                    e = 0;
                                    break
                                }
                                if ((os() | 0) >>> 0 > 17367040 ? (cs(4157) | 0) << 16 >> 16 != -1 : 0) {
                                    if (e >>> 0 > 7) {
                                        e = 0;
                                        break
                                    }
                                    a[t >> 2] = a[56 + (e << 2) >> 2];
                                    e = 1;
                                    break
                                }
                                if (e >>> 0 > 7) e = 0;
                                else {
                                    a[t >> 2] = a[24 + (e << 2) >> 2];
                                    e = 1
                                }
                            }
                        } while (0);
                        p = o;
                        return e | 0
                    }

                    function qb() {
                        var e = 0;
                        if (!(LF(0) | 0)) {
                            sE();
                            e = 0
                        } else {
                            e = Jb() | 0;
                            e = (r[e >> 0] | 0) == 0 ? 0 : e
                        }
                        return e | 0
                    }

                    function Jb() {
                        return (a[1930] | 0) + 68 | 0
                    }

                    function Qb() {
                        return qb() | 0
                    }

                    function Zb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((e | 0) == 0 & (t | 0) == 0) {
                            e = oi(180) | 0;
                            i = e;
                            t = 180
                        } else i = 0;
                        eo();
                        t = Kb(e, t) | 0;
                        so();
                        if (!t)
                            if (!i) t = 0;
                            else {
                                si(i);
                                t = 0
                            }
                        else a[t + 156 >> 2] = i;
                        return t | 0
                    }

                    function Kb(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (!((e | 0) == 0 | (t | 0) < 180)) {
                                gS(e, 0, 180) | 0;
                                e = e + 7 & -8;
                                t = eg(e) | 0;
                                a[e + 120 >> 2] = t;
                                if (!t) {
                                    GG(e);
                                    e = 0;
                                    break
                                } else {
                                    Zd(e);
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function eg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        aE(e, 120);
                        a[e >> 2] = 0;
                        a[e + 96 >> 2] = 500;
                        a[e + 104 >> 2] = 500;
                        t = AS(a[2062] | 0, e, e + 4 | 0) | 0;
                        a[e >> 2] = t;
                        i = a[2061] | 0;
                        a[2061] = i + 1;
                        if (!i) {
                            tg();
                            t = a[e >> 2] | 0
                        }
                        if (!t) {
                            sE();
                            jG(e);
                            e = 0
                        }
                        return e | 0
                    }

                    function tg() {
                        var e = 0;
                        e = Wo() | 0;
                        e = dM(e | 0, P | 0, 1e3, 0) | 0;
                        a[2064] = e;
                        a[2063] = 0;
                        return
                    }

                    function ig(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e: do {
                            if (e) {
                                t = a[e + 208 >> 2] | 0;
                                do {
                                    if (Bo(t) | 0)
                                        if ((a[t + 168 >> 2] | 0) == 1) {
                                            sE();
                                            break e
                                        } else {
                                            zG(e, 61);
                                            YG(e);
                                            break
                                        }
                                    else zG(e, 61)
                                } while (0);
                                t = Zb(i, r) | 0;
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[t + 168 >> 2] = 0;
                                    AC(t, e);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function rg(e) {
                        e = e | 0;
                        e = sL(e) | 0;
                        if (!e) e = -1;
                        else e = a[e + 144 >> 2] | 0;
                        return e | 0
                    }

                    function ng(e) {
                        e = e | 0;
                        e = sL(e) | 0;
                        if (!e) e = -1;
                        else e = a[e + 148 >> 2] | 0;
                        return e | 0
                    }

                    function ag(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = sL(e) | 0;
                        if (e | 0) a[e + 140 >> 2] = t;
                        return
                    }

                    function sg(e) {
                        e = e | 0;
                        e = sL(e) | 0;
                        if (!e) e = -1;
                        else e = a[e + 140 >> 2] | 0;
                        return e | 0
                    }

                    function og(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = sL(e) | 0;
                        if (e | 0) a[e + 152 >> 2] = t;
                        return
                    }

                    function ug(e) {
                        e = e | 0;
                        e = sL(e) | 0;
                        if (!e) e = -1;
                        else e = a[e + 152 >> 2] | 0;
                        return e | 0
                    }

                    function hg(e) {
                        e = e | 0;
                        var t = 0;
                        t = sL(e) | 0;
                        if ((t | 0) != 0 ? (e_(e) | 0) == 2 : 0) e = mN(a[t + 120 >> 2] | 0) | 0;
                        else e = 0;
                        return e | 0
                    }

                    function lg(e) {
                        e = e | 0;
                        e = sL(e) | 0;
                        if (e | 0) Zd(e);
                        return
                    }

                    function fg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        cg();
                        aE(t, (e * 180 | 0) + 8 | 0);
                        i = t + 7 & -8;
                        JE(7344);
                        a[1629] = e;
                        a[1630] = i;
                        r = 0;
                        t = e;
                        while (1) {
                            if ((r | 0) >= (t | 0)) break;
                            t = Zb(i, 180) | 0;
                            if (!t) {
                                n = 4;
                                break
                            }
                            a[t + 168 >> 2] = 1;
                            e = t + 160 | 0;
                            zE(e);
                            a[e >> 2] = t;
                            tS(7344, e);
                            i = i + 180 | 0;
                            r = r + 1 | 0;
                            t = a[1629] | 0
                        }
                        if ((n | 0) == 4) sE();
                        return
                    }

                    function cg() {
                        var e = 0;
                        e = a[2415] | 0;
                        a[2415] = e + 1;
                        if ((e | 0) == 0 ? (kP(), dg(), bS(), a[2062] = 10805 & -8, (10805 & -8 | 0) == 0) : 0) VG();
                        return
                    }

                    function dg() {
                        var e = 0,
                            t = 0;
                        e = a[2412] | 0;
                        a[2412] = e + 1;
                        if (!e) {
                            t = 8;
                            a[t >> 2] = 1e6;
                            a[t + 4 >> 2] = 0;
                            t = _I() | 0;
                            e = 6384;
                            a[e >> 2] = t;
                            a[e + 4 >> 2] = P;
                            e = 6368;
                            a[e >> 2] = 0;
                            a[e + 4 >> 2] = 0
                        }
                        return
                    }

                    function pg(e) {
                        e = e | 0;
                        if (!e) {
                            a[1722] = a[550];
                            a[1723] = a[551];
                            a[1724] = a[552];
                            a[1725] = a[553];
                            a[1726] = a[554]
                        } else {
                            a[1722] = a[e >> 2];
                            a[1723] = a[e + 4 >> 2];
                            a[1724] = a[e + 8 >> 2];
                            a[1725] = a[e + 12 >> 2];
                            a[1726] = a[e + 16 >> 2]
                        }
                        return
                    }

                    function vg() {
                        return 24
                    }

                    function mg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return jS(e, t) | 0
                    }

                    function _g(e) {
                        e = e | 0;
                        return
                    }

                    function bg(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return (((GS(e) | 0) >>> 0) % ((1 - t + ((t | 0) > (i | 0) ? t : i) | 0) >>> 0) | 0) + t | 0
                    }

                    function gg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        $S(e, t);
                        return
                    }

                    function yg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        _ = p;
                        p = p + 112 | 0;
                        f = _ + 80 | 0;
                        c = _ + 56 | 0;
                        d = _ + 32 | 0;
                        v = _ + 16 | 0;
                        o = _ + 8 | 0;
                        u = _ + 4 | 0;
                        l = _;
                        e: do {
                            if (!e) {
                                a[t >> 2] = 0;
                                h[t + 4 >> 2] = 60.0;
                                a[t + 8 >> 2] = 1;
                                a[t + 12 >> 2] = 0;
                                i = t + 16 | 0;
                                a[i >> 2] = 16;
                                a[t + 20 >> 2] = 1024;
                                a[t + 24 >> 2] = 16;
                                a[t + 28 >> 2] = 16;
                                r[t + 32 >> 0] = 8;
                                a[t + 36 >> 2] = 4;
                                a[t + 40 >> 2] = 16;
                                a[t + 44 >> 2] = 32;
                                a[t + 48 >> 2] = 32;
                                a[t + 52 >> 2] = 0;
                                h[t + 56 >> 2] = 2400.0;
                                a[t + 60 >> 2] = 4;
                                a[t + 64 >> 2] = 0;
                                a[t + 68 >> 2] = 0;
                                a[t + 72 >> 2] = 0;
                                h[t + 76 >> 2] = 1.5;
                                m = t + 80 | 0;
                                a[m >> 2] = 0;
                                a[m + 4 >> 2] = 0;
                                a[m + 8 >> 2] = 0;
                                a[m + 12 >> 2] = 0;
                                a[t + 96 >> 2] = 35685889;
                                a[t + 100 >> 2] = 35652096;
                                m = 23
                            } else {
                                s = t;
                                n = s + 104 | 0;
                                do {
                                    a[s >> 2] = a[e >> 2];
                                    s = s + 4 | 0;
                                    e = e + 4 | 0
                                } while ((s | 0) < (n | 0));
                                if (!(+h[t + 4 >> 2] < 0.0) ? (i = t + 16 | 0, (a[i >> 2] | 0) >>> 0 <= 32767) : 0) {
                                    s = t + 88 | 0;
                                    e = a[s >> 2] | 0;
                                    if (!e) {
                                        m = 23;
                                        break
                                    }
                                    a[u >> 2] = 0;
                                    a[l >> 2] = 0;
                                    t: do {
                                        if (_S() | 0) {
                                            if (!(rj() | 0)) {
                                                sE();
                                                i = -1;
                                                break
                                            }
                                            if ((a[e >> 2] | 0) != 3) {
                                                n = t + 84 | 0;
                                                do {
                                                    if (!(xI() | 0)) {
                                                        gI(o);
                                                        e = oi(a[o >> 2] | 0) | 0;
                                                        if (!e) {
                                                            sE();
                                                            aG();
                                                            i = 0;
                                                            break t
                                                        } else {
                                                            a[2143] = e;
                                                            yI();
                                                            a[2142] = 1;
                                                            break
                                                        }
                                                    } else if ((a[n >> 2] | 0) != 0 & (a[2142] | 0) == 0) NE()
                                                } while (0);
                                                a[n >> 2] = 0;
                                                e = a[s >> 2] | 0
                                            }
                                            if (!(Q_(e, u, l) | 0)) {
                                                Zj();
                                                i = -1;
                                                break
                                            } else {
                                                Ag(t, a[u >> 2] | 0, a[l >> 2] | 0);
                                                m = 23;
                                                break e
                                            }
                                        } else {
                                            sE();
                                            i = -1
                                        }
                                    } while (0);
                                    break
                                }
                                sE();
                                i = -1
                            }
                        } while (0);
                        if ((m | 0) == 23) {
                            wg(t, f, c);
                            m = xg(c) | 0;
                            aE(d, 20);
                            c = a[i >> 2] | 0;
                            l = c + (a[t + 40 >> 2] | 0) | 0;
                            a[d >> 2] = l;
                            a[d + 4 >> 2] = (a[t + 44 >> 2] | 0) + c;
                            a[d + 8 >> 2] = (a[t + 48 >> 2] | 0) + c;
                            i = a[t + 36 >> 2] | 0;
                            a[d + 12 >> 2] = i;
                            o = r[t + 32 >> 0] | 0;
                            r[d + 16 >> 0] = o;
                            u = kg(d) | 0;
                            a[v >> 2] = 64;
                            a[v + 4 >> 2] = c;
                            a[v + 8 >> 2] = i;
                            r[v + 12 >> 0] = o;
                            f = yv(v) | 0;
                            l = (l * 172 | 0) + 8 | 0;
                            d = o & 255;
                            i = (G((i << 2) + 548 + d + ((d * 6 | 0) + i << 1) | 0, c) | 0) + 16 | 0;
                            c = (c * 176 | 0) + 24 | 0;
                            d = ((a[t + 60 >> 2] | 0) * 180 | 0) + 8 | 0;
                            pg(a[t + 80 >> 2] | 0);
                            v = (Tg() | 0) << 1;
                            m = aM(u | 0, ((u | 0) < 0) << 31 >> 31 | 0, m | 0, ((m | 0) < 0) << 31 >> 31 | 0) | 0;
                            f = aM(m | 0, P | 0, f | 0, ((f | 0) < 0) << 31 >> 31 | 0) | 0;
                            l = aM(f | 0, P | 0, l | 0, ((l | 0) < 0) << 31 >> 31 | 0) | 0;
                            f = P;
                            m = Eg(a[t + 20 >> 2] | 0) | 0;
                            c = aM(l | 0, f | 0, c | 0, ((c | 0) < 0) << 31 >> 31 | 0) | 0;
                            d = aM(c | 0, P | 0, d | 0, ((d | 0) < 0) << 31 >> 31 | 0) | 0;
                            v = aM(d | 0, P | 0, v | 0, ((v | 0) < 0) << 31 >> 31 | 0) | 0;
                            m = aM(v | 0, P | 0, m | 0, 0) | 0;
                            i = aM(m | 0, P | 0, i | 0, ((i | 0) < 0) << 31 >> 31 | 0) | 0;
                            m = P;
                            i = (m | 0) > 0 | (m | 0) == 0 & i >>> 0 > 2147483647 ? -1 : i
                        }
                        p = _;
                        return i | 0
                    }

                    function Ag(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0.0,
                            n = 0.0,
                            s = 0;
                        nb(t, i);
                        if (a[2112] | 0) {
                            i = e + 28 | 0;
                            t = a[i >> 2] | 0;
                            s = a[2118] | 0;
                            a[i >> 2] = (t | 0) > (s | 0) ? t : s;
                            i = e + 36 | 0;
                            s = a[i >> 2] | 0;
                            t = a[2119] | 0;
                            a[i >> 2] = (s | 0) > (t | 0) ? s : t;
                            i = e + 24 | 0;
                            t = a[i >> 2] | 0;
                            s = a[2126] | 0;
                            a[i >> 2] = (t | 0) > (s | 0) ? t : s;
                            i = e + 16 | 0;
                            s = a[i >> 2] | 0;
                            t = a[2127] | 0;
                            a[i >> 2] = (s | 0) > (t | 0) ? s : t;
                            i = e + 20 | 0;
                            t = a[i >> 2] | 0;
                            s = a[2128] | 0;
                            a[i >> 2] = (t | 0) > (s | 0) ? t : s;
                            i = e + 40 | 0;
                            s = a[i >> 2] | 0;
                            t = a[2129] | 0;
                            a[i >> 2] = (s | 0) > (t | 0) ? s : t;
                            i = e + 44 | 0;
                            t = a[i >> 2] | 0;
                            s = a[2130] | 0;
                            a[i >> 2] = t >>> 0 > s >>> 0 ? t : s;
                            i = e + 48 | 0;
                            s = a[i >> 2] | 0;
                            t = a[2131] | 0;
                            a[i >> 2] = s >>> 0 > t >>> 0 ? s : t;
                            i = e + 56 | 0;
                            n = +h[i >> 2];
                            r = +h[2132];
                            h[i >> 2] = n > r ? n : r;
                            i = e + 60 | 0;
                            e = a[i >> 2] | 0;
                            t = a[2133] | 0;
                            a[i >> 2] = e >>> 0 > t >>> 0 ? e : t
                        }
                        return
                    }

                    function wg(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        aE(t, 24);
                        a[t >> 2] = a[e >> 2];
                        a[t + 4 >> 2] = a[e + 4 >> 2];
                        a[t + 8 >> 2] = a[e + 84 >> 2];
                        a[t + 12 >> 2] = a[e + 92 >> 2];
                        a[t + 16 >> 2] = a[e + 96 >> 2];
                        r = e + 16 | 0;
                        a[t + 20 >> 2] = a[r >> 2];
                        aE(i, 24);
                        a[i >> 2] = a[r >> 2];
                        a[i + 4 >> 2] = a[e + 24 >> 2];
                        a[i + 8 >> 2] = a[e + 56 >> 2];
                        a[i + 12 >> 2] = t;
                        a[i + 16 >> 2] = a[e + 36 >> 2];
                        a[i + 20 >> 2] = s[e + 32 >> 0];
                        return
                    }

                    function xg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 32 | 0;
                        t = r;
                        if (!e) {
                            a[t >> 2] = 32;
                            a[t + 4 >> 2] = 32;
                            h[t + 8 >> 2] = 2400.0;
                            a[t + 12 >> 2] = 0;
                            a[t + 16 >> 2] = 4;
                            a[t + 20 >> 2] = 8;
                            i = 7896;
                            e = 0
                        } else {
                            t = e;
                            i = ((a[e >> 2] | 0) * 228 | 0) + 600 | 0;
                            e = a[e + 12 >> 2] | 0
                        }
                        n = Sg(e) | 0;
                        e = a[t + 20 >> 2] | 0;
                        p = r;
                        return n + i + e + (e * 12 | 0) + (a[t + 4 >> 2] << 3) + ((a[t >> 2] | 0) * 588 | 0) | 0
                    }

                    function kg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            o = 0;
                        r = s[e + 16 >> 0] | 0;
                        o = r + 376 + (r * 12 | 0) | 0;
                        i = o + (a[e + 12 >> 2] << 2) | 0;
                        t = a[e >> 2] | 0;
                        r = r << 4;
                        n = a[e + 4 >> 2] | 0;
                        return o + 296 + (t * 48 | 8) + (n << 7 | 8) + (a[e + 8 >> 2] << 6 | 8) + (G(r + 36 + i | 0, n) | 0) + (G(r + 296 + i | 0, t) | 0) | 0
                    }

                    function Tg() {
                        var e = 0;
                        e = a[1722] | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else e = ZG[e & 7]() | 0;
                        return e | 0
                    }

                    function Eg(e) {
                        e = e | 0;
                        return e << 6 | 8 | 0
                    }

                    function Sg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 32 | 0;
                        i = r + 24 | 0;
                        t = r;
                        a[i >> 2] = 0;
                        if (!e) {
                            a[t >> 2] = 0;
                            h[t + 4 >> 2] = 60.0;
                            a[t + 8 >> 2] = 0;
                            a[t + 12 >> 2] = 0;
                            a[t + 16 >> 2] = 35685889;
                            a[t + 20 >> 2] = 16;
                            e = t
                        }
                        if (!(xI() | 0)) {
                            gI(i);
                            t = a[i >> 2] | 0
                        } else t = 0;
                        i = t + (Pg(e) | 0) | 0;
                        p = r;
                        return i | 0
                    }

                    function Pg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        i = t;
                        aE(i, 16);
                        a[i >> 2] = 32768;
                        a[i + 4 >> 2] = a[e + 4 >> 2];
                        a[i + 8 >> 2] = a[e + 20 >> 2];
                        a[i + 12 >> 2] = a[e + 12 >> 2];
                        e = Ig(i) | 0;
                        p = t;
                        return ((e | 0) > -1 ? e : -1) | 0
                    }

                    function Ig(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = p;
                        p = p + 16 | 0;
                        r = i;
                        t = a[e + 8 >> 2] | 0;
                        a[r >> 2] = a[e + 4 >> 2];
                        a[r + 4 >> 2] = t;
                        a[r + 8 >> 2] = a[e + 12 >> 2];
                        e = Mg(r) | 0;
                        p = i;
                        return ((e | 0) < 0 ? -1 : (t << 3) + 52 + e | 0) | 0
                    }

                    function Mg(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = p;
                        p = p + 16 | 0;
                        r = i;
                        t = a[e + 4 >> 2] | 0;
                        a[r >> 2] = a[e >> 2];
                        a[r + 4 >> 2] = a[e + 8 >> 2];
                        bG(1, 2220);
                        e = Og(1, r) | 0;
                        p = i;
                        return ((e | 0) < 0 ? -1 : (t << 2) + 36 + e | 0) | 0
                    }

                    function Cg(e) {
                        e = e | 0;
                        return 12
                    }

                    function Og(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(gG(e) | 0)) e = -1;
                        else e = KG[a[a[6592 + (e << 2) >> 2] >> 2] & 63](t) | 0;
                        return e | 0
                    }

                    function Rg(e) {
                        e = e | 0;
                        return 0
                    }

                    function Dg(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Re();
                        bG(7, 2220);
                        return 1
                    }

                    function Fg() {
                        Te();
                        return
                    }

                    function Bg() {
                        return
                    }

                    function Ng() {
                        ke();
                        return
                    }

                    function Lg(e) {
                        e = e | 0;
                        return 0
                    }

                    function Ug(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return ge(a[e + 4 >> 2] | 0) | 0
                    }

                    function Vg(e) {
                        e = e | 0;
                        we(e | 0);
                        return
                    }

                    function Xg(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        ht(e | 0, a[r + 4 >> 2] | 0, a[r + 12 >> 2] | 0, a[r + 8 >> 2] | 0);
                        return 1
                    }

                    function jg(e) {
                        e = e | 0;
                        var t = 0;
                        t = oI(Me(e | 0) | 0) | 0;
                        if ((t | 0) > 0) Qe(e | 0, t | 0);
                        lt(e | 0);
                        return
                    }

                    function Gg(e) {
                        e = e | 0;
                        ft(e | 0);
                        return
                    }

                    function $g(e) {
                        e = e | 0;
                        return
                    }

                    function Hg(e) {
                        e = e | 0;
                        dt(e | 0);
                        return 1
                    }

                    function Wg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return t | 0
                    }

                    function Yg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return t | 0
                    }

                    function zg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Be(e | 0, t | 0);
                        return
                    }

                    function qg(e) {
                        e = e | 0;
                        return De(e | 0) | 0
                    }

                    function Jg(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Oe(e | 0, t | 0, i | 0);
                        return
                    }

                    function Qg(e, t) {
                        e = e | 0;
                        t = t | 0;
                        ut(e | 0, t | 0);
                        return 1
                    }

                    function Zg(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        at(e | 0, t | 0, i | 0, r | 0);
                        return
                    }

                    function Kg(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return
                    }

                    function ey(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return
                    }

                    function ty(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        switch (t | 0) {
                            case 1:
                                {
                                    We(e | 0, i | 0);
                                    break
                                }
                            case 2:
                                {
                                    Ge(e | 0, i | 0);
                                    break
                                }
                            case 14:
                                {
                                    rt(e | 0, i | 0);
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function iy(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        e: do {
                            switch (t | 0) {
                                case 1:
                                    switch (i | 0) {
                                        case 0:
                                            {
                                                Je(e | 0, ~~r | 0);
                                                break e
                                            }
                                        case 1:
                                            {
                                                Ye(e | 0, +r);
                                                break e
                                            }
                                        case 2:
                                            {
                                                qe(e | 0, +r);
                                                break e
                                            }
                                        case 3:
                                            {
                                                ze(e | 0, +r);
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                case 2:
                                    switch (i | 0) {
                                        case 1:
                                            {
                                                He(e | 0, +r);
                                                break e
                                            }
                                        case 2:
                                            {
                                                $e(e | 0, +r);
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                case 14:
                                    switch (i | 0) {
                                        case 0:
                                            {
                                                nt(e | 0, 0, +r);
                                                break e
                                            }
                                        case 3:
                                            {
                                                nt(e | 0, 1, +r);
                                                break e
                                            }
                                        case 4:
                                            {
                                                nt(e | 0, 2, +r);
                                                break e
                                            }
                                        case 8:
                                            {
                                                nt(e | 0, 3, +r);
                                                break e
                                            }
                                        case 7:
                                            {
                                                nt(e | 0, 4, +r);
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                case 15:
                                    {
                                        st(e | 0, ~~r | 0);
                                        break
                                    }
                                default:
                                    {}
                            }
                        } while (0);
                        return
                    }

                    function ry(e) {
                        e = e | 0;
                        Ve(e | 0);
                        return
                    }

                    function ny(e, t) {
                        e = e | 0;
                        t = t | 0;
                        switch (t | 0) {
                            case 1:
                                {
                                    vt(e | 0);
                                    break
                                }
                            case 2:
                                {
                                    pt(e | 0);
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function ay(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        ot(e | 0, t | 0, +r);
                        return
                    }

                    function sy(e) {
                        e = e | 0;
                        Xe(e | 0);
                        return
                    }

                    function oy(e) {
                        e = e | 0;
                        return 0
                    }

                    function uy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return
                    }

                    function hy(e) {
                        e = e | 0;
                        return 0
                    }

                    function ly(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return
                    }

                    function fy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        return
                    }

                    function cy(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return
                    }

                    function dy(e) {
                        e = e | 0;
                        return 1
                    }

                    function py(e) {
                        e = e | 0;
                        return 0
                    }

                    function vy(e) {
                        e = e | 0;
                        do {
                            if (!(my() | 0)) {
                                if (e | 0 ? a[e + 88 >> 2] | 0 : 0) {
                                    if (!(_S() | 0)) {
                                        sE();
                                        break
                                    }
                                    if (!(rj() | 0)) {
                                        sE();
                                        break
                                    }
                                }
                                _y(2);
                                if (!(by(e) | 0)) _y(0)
                            } else sE()
                        } while (0);
                        return
                    }

                    function my() {
                        return a[2557] | 0
                    }

                    function _y(e) {
                        e = e | 0;
                        a[2557] = e;
                        return
                    }

                    function by(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0.0,
                            _ = 0;
                        v = p;
                        p = p + 224 | 0;
                        d = v + 112 | 0;
                        n = v + 88 | 0;
                        o = v + 64 | 0;
                        u = v + 40 | 0;
                        l = v + 24 | 0;
                        c = v + 16 | 0;
                        f = v;
                        a[2423] = 3351;
                        do {
                            if (e) {
                                t = r[e + 32 >> 0] | 0;
                                if ((t & 255) > 55) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    gy(t);
                                    i = 6;
                                    break
                                }
                            } else {
                                gy(8);
                                i = 6
                            }
                        } while (0);
                        do {
                            if ((i | 0) == 6) {
                                e = yg(e, d) | 0;
                                if ((e | 0) >= 0) {
                                    if ((a[d + 100 >> 2] | 0) != 35652096) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                    e = oi(e) | 0;
                                    a[2111] = e;
                                    if (!e) {
                                        sE();
                                        e = a[2111] | 0;
                                        if (!e) {
                                            e = 0;
                                            break
                                        }
                                        si(e);
                                        a[2111] = 0;
                                        e = 0;
                                        break
                                    }
                                    m = +h[d + 4 >> 2];
                                    h[591] = m > 1.0 ? m : 1.0;
                                    a[1680] = YE(10818) | 0;
                                    pg(a[d + 80 >> 2] | 0);
                                    t = Eg(a[d + 20 >> 2] | 0) | 0;
                                    yy(e, t);
                                    t = t + e | 0;
                                    wg(d, n, o);
                                    n = xg(o) | 0;
                                    Ay(o, t);
                                    n = n + t | 0;
                                    t = a[d + 60 >> 2] | 0;
                                    fg(t, n);
                                    t = n + 8 + (t * 180 | 0) | 0;
                                    n = d + 36 | 0;
                                    e = a[n >> 2] | 0;
                                    if ((e | 0) > 16) {
                                        sE();
                                        e = 16
                                    }
                                    a[93] = e;
                                    aE(u, 20);
                                    o = d + 16 | 0;
                                    i = a[o >> 2] | 0;
                                    e = i + (a[d + 40 >> 2] | 0) | 0;
                                    a[u >> 2] = e;
                                    a[u + 4 >> 2] = (a[d + 44 >> 2] | 0) + i;
                                    a[u + 8 >> 2] = (a[d + 48 >> 2] | 0) + i;
                                    a[u + 12 >> 2] = a[n >> 2];
                                    i = d + 32 | 0;
                                    r[u + 16 >> 0] = r[i >> 0] | 0;
                                    _ = kg(u) | 0;
                                    wy(u, t);
                                    u = _ + t | 0;
                                    a[l >> 2] = 64;
                                    a[l + 4 >> 2] = a[o >> 2];
                                    a[l + 8 >> 2] = a[n >> 2];
                                    r[l + 12 >> 0] = r[i >> 0] | 0;
                                    t = yv(l) | 0;
                                    Av(l, u, t);
                                    l = t + u | 0;
                                    kv(e, l);
                                    l = l + 8 + (e * 172 | 0) | 0;
                                    u = a[n >> 2] | 0;
                                    a[f + 4 >> 2] = u;
                                    t = s[i >> 0] | 0;
                                    a[f + 8 >> 2] = t;
                                    i = a[o >> 2] | 0;
                                    a[f >> 2] = i;
                                    i = G((u << 2) + 548 + t + ((t * 6 | 0) + u << 1) | 0, i) | 0;
                                    xy(f, l);
                                    i = l + 16 + i | 0;
                                    f = a[o >> 2] | 0;
                                    ab(f, i);
                                    i = (f * 176 | 0) + 24 + i | 0;
                                    sV();
                                    ky();
                                    zV();
                                    Ty();
                                    a[123] = 1;
                                    f = a[d + 8 >> 2] | 0;
                                    a[122] = (f | 0) > 1 ? f : 1;
                                    switch (a[d >> 2] | 0) {
                                        case 0:
                                            {
                                                e = 1;t = 0;
                                                break
                                            }
                                        case 3:
                                            {
                                                e = 0;t = 0;
                                                break
                                            }
                                        default:
                                            {
                                                e = 1;t = 2
                                            }
                                    }
                                    a[c >> 2] = t;
                                    a[c + 4 >> 2] = e;
                                    fP(c);
                                    if (!(MP() | 0)) CP(+h[591]);
                                    PP(7, 3);
                                    Ey(3e6, 0);
                                    switch (a[d + 64 >> 2] | 0) {
                                        case 0:
                                            {
                                                Sy(0);
                                                break
                                            }
                                        case 1:
                                            {
                                                Sy(1);
                                                break
                                            }
                                        default:
                                            {
                                                sE();Sy(0)
                                            }
                                    }
                                    Py(a[d + 68 >> 2] | 0);
                                    xv(a[d + 72 >> 2] | 0);
                                    _ = d + 76 | 0;
                                    m = +h[_ >> 2];
                                    m = m > 3.0 ? 3.0 : m;
                                    m = m < 1.100000023841858 ? 1.100000023841858 : m;
                                    h[_ >> 2] = m;
                                    Iy(m);
                                    a[1678] = 1;
                                    if (!(a[1680] | 0)) {
                                        Xj();
                                        e = 0;
                                        break
                                    }
                                    e = Tg() | 0;
                                    _ = My(i, e) | 0;
                                    a[1727] = _;
                                    if (!_) {
                                        sE();
                                        Xj();
                                        e = 0;
                                        break
                                    }
                                    _ = My(e + i | 0, e) | 0;
                                    a[1728] = _;
                                    if (!_) {
                                        sE();
                                        Xj();
                                        e = 0;
                                        break
                                    }
                                    Cy(a[1727] | 0, 0);
                                    Cy(a[1728] | 0, 0);
                                    _ = a[d + 28 >> 2] | 0;
                                    a[2687] = _;
                                    a[2688] = a[n >> 2];
                                    a[2689] = _;
                                    if ((rj() | 0) != 0 ? (a[d + 88 >> 2] | 0) != 0 : 0) {
                                        if (!(KX(Oy() | 0, 0, 0) | 0)) {
                                            Xj();
                                            e = 0;
                                            break
                                        }
                                        if (!(Z_() | 0)) {
                                            Xj();
                                            e = 0
                                        } else e = 1
                                    } else e = 1
                                } else e = 0
                            }
                        } while (0);
                        p = v;
                        return e | 0
                    }

                    function gy(e) {
                        e = e | 0;
                        r[3857] = e;
                        return
                    }

                    function yy(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[1735] = 6936;
                        a[1734] = 6936;
                        lw();
                        fw();
                        cw(e, t);
                        return
                    }

                    function Ay(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0;
                        o = p;
                        p = p + 16 | 0;
                        i = o;
                        a[2426] = 3653;
                        u = xg(e) | 0;
                        r = a[e >> 2] | 0;
                        n = r + 1 | 0;
                        s = a[e + 4 >> 2] | 0;
                        aE(t, u);
                        if (!(Dy() | 0)) {
                            l = e + 12 | 0;
                            u = Sg(a[l >> 2] | 0) | 0;
                            Fy(a[l >> 2] | 0, t, u);
                            a[2144] = 1;
                            t = u + t | 0
                        } else NE();
                        dg();
                        u = t + 7 & -8;
                        l = (r * 88 | 0) + 8 | 0;
                        By(r, u, l);
                        l = u + l | 0;
                        u = n * 112 | 8;
                        Ny(n, l, u);
                        n = l + u | 0;
                        u = (r * 28 | 0) + 8 | 0;
                        Ly(r, n, u);
                        a[i >> 2] = r;
                        a[i + 4 >> 2] = s;
                        l = a[e + 20 >> 2] | 0;
                        a[i + 8 >> 2] = l;
                        Uy(i, n + u | 0, (r * 588 | 0) + 456 + (s << 3) + l + (l * 12 | 0) | 0);
                        Vy();
                        a[2106] = 1;
                        Xy(+h[e + 8 >> 2]);
                        p = o;
                        return
                    }

                    function wy(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0.0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        _ = p;
                        p = p + 16 | 0;
                        d = _;
                        v = +Ry();
                        a[2424] = 3546;
                        i = kg(e) | 0;
                        if ((i | 0) >= 1) {
                            m = e + 16 | 0;
                            f = s[m >> 0] | 0;
                            f = f + 376 + (a[e + 12 >> 2] << 2) + (f * 12 | 0) | 0;
                            a[1827] = a[e >> 2];
                            a[1828] = a[e + 4 >> 2];
                            a[1829] = a[e + 8 >> 2];
                            a[1830] = a[e + 12 >> 2];
                            a[1831] = a[e + 16 >> 2];
                            a[1832] = f;
                            aE(t, i);
                            FS(t, i, d);
                            c = BS(d, 176, 8) | 0;
                            a[c >> 2] = a[e >> 2];
                            a[c + 4 >> 2] = a[e + 4 >> 2];
                            a[c + 8 >> 2] = a[e + 8 >> 2];
                            a[c + 12 >> 2] = a[e + 12 >> 2];
                            a[c + 16 >> 2] = a[e + 16 >> 2];
                            i = BS(d, (a[e >> 2] | 0) * 48 | 0, 8) | 0;
                            o = c + 20 | 0;
                            t = 0;
                            while (1) {
                                u = a[e >> 2] | 0;
                                if (t >>> 0 >= u >>> 0) break;
                                h = i + (t * 48 | 0) | 0;
                                zE(h);
                                a[h >> 2] = h;
                                n[i + (t * 48 | 0) + 38 >> 1] = -1;
                                tS(o, h);
                                t = t + 1 | 0
                            }
                            i = BS(d, u * 56 | 0, 8) | 0;
                            a[c + 32 >> 2] = i;
                            o = c + 36 | 0;
                            t = 0;
                            while (1) {
                                u = a[e >> 2] | 0;
                                if (t >>> 0 >= u >>> 0) break;
                                u = i + (t * 56 | 0) | 0;
                                a[i + (t * 56 | 0) + 44 >> 2] = t;
                                h = i + (t * 56 | 0) + 4 | 0;
                                zE(h);
                                a[h >> 2] = u;
                                a[u >> 2] = 1;
                                tS(o, h);
                                t = t + 1 | 0
                            }
                            i = BS(d, u * 200 | 0, 8) | 0;
                            a[c + 48 >> 2] = i;
                            o = c + 52 | 0;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (a[e >> 2] | 0) >>> 0) break;
                                u = i + (t * 200 | 0) | 0;
                                a[i + (t * 200 | 0) + 60 >> 2] = t;
                                n[i + (t * 200 | 0) + 172 >> 1] = -1;
                                h = i + (t * 200 | 0) + 80 | 0;
                                zE(h);
                                a[h >> 2] = u;
                                a[i + (t * 200 | 0) + 88 >> 2] = BS(d, f, 1) | 0;
                                a[i + (t * 200 | 0) + 92 >> 2] = 0;
                                a[i + (t * 200 | 0) + 112 >> 2] = BS(d, (s[m >> 0] | 0) << 4, 1) | 0;
                                ip(u);
                                tS(o, h);
                                t = t + 1 | 0
                            }
                            h = e + 4 | 0;
                            i = BS(d, a[h >> 2] << 7, 8) | 0;
                            o = c + 64 | 0;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (a[h >> 2] | 0) >>> 0) break;
                                b = i + (t << 7) | 0;
                                n[i + (t << 7) + 92 >> 1] = t;
                                u = i + (t << 7) + 60 | 0;
                                zE(u);
                                a[u >> 2] = b;
                                JE(i + (t << 7) + 48 | 0);
                                a[i + (t << 7) + 4 >> 2] = BS(d, f, 1) | 0;
                                a[i + (t << 7) + 8 >> 2] = 0;
                                a[b >> 2] = BS(d, (s[m >> 0] | 0) << 4, 1) | 0;
                                qd(b);
                                tS(o, u);
                                t = t + 1 | 0
                            }
                            i = e + 8 | 0;
                            o = BS(d, a[i >> 2] << 6, 8) | 0;
                            u = c + 100 | 0;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (a[i >> 2] | 0) >>> 0) break;
                                b = o + (t << 6) | 0;
                                zE(b);
                                a[b >> 2] = b;
                                tS(u, b);
                                t = t + 1 | 0
                            }
                            i = BS(d, (a[e >> 2] | 0) * 40 | 0, 8) | 0;
                            o = c + 76 | 0;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (a[e >> 2] | 0) >>> 0) break;
                                b = i + (t * 40 | 0) | 0;
                                n[i + (t * 40 | 0) + 32 >> 1] = t;
                                zE(b);
                                a[b >> 2] = b;
                                tS(o, b);
                                t = t + 1 | 0
                            }
                            i = BS(d, (a[h >> 2] | 0) * 36 | 0, 8) | 0;
                            o = c + 112 | 0;
                            t = 0;
                            while (1) {
                                if (t >>> 0 >= (a[h >> 2] | 0) >>> 0) break;
                                b = i + (t * 36 | 0) | 0;
                                n[i + (t * 36 | 0) + 8 >> 1] = t;
                                zE(b);
                                a[b >> 2] = b;
                                tS(o, b);
                                t = t + 1 | 0
                            }
                            b = s[m >> 0] | 0;
                            b = b + 440 + (b * 12 | 0) | 0;
                            d = BS(d, b, 8) | 0;
                            a[2425] = d;
                            a[2065] = cf(r[m >> 0] | 0, 16, 26, d, b) | 0;
                            m = Wo() | 0;
                            b = c + 152 | 0;
                            a[b >> 2] = m;
                            a[b + 4 >> 2] = P;
                            l[c + 160 >> 3] = 1.0e6 / v;
                            a[c + 168 >> 2] = 1;
                            a[1698] = c
                        }
                        p = _;
                        return
                    }

                    function xy(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        i = u;
                        if (!e) {
                            a[i >> 2] = 16;
                            a[i + 4 >> 2] = 16;
                            a[i + 8 >> 2] = 8;
                            r = 16;
                            n = 16;
                            e = 8
                        } else {
                            i = e;
                            r = a[e >> 2] | 0;
                            n = a[e + 4 >> 2] | 0;
                            e = a[e + 8 >> 2] | 0
                        }
                        aE(t, (G(e + 548 + (n << 2) + ((e * 6 | 0) + n << 1) | 0, r) | 0) + 16 | 0);
                        r = t + 7 & -8;
                        JE(7356);
                        n = a[i >> 2] | 0;
                        a[1633] = n;
                        t = r;
                        a[1634] = t;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (n | 0)) break;
                            zE(t + (e * 164 | 0) + 24 | 0);
                            o = a[1634] | 0;
                            n = o + (e * 164 | 0) | 0;
                            a[o + (e * 164 | 0) + 24 >> 2] = n;
                            tS(7356, o + (e * 164 | 0) + 24 | 0);
                            a[o + (e * 164 | 0) + 100 >> 2] = n;
                            e = e + 1 | 0;
                            n = a[1633] | 0;
                            t = o
                        }
                        n = (n * 164 | 0) + r | 0;
                        JE(7500);
                        t = a[i >> 2] | 0;
                        a[2416] = t;
                        r = n;
                        a[2417] = r;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (t | 0)) break;
                            o = r + (e << 3) | 0;
                            zE(o);
                            tS(7500, o);
                            e = e + 1 | 0
                        }
                        r = i + 4 | 0;
                        s = a[1633] | 0;
                        o = a[1634] | 0;
                        e = n + 7 + (t << 3) & -8;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (s | 0)) break;
                            a[o + (i * 164 | 0) + 20 >> 2] = e;
                            e = (a[r >> 2] << 1) + e | 0;
                            i = i + 1 | 0
                        }
                        i = (ff() | 0) & 255;
                        r = i + 376 + ((a[r >> 2] | 0) + i + (i << 1) << 2) | 0;
                        i = e + 7 & -8;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (s | 0)) break;
                            a[o + (e * 164 | 0) + 64 >> 2] = i;
                            i = r + i | 0;
                            e = e + 1 | 0
                        }
                        p = u;
                        return
                    }

                    function ky() {
                        var e = 0;
                        e = a[2418] | 0;
                        a[2418] = e + 1;
                        if (!e) {
                            aS(7476);
                            aS(7464);
                            a[1858] = 7476;
                            a[1859] = 7464
                        }
                        return
                    }

                    function Ty() {
                        var e = 0;
                        e = a[2419] | 0;
                        a[2419] = e + 1;
                        if (!e) JE(9680);
                        return
                    }

                    function Ey(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = 16;
                        a[i >> 2] = e;
                        a[i + 4 >> 2] = t;
                        return
                    }

                    function Sy(e) {
                        e = e | 0;
                        a[1881] = e;
                        return
                    }

                    function Py(e) {
                        e = e | 0;
                        a[1927] = e;
                        return
                    }

                    function Iy(e) {
                        e = +e;
                        h[94] = e;
                        return
                    }

                    function My(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1723] | 0;
                        if (!i) {
                            sE();
                            i = a[1723] | 0
                        }
                        return e$[i & 31](e, t) | 0
                    }

                    function Cy(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[1726] | 0;
                        if (!i) {
                            sE();
                            i = a[1726] | 0
                        }
                        u$[i & 63](e, t);
                        return
                    }

                    function Oy() {
                        return ((a[2112] | 0) == 1 ? 8452 : 0) | 0
                    }

                    function Ry() {
                        return + +h[591]
                    }

                    function Dy() {
                        return a[2145] | 0
                    }

                    function Fy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0;
                        l = p;
                        p = p + 64 | 0;
                        r = l + 32 | 0;
                        n = l + 24 | 0;
                        o = l + 16 | 0;
                        u = l;
                        a[2428] = 3448;
                        e: do {
                            if (!(IP() | 0)) {
                                if (e) {
                                    if ((a[e + 16 >> 2] | 0) != 35685889) {
                                        sE();
                                        break
                                    }
                                    if (+h[e + 4 >> 2] < 14.0) {
                                        sE();
                                        break
                                    }
                                } else {
                                    a[r >> 2] = 0;
                                    h[r + 4 >> 2] = 60.0;
                                    a[r + 8 >> 2] = 0;
                                    a[r + 12 >> 2] = 0;
                                    a[r + 16 >> 2] = 35685889;
                                    a[r + 20 >> 2] = 16;
                                    e = r
                                }
                                s = e + 4 | 0;
                                a[1635] = 1;
                                Gy();
                                if (xI() | 0)
                                    if (!(a[e + 8 >> 2] | 0)) r = t;
                                    else {
                                        NE();
                                        r = t
                                    }
                                else {
                                    gI(n);
                                    n = a[n >> 2] | 0;
                                    do {
                                        if ((t | 0) == 0 & (i | 0) == 0) {
                                            i = oi(n) | 0;
                                            if (!i) {
                                                sE();
                                                aG();
                                                break e
                                            } else {
                                                a[2150] = i;
                                                r = 0;
                                                i = 0;
                                                break
                                            }
                                        } else if ((n | 0) > (i | 0)) {
                                            sE();
                                            aG();
                                            break e
                                        } else {
                                            r = n + t | 0;
                                            i = i - n | 0;
                                            break
                                        }
                                    } while (0);
                                    yI();
                                    a[2149] = 1
                                }
                                a[592] = a[s >> 2];
                                t = Pg(e) | 0;
                                if ((t | 0) < 0) {
                                    aG();
                                    break
                                }
                                if (!((i | 0) == 0 & (r | 0) == 0)) {
                                    if ((i | 0) < (t | 0)) {
                                        sE();
                                        aG();
                                        break
                                    }
                                } else {
                                    r = oi(t) | 0;
                                    a[2148] = r
                                }
                                if (!r) {
                                    sE();
                                    aG();
                                    break
                                }
                                aE(r, t);
                                aE(o, 8);
                                switch (a[e >> 2] | 0) {
                                    case 0:
                                        {
                                            i = 1;n = 0;
                                            break
                                        }
                                    case 3:
                                        {
                                            i = 0;n = 0;
                                            break
                                        }
                                    default:
                                        {
                                            i = 1;n = 2
                                        }
                                }
                                a[o >> 2] = n;
                                a[o + 4 >> 2] = i;
                                fP(o);
                                a[2147] = 1;
                                if (!(MP() | 0)) CP(+h[592]);
                                aE(u, 16);
                                a[u >> 2] = 32768;
                                a[u + 4 >> 2] = a[s >> 2];
                                a[u + 8 >> 2] = a[e + 20 >> 2];
                                a[u + 12 >> 2] = a[e + 12 >> 2];
                                i = Ig(u) | 0;
                                if ((i | 0) < 0) {
                                    aG();
                                    break
                                }
                                $y(u, r, i);
                                a[2146] = 1;
                                if (i >>> 0 > t >>> 0) {
                                    sE();
                                    aG();
                                    break
                                } else {
                                    a[2145] = 1;
                                    break
                                }
                            } else sE()
                        } while (0);
                        p = l;
                        return
                    }

                    function By(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        aE(t, i);
                        a[1860] = YE(10826) | 0;
                        JE(7444);
                        a[1671] = e;
                        i = t + 7 & -8;
                        a[1672] = i;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (e | 0)) break;
                            r = i + (t * 88 | 0) | 0;
                            zE(r);
                            n = i + (t * 88 | 0) | 0;
                            a[n >> 2] = n;
                            tS(7444, r);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function Ny(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        aE(t, i);
                        JE(6764);
                        a[1664] = e;
                        i = t + 7 & -8;
                        a[1665] = i;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (e | 0)) break;
                            r = i + (t * 112 | 0) | 0;
                            zE(r);
                            n = i + (t * 112 | 0) | 0;
                            a[n >> 2] = n;
                            tS(6764, r);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function Ly(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        if (!(a[2413] | 0)) {
                            aE(t, i);
                            JE(6776);
                            a[1666] = e;
                            i = t + 7 & -8;
                            a[1667] = i;
                            t = 0;
                            while (1) {
                                if ((t | 0) >= (e | 0)) break;
                                r = i + (t * 28 | 0) | 0;
                                zE(r);
                                n = i + (t * 28 | 0) | 0;
                                a[n >> 2] = n;
                                tS(6776, r);
                                t = t + 1 | 0
                            }
                            a[2413] = 1
                        } else sE();
                        return
                    }

                    function Uy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        aE(t, i);
                        i = t + 7 & -8;
                        r = a[e >> 2] | 0;
                        a[1674] = r;
                        a[1675] = 0;
                        n = i;
                        a[1673] = n;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (r | 0)) break;
                            a[n + (t * 588 | 0) >> 2] = -1;
                            t = t + 1 | 0
                        }
                        n = (r * 588 | 0) + i | 0;
                        i = a[e + 4 >> 2] | 0;
                        a[1878] = i;
                        a[1879] = n;
                        jy();
                        r = ff() | 0;
                        e = r & 255;
                        n = (i << 3) + n | 0;
                        a[2427] = n;
                        a[1880] = cf(r, 16, 27, n, e + 440 + (e * 12 | 0) | 0) | 0;
                        return
                    }

                    function Vy() {
                        var e = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            aS(6672 + (e * 12 | 0) | 0);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function Xy(e) {
                        e = +e;
                        if (e < 0.0) sE();
                        else h[1929] = +lI(e / 1200.0);
                        return
                    }

                    function jy() {
                        var e = 0;
                        e = a[2414] | 0;
                        a[2414] = e + 1;
                        if (!e) JE(6644);
                        return
                    }

                    function Gy() {
                        var e = 0;
                        e = a[2151] | 0;
                        a[2151] = e + 1;
                        if (!e) a[1645] = YE(10834) | 0;
                        return
                    }

                    function $y(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = Ig(e) | 0;
                        do {
                            if ((r | 0) >= 0) {
                                a[2152] = 1;
                                if ((t | 0) == 0 | (r | 0) > (i | 0)) {
                                    sE();
                                    sG();
                                    break
                                }
                                aE(t, r);
                                n = a[e + 8 >> 2] | 0;
                                i = (n << 2) + 20 | 0;
                                a[1658] = kS(n, t, i) | 0;
                                Hy(e, i + t | 0, r - i | 0);
                                a[1660] = ~~+h[e + 4 >> 2];
                                if (!(a[1658] | 0)) sG()
                            }
                        } while (0);
                        return
                    }

                    function Hy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        r = p;
                        p = p + 16 | 0;
                        s = r;
                        a[s >> 2] = a[e + 4 >> 2];
                        n = e + 8 | 0;
                        a[s + 4 >> 2] = a[n >> 2];
                        a[s + 8 >> 2] = a[e + 12 >> 2];
                        Wy();
                        e = a[n >> 2] | 0;
                        n = (e << 2) + 20 | 0;
                        KU(e, t, n);
                        e = n + t | 0;
                        t = Mg(s) | 0;
                        Yy(s, e, i - n | 0);
                        zy();
                        qy(e + t | 0);
                        p = r;
                        return
                    }

                    function Wy() {
                        GA();
                        return
                    }

                    function Yy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        a[2411] = 1;
                        o = (a[e + 4 >> 2] | 0) + 4 | 0;
                        n = (o << 2) + 20 | 0;
                        o = kS(o, t, i) | 0;
                        a[1647] = o;
                        if (!o) cG();
                        else {
                            a[r >> 2] = a[e >> 2];
                            a[r + 4 >> 2] = a[e + 8 >> 2];
                            bG(1, 2220);
                            Jy(1, r, n + t | 0, i - n | 0);
                            a[2410] = 1
                        }
                        p = s;
                        return
                    }

                    function zy() {
                        var e = 0;
                        a[2153] = (a[2153] | 0) + 1;
                        e: do {
                            if ((a[2153] | 0) == 1) {
                                e = 0;
                                while (1) {
                                    if ((e | 0) == 256) break e;
                                    a[8616 + (e << 2) >> 2] = 0;
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function qy(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        i = t + 8 | 0;
                        bG(9, 2372);
                        h[i >> 2] = 60.0;
                        a[i + 4 >> 2] = t;
                        Jy(9, i, e, Og(9, i) | 0);
                        p = t;
                        return
                    }

                    function Jy(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (gG(e) | 0) t$[a[(a[6592 + (e << 2) >> 2] | 0) + 4 >> 2] & 7](t, i, r) | 0;
                        return
                    }

                    function Qy(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return 1
                    }

                    function Zy() {
                        return
                    }

                    function Ky() {
                        return
                    }

                    function eA() {
                        return
                    }

                    function tA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 32 | 0;
                        i = t;
                        a[i >> 2] = a[e >> 2];
                        a[i + 4 >> 2] = a[e + 4 >> 2];
                        a[i + 8 >> 2] = a[e + 8 >> 2];
                        a[i + 12 >> 2] = a[e + 12 >> 2];
                        a[i + 16 >> 2] = a[e + 16 >> 2];
                        a[i + 20 >> 2] = a[e + 20 >> 2];
                        a[i + 24 >> 2] = a[e + 24 >> 2];
                        a[i + 12 >> 2] = 131074;
                        e = VA(a[e + 16 >> 2] | 0, i) | 0;
                        p = t;
                        return ((e | 0) < 0 ? -1 : e + 92 | 0) | 0
                    }

                    function iA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        n = p;
                        p = p + 32 | 0;
                        s = n;
                        aE(t, i);
                        i = t + 7 & -8;
                        t = i;
                        a[s >> 2] = a[e >> 2];
                        a[s + 4 >> 2] = a[e + 4 >> 2];
                        a[s + 8 >> 2] = a[e + 8 >> 2];
                        a[s + 12 >> 2] = a[e + 12 >> 2];
                        a[s + 16 >> 2] = a[e + 16 >> 2];
                        a[s + 20 >> 2] = a[e + 20 >> 2];
                        a[s + 24 >> 2] = a[e + 24 >> 2];
                        a[s + 12 >> 2] = 131074;
                        o = e + 16 | 0;
                        e = VA(a[o >> 2] | 0, s) | 0;
                        e = XA(a[o >> 2] | 0, s, t + 84 | 0, e) | 0;
                        a[i + 80 >> 2] = e;
                        if (!e) rA(t);
                        a[i + 20 >> 2] = HS(i + 24 | 0) | 0;
                        o = i + 4 | 0;
                        a[o >> 2] = 0;
                        a[o + 4 >> 2] = 0;
                        a[o + 8 >> 2] = 0;
                        a[o + 12 >> 2] = 0;
                        r[i >> 0] = 1;
                        p = n;
                        return t | 0
                    }

                    function rA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 80 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            s$[a[(a[i >> 2] | 0) + 40 >> 2] & 63](a[i + 4 >> 2] | 0);
                            i = a[t >> 2] | 0;
                            s$[a[(a[i >> 2] | 0) + 28 >> 2] & 63](a[i + 4 >> 2] | 0)
                        }
                        r[e >> 0] = 0;
                        return
                    }

                    function nA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        a[e + 16 >> 2] = r;
                        n = a[e + 20 >> 2] | 0;
                        if ((a[r >> 2] | 0) != (n | 0)) UA(r, n);
                        n = a[e + 80 >> 2] | 0;
                        return i$[a[(a[n >> 2] | 0) + 32 >> 2] & 7](a[n + 4 >> 2] | 0, t, i, 0) | 0
                    }

                    function aA(e) {
                        e = e | 0;
                        NA(a[e + 16 >> 2] | 0, 1);
                        a[e + 4 >> 2] = 1;
                        a[e + 12 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        e = a[e + 80 >> 2] | 0;
                        s$[a[(a[e >> 2] | 0) + 36 >> 2] & 63](a[e + 4 >> 2] | 0);
                        return
                    }

                    function sA(e) {
                        e = e | 0;
                        a[e + 12 >> 2] = 1;
                        BA(e);
                        return
                    }

                    function oA(e) {
                        e = e | 0;
                        return
                    }

                    function uA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        if (!(a[e + 8 >> 2] | 0)) FA(a[e + 16 >> 2] | 0);
                        t = e + 20 | 0;
                        i = e + 80 | 0;
                        while (1) {
                            r = JS(a[t >> 2] | 0, 1) | 0;
                            if (!r) break;
                            n = a[i >> 2] | 0;
                            e$[a[(a[n >> 2] | 0) + 56 >> 2] & 31](a[n + 4 >> 2] | 0, r) | 0
                        }
                        if (a[e + 12 >> 2] | 0) BA(e);
                        return 1
                    }

                    function hA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t);
                        return 0
                    }

                    function lA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        YS(a[t + 4 >> 2] | 0, s[t + 8 >> 0] | 0, t);
                        return 0
                    }

                    function fA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 8 >> 2] = t;
                        e = a[e + 80 >> 2] | 0;
                        u$[a[(a[e >> 2] | 0) + 60 >> 2] & 63](a[e + 4 >> 2] | 0, t);
                        return
                    }

                    function cA(e) {
                        e = e | 0;
                        return (a[e + 4 >> 2] | 0) == 1 | 0
                    }

                    function dA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = a[e + 80 >> 2] | 0;
                        l$[a[(a[e >> 2] | 0) + 68 >> 2] & 7](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function pA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 80 >> 2] | 0;
                        e$[a[(a[e >> 2] | 0) + 72 >> 2] & 31](a[e + 4 >> 2] | 0, t) | 0;
                        return 1
                    }

                    function vA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = a[e + 80 >> 2] | 0;
                        c$[a[(a[e >> 2] | 0) + 76 >> 2] & 3](a[e + 4 >> 2] | 0, t, i, r);
                        return
                    }

                    function mA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        e = a[e + 80 >> 2] | 0;
                        h$[a[(a[e >> 2] | 0) + 80 >> 2] & 15](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function _A(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        e = a[e + 80 >> 2] | 0;
                        h$[a[(a[e >> 2] | 0) + 84 >> 2] & 15](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function bA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = a[e + 80 >> 2] | 0;
                        l$[a[(a[e >> 2] | 0) + 88 >> 2] & 7](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function gA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        if ((t | 0) == 34) {
                            e = a[e + 16 >> 2] | 0;
                            if (e | 0) DA(a[e + 4 >> 2] | 0, a[(a[e + 12 >> 2] | 0) + 28 >> 2] | 0, i, r)
                        } else {
                            e = a[e + 80 >> 2] | 0;
                            f$[a[(a[e >> 2] | 0) + 92 >> 2] & 7](a[e + 4 >> 2] | 0, t, i, r)
                        }
                        return
                    }

                    function yA(e) {
                        e = e | 0;
                        e = a[e + 80 >> 2] | 0;
                        s$[a[(a[e >> 2] | 0) + 96 >> 2] & 63](a[e + 4 >> 2] | 0);
                        return
                    }

                    function AA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((t | 0) == 34) {
                            e = a[e + 16 >> 2] | 0;
                            if (e | 0) RA(a[e + 4 >> 2] | 0, a[(a[e + 12 >> 2] | 0) + 36 >> 2] | 0)
                        } else {
                            e = a[e + 80 >> 2] | 0;
                            u$[a[(a[e >> 2] | 0) + 100 >> 2] & 63](a[e + 4 >> 2] | 0, t)
                        }
                        return
                    }

                    function wA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        e = a[e + 80 >> 2] | 0;
                        f$[a[(a[e >> 2] | 0) + 104 >> 2] & 7](a[e + 4 >> 2] | 0, t, i, r);
                        return
                    }

                    function xA(e) {
                        e = e | 0;
                        e = a[e + 80 >> 2] | 0;
                        s$[a[(a[e >> 2] | 0) + 108 >> 2] & 63](a[e + 4 >> 2] | 0);
                        return
                    }

                    function kA(e) {
                        e = e | 0;
                        e = a[e + 80 >> 2] | 0;
                        return KG[a[(a[e >> 2] | 0) + 112 >> 2] & 63](a[e + 4 >> 2] | 0) | 0
                    }

                    function TA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        e = a[e + 80 >> 2] | 0;
                        h$[a[(a[e >> 2] | 0) + 116 >> 2] & 15](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function EA(e) {
                        e = e | 0;
                        return a[e + 80 >> 2] | 0
                    }

                    function SA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 80 >> 2] | 0;
                        u$[a[(a[e >> 2] | 0) + 124 >> 2] & 63](a[e + 4 >> 2] | 0, t);
                        return
                    }

                    function PA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        e = a[e + 80 >> 2] | 0;
                        h$[a[(a[e >> 2] | 0) + 128 >> 2] & 15](a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function IA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 80 >> 2] | 0;
                        u$[a[(a[e >> 2] | 0) + 132 >> 2] & 63](a[e + 4 >> 2] | 0, t);
                        return
                    }

                    function MA(e) {
                        e = e | 0;
                        e = a[e + 80 >> 2] | 0;
                        return KG[a[(a[e >> 2] | 0) + 136 >> 2] & 63](a[e + 4 >> 2] | 0) | 0
                    }

                    function CA(e) {
                        e = e | 0;
                        e = a[e + 16 >> 2] | 0;
                        if (!e) e = 0;
                        else e = OA(e) | 0;
                        return e | 0
                    }

                    function OA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        n = 0;
                        t = 0;
                        while (1) {
                            if ((n | 0) == 8) break;
                            i = a[e + 40 + (n << 2) >> 2] | 0;
                            if ((r[i + 11 >> 0] | 0) == 1) t = (a[i + 20 >> 2] | 0) + t | 0;
                            n = n + 1 | 0
                        }
                        return (t | 0) / 4 | 0 | 0
                    }

                    function RA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        s$[t & 63](e);
                        return
                    }

                    function DA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        h$[t & 15](e, i, r);
                        return
                    }

                    function FA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        n = o;
                        e: do {
                            if (r[e + 76 >> 0] | 0) {
                                t = a[e + 72 >> 2] | 0;
                                if ((t | 0) < 8) t = s[e + 77 + t >> 0] | 0;
                                else t = 8;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (t | 0)) break e;
                                    LA(e, n);
                                    if (!(a[n >> 2] | 0)) i = i + 1 | 0;
                                    else break
                                }
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function BA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 16 | 0;
                        if (!((a[e + 8 >> 2] | 0) == 0 ? (i = a[t >> 2] | 0, (pN(a[i + 4 >> 2] | 0, a[(a[i + 12 >> 2] | 0) + 44 >> 2] | 0) | 0) != 0) : 0)) {
                            t = a[t >> 2] | 0;
                            if (t | 0) NA(t, 0);
                            i = e + 80 | 0;
                            t = a[i >> 2] | 0;
                            s$[a[(a[t >> 2] | 0) + 40 >> 2] & 63](a[t + 4 >> 2] | 0);
                            i = a[i >> 2] | 0;
                            KG[a[(a[i >> 2] | 0) + 48 >> 2] & 63](a[i + 4 >> 2] | 0) | 0;
                            a[e + 4 >> 2] = 0
                        }
                        return
                    }

                    function NA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!t) s$[a[(a[e + 12 >> 2] | 0) + 16 >> 2] & 63](a[e + 4 >> 2] | 0);
                        r[e + 76 >> 0] = t;
                        return
                    }

                    function LA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        _ = p;
                        p = p + 16 | 0;
                        m = _;
                        i = JS(a[e >> 2] | 0, 2) | 0;
                        if (!i) {
                            i = JS(a[e >> 2] | 0, 0) | 0;
                            if (!i) i = 1;
                            else {
                                s = e + 36 | 0;
                                rP(i, a[s >> 2] << 2);
                                n = 5
                            }
                        } else {
                            s = e + 36 | 0;
                            n = 5
                        }
                        if ((n | 0) == 5) {
                            c = e + 12 | 0;
                            d = e + 4 | 0;
                            u$[a[(a[c >> 2] | 0) + 40 >> 2] & 63](a[d >> 2] | 0, m);
                            v = i + 20 | 0;
                            u = a[v >> 2] | 0;
                            f = u >>> 2;
                            l = a[s >> 2] | 0;
                            o = e + 20 | 0;
                            u = u & -4;
                            s = a[m >> 2] | 0;
                            while (1) {
                                if ((s | 0) >= (r[o >> 0] | 0)) break;
                                h = i + 24 + (s << 2) | 0;
                                n = 0;
                                while (1) {
                                    if ((f | 0) <= (n | 0)) break;
                                    b = f - n | 0;
                                    nE((a[h >> 2] | 0) + (n << 2) | 0, u, 9716, ((b | 0) < 128 ? b : 128) << 2);
                                    n = n + 128 | 0
                                }
                                s = s + 1 | 0
                            }
                            o = i + 24 | 0;
                            s = (l | 0) < (f | 0) ? l : f;
                            l$[a[(a[c >> 2] | 0) + 24 >> 2] & 7](a[d >> 2] | 0, o, s);
                            n = e + 88 | 0;
                            b = n;
                            b = aM(a[b >> 2] | 0, a[b + 4 >> 2] | 0, s | 0, ((s | 0) < 0) << 31 >> 31 | 0) | 0;
                            a[n >> 2] = b;
                            a[n + 4 >> 2] = P;
                            n = a[e + 96 >> 2] | 0;
                            if ((s | 0) > 0 & (n | 0) != 0) d$[n & 1](a[e + 100 >> 2] | 0, 1, a[m >> 2] | 0, s, o);
                            nP(i, s << 2);
                            rP(i, (a[i + 16 >> 2] | 0) - (a[v >> 2] | 0) | 0);
                            YS(a[e >> 2] | 0, 1, i);
                            i = e + 72 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + 1;
                            i = 0
                        }
                        a[t >> 2] = i;
                        p = _;
                        return
                    }

                    function UA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == 8) {
                                i = 0;
                                break
                            }
                            n = e + 40 + (i << 2) | 0;
                            a[(a[n >> 2] | 0) + 4 >> 2] = t;
                            r[(a[n >> 2] | 0) + 8 >> 0] = 0;
                            i = i + 1 | 0
                        }
                        while (1) {
                            if ((i | 0) == 8) break;
                            YS(t, 0, a[e + 40 + (i << 2) >> 2] | 0);
                            i = i + 1 | 0
                        }
                        a[e >> 2] = t;
                        return
                    }

                    function VA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 2) {
                            NE();
                            e = 1
                        }
                        e = a[6592 + ((jA(e, a[t + 12 >> 2] | 0) | 0) << 2) >> 2] | 0;
                        do {
                            if (e) {
                                e = KG[a[e + 20 >> 2] & 63](t) | 0;
                                if ((e | 0) < 0) {
                                    sE();
                                    e = -1;
                                    break
                                } else {
                                    e = e + 8 | 0;
                                    break
                                }
                            } else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function XA(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if ((e | 0) == 2) {
                            NE();
                            e = 1
                        }
                        e = a[6592 + ((jA(e, a[t + 12 >> 2] | 0) | 0) << 2) >> 2] | 0;
                        if (!e) {
                            sE();
                            return 0
                        } else {
                            a[i >> 2] = e;
                            r = t$[a[e + 24 >> 2] & 7](t, i + 8 | 0, r + -8 | 0) | 0;
                            a[i + 4 >> 2] = r;
                            return ((r | 0) == 0 ? 0 : i) | 0
                        }
                        return 0
                    }

                    function jA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        switch (t | 0) {
                            case 4:
                                {
                                    e = 3;
                                    break
                                }
                            case 12:
                                {
                                    e = 9;
                                    break
                                }
                            default:
                                {}
                        }
                        return e | 0
                    }

                    function GA() {
                        a[1659] = 2516;
                        return
                    }

                    function $A(e) {
                        e = e | 0;
                        return 160
                    }

                    function HA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        aE(t, i);
                        i = t + 64 | 0;
                        r = t + 148 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 3) break;
                            n = i + (e * 28 | 0) | 0;
                            WS(n) | 0;
                            a[r + (e << 2) >> 2] = n;
                            e = e + 1 | 0
                        }
                        return t | 0
                    }

                    function WA(e) {
                        e = e | 0;
                        YA(e);
                        return
                    }

                    function YA(e) {
                        e = e | 0;
                        var t = 0;
                        uw(e);
                        t = e + 4 | 0;
                        e = a[t >> 2] | 0;
                        e: do {
                            if (e | 0)
                                while (1) {
                                    e = JS(e, 1) | 0;
                                    if (!e) break e;
                                    YS(a[e + 4 >> 2] | 0, s[e + 8 >> 0] | 0, e);
                                    e = a[t >> 2] | 0
                                }
                        } while (0);
                        return
                    }

                    function zA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == 3) {
                                i = 0;
                                break
                            }
                            n = e + 148 + (i << 2) | 0;
                            a[(a[n >> 2] | 0) + 4 >> 2] = t;
                            r[(a[n >> 2] | 0) + 8 >> 0] = 0;
                            i = i + 1 | 0
                        }
                        while (1) {
                            if ((i | 0) == 3) break;
                            YS(t, 0, a[e + 148 + (i << 2) >> 2] | 0);
                            i = i + 1 | 0
                        }
                        a[e + 4 >> 2] = t;
                        return
                    }

                    function qA(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        t = o + 8 | 0;
                        i = o;
                        e: do {
                            switch (a[e >> 2] | 0) {
                                case 3:
                                    {
                                        if (!(ZS(a[e + 4 >> 2] | 0, 1) | 0)) {
                                            uw(e);
                                            a[e >> 2] = 4;
                                            t = 0
                                        } else t = 0;
                                        break
                                    }
                                case 1:
                                    {
                                        s = e + 44 | 0;LI(a[s >> 2] | 0, t) | 0;t = a[t >> 2] | 0;
                                        if ((t | 0) == 3) {
                                            a[e >> 2] = 5;
                                            t = 0;
                                            break e
                                        }
                                        n = e + 16 | 0;
                                        if (!((a[n >> 2] | 0) == 0 & (a[n + 4 >> 2] | 0) == 0)) {
                                            if ((t | 0) != 2) {
                                                t = 0;
                                                break e
                                            }
                                            hw(e, a[e + 48 >> 2] | 0, a[e + 24 >> 2] | 0);
                                            t = 0;
                                            break e
                                        }
                                        if (!(DI(a[s >> 2] | 0, i) | 0)) {
                                            t = a[i >> 2] | 0;
                                            i = a[i + 4 >> 2] | 0;
                                            r = GI(t) | 0;
                                            n = e + 48 | 0;
                                            a[n >> 2] = r;
                                            if (!r) {
                                                a[e >> 2] = 5;
                                                t = -1;
                                                break e
                                            }
                                            if (!(FI(a[s >> 2] | 0, 0, 0, t, i, r, t, i) | 0)) hw(e, a[n >> 2] | 0, t)
                                        }
                                        t = 0;
                                        break
                                    }
                                default:
                                    t = 0
                            }
                        } while (0);
                        p = o;
                        return t | 0
                    }

                    function JA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = e + 8 | 0;
                        a[e >> 2] = a[t >> 2];
                        a[e + 4 >> 2] = a[t + 4 >> 2];
                        a[e + 8 >> 2] = a[t + 8 >> 2];
                        a[e + 12 >> 2] = a[t + 12 >> 2];
                        a[e + 16 >> 2] = a[t + 16 >> 2];
                        a[e + 20 >> 2] = a[t + 20 >> 2];
                        a[e + 24 >> 2] = a[t + 24 >> 2];
                        a[e + 28 >> 2] = a[t + 28 >> 2];
                        return
                    }

                    function QA(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 56 >> 2] = t;
                        a[e + 60 >> 2] = i;
                        return
                    }

                    function ZA(e) {
                        e = e | 0;
                        return
                    }

                    function KA(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return
                    }

                    function ew(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        a[e >> 2] = 1;
                        t = e + 44 | 0;
                        if (!(a[t >> 2] | 0)) EI(t) | 0;
                        i = e + 16 | 0;
                        o = a[i >> 2] | 0;
                        i = a[i + 4 >> 2] | 0;
                        do {
                            if (!((o | 0) == 0 & (i | 0) == 0)) {
                                n = e + 24 | 0;
                                r = a[n >> 2] | 0;
                                n = a[n + 4 >> 2] | 0;
                                s = GI(r) | 0;
                                a[e + 48 >> 2] = s;
                                if (!s) {
                                    a[e >> 2] = 5;
                                    break
                                } else {
                                    BI(a[t >> 2] | 0, a[e + 12 >> 2] | 0, o, i, r, n, s, r, n) | 0;
                                    break
                                }
                            } else II(a[t >> 2] | 0, 0, a[e + 12 >> 2] | 0) | 0
                        } while (0);
                        return
                    }

                    function tw(e) {
                        e = e | 0;
                        uw(e);
                        a[e >> 2] = 0;
                        return
                    }

                    function iw(e) {
                        e = e | 0;
                        return a[e >> 2] | 0
                    }

                    function rw(e) {
                        e = e | 0;
                        return 0
                    }

                    function nw(e) {
                        e = e | 0;
                        return 0
                    }

                    function aw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return
                    }

                    function sw(e) {
                        e = e | 0;
                        return 0
                    }

                    function ow(e) {
                        e = e | 0;
                        return 0
                    }

                    function uw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 48 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            zI(i);
                            a[t >> 2] = 0
                        }
                        e = e + 44 | 0;
                        t = a[e >> 2] | 0;
                        if (t | 0) {
                            NI(t);
                            PI(a[e >> 2] | 0);
                            SI(a[e >> 2] | 0) | 0;
                            a[e >> 2] = 0
                        }
                        return
                    }

                    function hw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0;
                        n = e + 4 | 0;
                        s = JS(a[n >> 2] | 0, 0) | 0;
                        r[s + 10 >> 0] = 1;
                        a[s + 12 >> 2] = a[e + 32 >> 2];
                        iP(s, 0, t);
                        rP(s, i);
                        YS(a[n >> 2] | 0, 1, s);
                        i = JS(a[n >> 2] | 0, 0) | 0;
                        r[i + 10 >> 0] = 2;
                        a[i + 12 >> 2] = 2;
                        rP(i, 0);
                        YS(a[n >> 2] | 0, 1, i);
                        a[e >> 2] = 3;
                        return
                    }

                    function lw() {
                        h[2094] = 0.0;
                        h[2095] = 0.0;
                        h[2096] = 0.0;
                        a[2085] = 0;
                        a[2086] = 0;
                        a[2087] = 0;
                        a[2088] = 0;
                        a[2089] = 0;
                        h[2090] = 1.0;
                        h[2091] = 0.0;
                        h[2092] = 1.0;
                        h[2093] = 0.0;
                        h[2097] = 1.0;
                        a[2098] = 0;
                        a[2099] = 0;
                        a[2100] = 0;
                        a[2101] = 0;
                        a[2102] = 0;
                        h[2078] = 0.0;
                        h[2079] = 0.0;
                        h[2080] = 0.0;
                        a[2069] = 0;
                        a[2070] = 0;
                        a[2071] = 0;
                        a[2072] = 0;
                        a[2073] = 0;
                        h[2074] = 1.0;
                        h[2075] = 0.0;
                        h[2076] = 1.0;
                        h[2077] = 0.0;
                        h[2081] = 1.0;
                        h[2082] = 1.0;
                        a[2083] = 0;
                        a[2084] = 1;
                        h[1708] = 1.0;
                        h[1709] = 3.1415927410125732;
                        h[1710] = 3.1415927410125732;
                        a[1711] = 0;
                        a[1712] = 0;
                        a[1713] = 0;
                        a[1714] = 0;
                        a[1715] = 0;
                        a[1716] = 0;
                        a[1717] = 2;
                        a[1718] = -1;
                        a[1719] = -1;
                        n[3440] = 65535;
                        h[1882] = 1.0;
                        h[1883] = 3.1415927410125732;
                        h[1884] = 3.1415927410125732;
                        a[1885] = 0;
                        a[1886] = 0;
                        a[1887] = 0;
                        a[1888] = 0;
                        a[1889] = 0;
                        a[1890] = 0;
                        a[1891] = 2;
                        a[1892] = -1;
                        a[1893] = -1;
                        n[3788] = 65535;
                        return
                    }

                    function fw() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 8) break;
                            i = a[2592 + (e << 2) >> 2] | 0;
                            a[7676 + (e << 2) >> 2] = i;
                            t = a[2624 + (e << 2) >> 2] | 0;
                            a[7644 + (e << 2) >> 2] = t;
                            a[7612 + (e << 2) >> 2] = i;
                            a[7580 + (e << 2) >> 2] = t;
                            e = e + 1 | 0
                        }
                        return
                    }

                    function cw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = e + 7 & -8;
                        i = (t + -8 | 0) >>> 6;
                        a[1683] = r;
                        a[1684] = 0;
                        e = 1;
                        t = r;
                        while (1) {
                            if ((e | 0) >= (i | 0)) break;
                            r = t + 64 | 0;
                            a[t >> 2] = r;
                            e = e + 1 | 0;
                            t = r
                        }
                        a[t >> 2] = 0;
                        return
                    }

                    function dw() {
                        switch (my() | 0) {
                            case 0:
                                {
                                    sE();
                                    break
                                }
                            case 2:
                                {
                                    Xj();_y(0);
                                    break
                                }
                            default:
                                sE()
                        }
                        return
                    }

                    function pw() {
                        vf();
                        a[1631] = 15;
                        oo();
                        return
                    }

                    function vw() {
                        vf();
                        a[1632] = 31;
                        oo();
                        return
                    }

                    function mw() {
                        return As() | 0
                    }

                    function _w(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return fc(e, t) | 0
                    }

                    function bw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        h[t >> 2] = 0.0;
                        Go(e & 65535, t);
                        p = i;
                        return + +h[t >> 2]
                    }

                    function gw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        h[t >> 2] = 0.0;
                        $o(e, t);
                        p = i;
                        return + +h[t >> 2]
                    }

                    function yw(e, t) {
                        e = e | 0;
                        t = +t;
                        if (t < 0.0 | t > 1.0) sE();
                        else mc(e & 65535, t);
                        return
                    }

                    function Aw(e, t) {
                        e = e | 0;
                        t = +t;
                        if (t < 0.0 | t > 1.0) sE();
                        else bc(e, t);
                        return
                    }

                    function ww() {
                        xw();
                        return
                    }

                    function xw() {
                        a[2066] = 42;
                        return
                    }

                    function kw(e) {
                        e = e | 0;
                        do {
                            if (e) {
                                e = a[e >> 2] | 0;
                                if ((e | 0) < 1) {
                                    sE();
                                    e = -1;
                                    break
                                } else {
                                    e = (e | 0) < 32767 ? (e << 5) + 68 | 0 : 1048612;
                                    break
                                }
                            } else {
                                sE();
                                e = -1
                            }
                        } while (0);
                        return e | 0
                    }

                    function Tw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        c = p;
                        p = p + 80 | 0;
                        r = c + 40 | 0;
                        u = c + 20 | 0;
                        f = c;
                        do {
                            if (e) {
                                i = a[1660] | 0;
                                if (!i) {
                                    sE();
                                    i = -1;
                                    break
                                }
                                l = a[e + 4 >> 2] | 0;
                                if ((l + -1 | 0) >>> 0 > 7) {
                                    sE();
                                    i = -1;
                                    break
                                }
                                s = a[e + 12 >> 2] | 0;
                                o = a[e + 8 >> 2] | 0;
                                v = a[e + 16 >> 2] | 0;
                                d = (o | 0) == 7;
                                n = +(i | 0);
                                h[r >> 2] = n;
                                a[r + 4 >> 2] = l;
                                a[r + 8 >> 2] = s;
                                a[r + 12 >> 2] = 9;
                                a[r + 16 >> 2] = d ? 0 : o >>> 2 & 3;
                                a[r + 20 >> 2] = v;
                                a[r + 24 >> 2] = 0;
                                o = Sw(d ? 5 : o & 3, r) | 0;
                                if ((o | 0) < 1) i = -1;
                                else {
                                    aE(u, 20);
                                    a[u + 4 >> 2] = l;
                                    a[u + 8 >> 2] = s;
                                    h[u >> 2] = n;
                                    a[u + 12 >> 2] = 1;
                                    r = rV(u) | 0;
                                    if (!(a[e >> 2] | 0)) i = 0;
                                    else {
                                        aE(f, 20);
                                        a[f + 12 >> 2] = t;
                                        h[f >> 2] = 432.0e3;
                                        Pw();
                                        i = 168
                                    }
                                    i = o + 608 + r + i | 0
                                }
                            } else {
                                sE();
                                i = -1
                            }
                        } while (0);
                        p = c;
                        return i | 0
                    }

                    function Ew(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 80 | 0;
                        i = r + 68 | 0;
                        n = r;
                        aE(n, 68);
                        a[n >> 2] = 131074;
                        a[n + 8 >> 2] = 44100;
                        a[n + 4 >> 2] = a[t >> 2];
                        if (!(UE(a[e + 8 >> 2] | 0, n, i) | 0)) {
                            e = (a[i >> 2] | 0) + 8 | 0;
                            a[i >> 2] = e
                        } else {
                            sE();
                            e = -1
                        }
                        p = r;
                        return e | 0
                    }

                    function Sw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 32 | 0;
                        n = r;
                        i = a[t + 4 >> 2] | 0;
                        a[n >> 2] = a[t >> 2];
                        a[n + 4 >> 2] = i;
                        a[n + 8 >> 2] = a[t + 8 >> 2];
                        a[n + 12 >> 2] = a[t + 12 >> 2];
                        a[n + 16 >> 2] = a[t + 16 >> 2];
                        a[n + 20 >> 2] = a[t + 20 >> 2];
                        a[n + 24 >> 2] = a[t + 24 >> 2];
                        t = VA(e, n) | 0;
                        p = r;
                        return ((t | 0) < 1 ? -1 : (i * 72 | 0) + 84 + t | 0) | 0
                    }

                    function Pw() {
                        if (!(a[1659] | 0)) {
                            GA();
                            mG()
                        }
                        return
                    }

                    function Iw(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 8 | 0;
                        if (!(n[t >> 1] | 0)) {
                            zE(e);
                            a[e >> 2] = e;
                            Mw(e);
                            n[t >> 1] = 1
                        }
                        return
                    }

                    function Mw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 16 | 0;
                        f = d;
                        c = KE(a[1663] | 0) | 0;
                        e: do {
                            if ((c | 0) < 1) tS(6644, e);
                            else {
                                a[f >> 2] = 0;
                                s = e + 24 | 0;
                                o = e + 28 | 0;
                                u = e + 36 | 0;
                                h = e + 20 | 0;
                                t = 0;
                                t: while (1) {
                                    if ((t | 0) >= (c | 0)) {
                                        i = 19;
                                        break
                                    }
                                    rS(6644, f);
                                    l = a[f >> 2] | 0;
                                    if (!l) {
                                        i = 6;
                                        break
                                    }
                                    n = a[l >> 2] | 0;
                                    i = a[s >> 2] | 0;
                                    r = a[n + 24 >> 2] | 0;
                                    do {
                                        if ((i | 0) > (r | 0)) {
                                            tS(6644, l);
                                            a[f >> 2] = 0
                                        } else {
                                            if ((i | 0) < (r | 0)) {
                                                i = 20;
                                                break t
                                            }
                                            i = a[o >> 2] | 0;
                                            r = a[n + 28 >> 2] | 0;
                                            if ((i | 0) > (r | 0)) {
                                                tS(6644, l);
                                                a[f >> 2] = 0;
                                                break
                                            }
                                            if ((i | 0) < (r | 0)) {
                                                i = 20;
                                                break t
                                            }
                                            i = a[u >> 2] | 0;
                                            r = a[n + 36 >> 2] | 0;
                                            if ((i | 0) > (r | 0)) {
                                                tS(6644, l);
                                                a[f >> 2] = 0;
                                                break
                                            }
                                            if ((i | 0) < (r | 0)) {
                                                i = 20;
                                                break t
                                            }
                                            r = a[h >> 2] | 0;
                                            if ((r & 5 | 0) != 5 ? 1 : (r | 0) == (a[n + 20 >> 2] | 0)) {
                                                i = 20;
                                                break t
                                            }
                                            tS(6644, l);
                                            a[f >> 2] = 0
                                        }
                                    } while (0);
                                    t = t + 1 | 0
                                }
                                if ((i | 0) == 6) {
                                    sE();
                                    tS(6644, e)
                                } else if ((i | 0) == 19) tS(6644, e);
                                else if ((i | 0) == 20) {
                                    tS(6644, e);
                                    tS(6644, l)
                                }
                                while (1) {
                                    t = t + 1 | 0;
                                    if ((t | 0) >= (c | 0)) break e;
                                    rS(6644, f);
                                    tS(6644, a[f >> 2] | 0)
                                }
                            }
                        } while (0);
                        p = d;
                        return
                    }

                    function Cw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        e: do {
                            if ((a[2414] | 0) >= 1) {
                                r = a[e >> 2] | 0;
                                if ((r | 0) < 1) {
                                    sE();
                                    r = 0;
                                    break
                                }
                                s = (r | 0) < 32767 ? r : 32767;
                                r = kw(e) | 0;
                                if ((r | 0) < 1) r = 0;
                                else {
                                    if ((r | 0) > (i | 0)) {
                                        sE();
                                        r = 0;
                                        break
                                    }
                                    aE(t, r);
                                    t = t + 7 & -8;
                                    r = t;
                                    t = t + 60 | 0;
                                    a[r + 44 >> 2] = t;
                                    n[r + 10 >> 1] = s;
                                    e = 0;
                                    while (1) {
                                        if ((e | 0) >= (s | 0)) break e;
                                        a[t + (e << 5) + 16 >> 2] = -1;
                                        a[t + (e << 5) >> 2] = r;
                                        e = e + 1 | 0
                                    }
                                }
                            } else {
                                sE();
                                r = 0
                            }
                        } while (0);
                        return r | 0
                    }

                    function Ow(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + 12 | 0;
                        r = n[i >> 1] | 0;
                        a[(a[e + 44 >> 2] | 0) + (r << 16 >> 16 << 5) + 4 >> 2] = t;
                        n[i >> 1] = r + 1 << 16 >> 16;
                        return
                    }

                    function Rw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[e + 16 >> 2] = t;
                        a[e + 20 >> 2] = 516;
                        t = e + 24 | 0;
                        a[t >> 2] = a[i >> 2];
                        a[t + 4 >> 2] = a[i + 4 >> 2];
                        a[t + 8 >> 2] = a[i + 8 >> 2];
                        a[t + 12 >> 2] = a[i + 12 >> 2];
                        a[t + 16 >> 2] = a[i + 16 >> 2];
                        return
                    }

                    function Dw(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        do {
                            if (e)
                                if (!(a[2152] | 0)) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    uG();
                                    e = Lw(e, t, i, r) | 0;
                                    lG();
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Fw(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        Bw(e, t, i, r, n);
                        return
                    }

                    function Bw(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        if (((Hv(e) | 0) + -1 | 0) >>> 0 < 2) sE();
                        else Nw(e, t, i, r, n) | 0;
                        return
                    }

                    function Nw(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 80 | 0;
                        o = f + 68 | 0;
                        u = f;
                        s = 0;
                        while (1) {
                            if ((s | 0) >= 2) {
                                l = 5;
                                break
                            }
                            h = e + 32 + (s << 2) | 0;
                            if (!(a[h >> 2] | 0)) {
                                l = 6;
                                break
                            }
                            s = s + 1 | 0
                        }
                        do {
                            if ((l | 0) == 5) {
                                sE();
                                s = 0
                            } else if ((l | 0) == 6) {
                                Ew(t, i) | 0;
                                aE(u, 68);
                                a[u >> 2] = 131074;
                                a[u + 8 >> 2] = 44100;
                                a[u + 4 >> 2] = a[i >> 2];
                                if (!(VE(t, u, r, n, o) | 0)) {
                                    a[h >> 2] = t;
                                    a[e + 40 + (s << 2) >> 2] = a[o >> 2];
                                    s = 1;
                                    break
                                } else {
                                    sE();
                                    s = 0;
                                    break
                                }
                            }
                        } while (0);
                        p = f;
                        return s | 0
                    }

                    function Lw(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        y = p;
                        p = p + 80 | 0;
                        _ = y + 40 | 0;
                        o = y + 20 | 0;
                        b = y;
                        g = Tw(e, t) | 0;
                        e: do {
                            if ((g | 0) >= 0) {
                                if ((i | 0) == 0 | (g | 0) > (n | 0)) {
                                    sE();
                                    i = 0;
                                    break
                                }
                                aE(i, g);
                                d = i;
                                c = d + 7 & -8;
                                i = c;
                                m = i + 8 | 0;
                                a[m >> 2] = a[e >> 2];
                                a[m + 4 >> 2] = a[e + 4 >> 2];
                                a[m + 8 >> 2] = a[e + 8 >> 2];
                                a[m + 12 >> 2] = a[e + 12 >> 2];
                                a[m + 16 >> 2] = a[e + 16 >> 2];
                                r[i + 244 >> 0] = 1;
                                h[i + 424 >> 2] = 1.0;
                                h[i + 428 >> 2] = 1.0;
                                a[i + 456 >> 2] = -1;
                                m = i + 104 | 0;
                                a[m >> 2] = HS(i + 48 | 0) | 0;
                                s = i + 168 | 0;
                                a[s >> 2] = HS(i + 112 | 0) | 0;
                                n = 0;
                                while (1) {
                                    if ((n | 0) == 2) break;
                                    v = i + 172 + (n * 28 | 0) | 0;
                                    WS(v) | 0;
                                    a[i + 228 + (n << 2) >> 2] = v;
                                    f = a[m >> 2] | 0;
                                    a[i + 172 + (n * 28 | 0) + 4 >> 2] = f;
                                    r[i + 172 + (n * 28 | 0) + 8 >> 0] = 3;
                                    YS(f, 3, v);
                                    n = n + 1 | 0
                                }
                                v = c;
                                eP(a[m >> 2] | 0, v);
                                u = a[e + 4 >> 2] | 0;
                                l = a[e + 12 >> 2] | 0;
                                aE(o, 20);
                                a[o + 4 >> 2] = u;
                                a[o + 8 >> 2] = l;
                                h[o >> 2] = +(a[1660] | 0);
                                a[o + 12 >> 2] = 1;
                                a[o + 16 >> 2] = v;
                                f = rV(o) | 0;
                                n = nV(o, c + 592 | 0, f) | 0;
                                a[i + 108 >> 2] = n;
                                if (n) {
                                    aV(n, a[s >> 2] | 0);
                                    n = a[e + 8 >> 2] | 0;
                                    s = a[e + 16 >> 2] | 0;
                                    A = (n | 0) == 7;
                                    o = A ? 5 : n & 3;
                                    h[_ >> 2] = +(a[1660] | 0);
                                    a[_ + 4 >> 2] = u;
                                    a[_ + 8 >> 2] = l;
                                    a[_ + 12 >> 2] = 9;
                                    a[_ + 16 >> 2] = A ? 0 : n >>> 2 & 3;
                                    a[_ + 20 >> 2] = s;
                                    a[_ + 24 >> 2] = v;
                                    s = Sw(o, _) | 0;
                                    if ((s | 0) < 0) {
                                        sE();
                                        kG(i);
                                        i = 0;
                                        break
                                    }
                                    n = c + 599 + f | 0;
                                    A = Vw(o, _, n & -8, s) | 0;
                                    a[i + 236 >> 2] = A;
                                    if (!A) {
                                        sE();
                                        kG(i);
                                        i = 0;
                                        break
                                    }
                                    do {
                                        if (a[e >> 2] | 0) {
                                            aE(b, 20);
                                            a[b + 12 >> 2] = t;
                                            a[b + 8 >> 2] = a[m >> 2];
                                            h[b >> 2] = 432.0e3;
                                            a[b + 16 >> 2] = v;
                                            n = s + (n | 7) & -8;
                                            n = Xw(b, n, g + d - n | 0) | 0;
                                            s = i + 264 | 0;
                                            a[s >> 2] = n;
                                            if (!n) {
                                                sE();
                                                kG(i);
                                                i = 0;
                                                break e
                                            } else {
                                                Gw(n, v);
                                                $w(a[s >> 2] | 0, a[m >> 2] | 0);
                                                break
                                            }
                                        }
                                    } while (0);
                                    if (!(ES(a[1658] | 0, v) | 0)) {
                                        sE();
                                        kG(i);
                                        i = 0
                                    }
                                } else i = 0
                            } else i = 0
                        } while (0);
                        p = y;
                        return i | 0
                    }

                    function Uw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        if (((t | 0) == 3 ? (r = a[e + 540 >> 2] | 0, r | 0) : 0) ? (n = a[(a[e + 104 >> 2] | 0) + 28 >> 2] | 0, i = a[n + 16 >> 2] | 0, i | 0) : 0) l$[r & 7](a[e + 544 >> 2] | 0, (a[n + 24 >> 2] | 0) - i + (a[n + 20 >> 2] | 0) | 0, i);
                        return
                    }

                    function Vw(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 32 | 0;
                        v = m;
                        aE(i, n);
                        f = i;
                        c = f + 7 & -8;
                        i = c;
                        d = t + 4 | 0;
                        s = a[d >> 2] | 0;
                        s = (s | 0) < 8 ? s : 8;
                        l = s * 36 | 0;
                        o = 0;
                        u = c + 63 & -4;
                        while (1) {
                            if ((o | 0) == 2) break;
                            a[i + 48 + (o << 2) >> 2] = u;
                            o = o + 1 | 0;
                            u = u + l | 0
                        }
                        h[i + 12 >> 2] = 1.0;
                        r[i + 21 >> 0] = s;
                        bB(i);
                        a[i + 4 >> 2] = 0;
                        r[i + 23 >> 0] = 0;
                        o = a[t + 24 >> 2] | 0;
                        a[i + 56 >> 2] = o;
                        l = u + 7 & -8;
                        a[v >> 2] = a[t >> 2];
                        s = t + 8 | 0;
                        a[v + 8 >> 2] = a[s >> 2];
                        a[v + 4 >> 2] = a[d >> 2];
                        a[v + 12 >> 2] = a[t + 12 >> 2];
                        a[v + 16 >> 2] = a[t + 16 >> 2];
                        a[v + 20 >> 2] = a[t + 20 >> 2];
                        a[v + 24 >> 2] = o;
                        v = XA(e, v, l, f + n - l | 0) | 0;
                        a[i >> 2] = v;
                        do {
                            if (v)
                                if (!(ES(a[1647] | 0, c) | 0)) {
                                    sE();
                                    AG(i);
                                    i = 0;
                                    break
                                } else {
                                    jr(i, a[s >> 2] | 0);
                                    bB(i);
                                    break
                                }
                            else i = 0
                        } while (0);
                        p = m;
                        return i | 0
                    }

                    function Xw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return HA(e, t, i) | 0
                    }

                    function jw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        t = e + 243 | 0;
                        i = s[t >> 0] | 0;
                        do {
                            if (!(i & 2))
                                if (!(i & 1)) {
                                    qn(e);
                                    break
                                } else {
                                    Ww(e);
                                    break
                                }
                            else {
                                Hw(e);
                                r[t >> 0] = r[t >> 0] & -3
                            }
                        } while (0);
                        return
                    }

                    function Gw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        QA(e, 32, t);
                        return
                    }

                    function $w(e, t) {
                        e = e | 0;
                        t = t | 0;
                        zA(e, t);
                        return
                    }

                    function Hw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0;
                        o = Qn(e) | 0;
                        if ((o | 0) >= 0) {
                            t = e + 243 | 0;
                            i = s[t >> 0] | 0;
                            do {
                                if (i & 1) {
                                    n = a[e + 372 >> 2] | 0;
                                    if ((n | 0) < (o | 0)) {
                                        r[t >> 0] = i & 254;
                                        t = -1;
                                        i = -1;
                                        break
                                    } else {
                                        i = n - o | 0;
                                        t = i;
                                        i = ((i | 0) < 0) << 31 >> 31;
                                        break
                                    }
                                } else {
                                    t = -1;
                                    i = -1
                                }
                            } while (0);
                            on(e, 0, 0, -1, o, ((o | 0) < 0) << 31 >> 31, t, i, 16);
                            r[e + 241 >> 0] = 2
                        }
                        return
                    }

                    function Ww(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (!(Jn(e) | 0)) qn(e);
                        else {
                            i = a[e + 368 >> 2] | 0;
                            t = (a[e + 372 >> 2] | 0) - i | 0;
                            on(e, 0, 0, -1, i, ((i | 0) < 0) << 31 >> 31, t, ((t | 0) < 0) << 31 >> 31, 4);
                            r[e + 241 >> 0] = 2
                        }
                        return
                    }

                    function Yw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        dI(e + 260 | 0, 0);
                        Mj(a[e + 104 >> 2] | 0);
                        r[e + 176 >> 0] = 0;
                        t = a[e + 180 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) break;
                            i = a[t >> 2] | 0;
                            yu(i);
                            if (!(r[i + 125 >> 0] | 0)) mu(i, 0, 0);
                            else {
                                if (!((a[i + 12 >> 2] | 0) == 0 ? !(a[i + 16 >> 2] | 0) : 0)) cu(i);
                                Tu(i);
                                i = i + 112 | 0;
                                Eu(a[i >> 2] | 0);
                                Su(a[i >> 2] | 0)
                            }
                            t = a[t + 4 >> 2] | 0
                        }
                        t = a[e + 220 >> 2] | 0;
                        if (t | 0) u$[t & 63](e, a[e + 224 >> 2] | 0);
                        t = e + 16 | 0;
                        if ((a[t >> 2] | 0) == 3) {
                            a[t >> 2] = 0;
                            a[e + 196 >> 2] = 0
                        }
                        return
                    }

                    function zw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 32 | 0;
                        t = u + 8 | 0;
                        o = u;
                        if (e) {
                            n = a[e + 8 >> 2] | 0;
                            i = (n | 0) > 0 ? n : 0;
                            if ((n | 0) < 1) {
                                t = e;
                                n = 0
                            } else {
                                t = e;
                                n = a[e + 4 >> 2] | 0
                            }
                        } else {
                            a[t >> 2] = 0;
                            a[t + 4 >> 2] = 1;
                            a[t + 8 >> 2] = 0;
                            a[t + 16 >> 2] = 1;
                            a[t + 20 >> 2] = 0;
                            r[t + 12 >> 0] = 8;
                            n = 0;
                            i = 0
                        }
                        e = Tg() | 0;
                        if ((e | 0) < 0) t = -1;
                        else {
                            n = G(i + 8 & 2147483640 | 4, n) | 0;
                            a[o >> 2] = s[t + 12 >> 0];
                            t = n + 316 + (e << 1) + (qw(o) | 0) | 0
                        }
                        p = u;
                        return t | 0
                    }

                    function qw(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        if (!e) a[t >> 2] = 8;
                        else t = e;
                        p = i;
                        return (a[t >> 2] << 1) + 760 | 0
                    }

                    function Jw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        _ = p;
                        p = p + 32 | 0;
                        o = _ + 8 | 0;
                        m = _ + 4 | 0;
                        l = _;
                        do {
                            if ((a[2418] | 0) >= 1) {
                                if (!e) {
                                    a[o >> 2] = 0;
                                    a[o + 4 >> 2] = 1;
                                    a[o + 8 >> 2] = 0;
                                    a[o + 16 >> 2] = 1;
                                    a[o + 20 >> 2] = 0;
                                    r[o + 12 >> 0] = 8
                                } else o = e;
                                u = zw(o) | 0;
                                if ((u | 0) < 0) e = 0;
                                else {
                                    if ((t | 0) == 0 & (i | 0) == 0) {
                                        t = oi(u) | 0;
                                        v = t;
                                        e = u
                                    } else {
                                        v = 0;
                                        e = i
                                    }
                                    if ((e | 0) < (u | 0) | (t | 0) == 0) {
                                        sE();
                                        if (!v) {
                                            e = 0;
                                            break
                                        }
                                        si(v);
                                        e = 0;
                                        break
                                    }
                                    aE(t, e);
                                    d = t + 7 & -8;
                                    e = d;
                                    t = d + 308 | 0;
                                    u = Tg() | 0;
                                    c = My(t, u) | 0;
                                    h = e + 252 | 0;
                                    a[h >> 2] = c;
                                    if (!c) {
                                        sE();
                                        if (!v) {
                                            e = 0;
                                            break
                                        }
                                        si(v);
                                        e = 0;
                                        break
                                    }
                                    t = u + t | 0;
                                    c = My(t, u) | 0;
                                    i = e + 256 | 0;
                                    a[i >> 2] = c;
                                    if (!c) {
                                        sE();
                                        if (!v) {
                                            e = 0;
                                            break
                                        }
                                        si(v);
                                        e = 0;
                                        break
                                    }
                                    t = t + u | 0;
                                    f = _o() | 0;
                                    c = a[h >> 2] | 0;
                                    Cy(c, lf(f, 0, 2147483647) | 0);
                                    c = a[i >> 2] | 0;
                                    Cy(c, lf(f, 0, 2147483647) | 0);
                                    a[l >> 2] = a[i >> 2];
                                    f = e + 20 | 0;
                                    c = e + 104 | 0;
                                    a[c >> 2] = Qw(l, f) | 0;
                                    r[f + 44 >> 0] = (a[o >> 2] | 0) == 1 & 1;
                                    f = a[o + 8 >> 2] | 0;
                                    i = (f | 0) > 0 ? f : 0;
                                    if ((f | 0) < 1) h = 0;
                                    else h = a[o + 4 >> 2] | 0;
                                    l = i + 8 & 2147483640;
                                    f = e + 144 | 0;
                                    a[f >> 2] = t;
                                    t = (h << 2) + t | 0;
                                    u = 0;
                                    while (1) {
                                        if ((u | 0) >= (h | 0)) break;
                                        a[(a[f >> 2] | 0) + (u << 2) >> 2] = t;
                                        t = t + l | 0;
                                        u = u + 1 | 0
                                    }
                                    a[m >> 2] = s[o + 12 >> 0];
                                    a[e + 192 >> 2] = Zw(m, t) | 0;
                                    a[e + 244 >> 2] = v;
                                    n[e + 138 >> 1] = (h | 0) < 32767 ? h : 32767;
                                    a[e + 140 >> 2] = i;
                                    r[e + 178 >> 0] = a[o + 16 >> 2];
                                    m = a[o + 20 >> 2] & 255;
                                    r[e + 179 >> 0] = m;
                                    r[(a[c >> 2] | 0) + 59 >> 0] = m;
                                    a[e + 108 >> 2] = 1;
                                    a[e + 120 >> 2] = 2;
                                    a[e + 128 >> 2] = 44100;
                                    m = e + 12 | 0;
                                    a[m >> 2] = 0;
                                    a[e + 112 >> 2] = -1;
                                    r[e + 136 >> 0] = 2;
                                    r[e + 137 >> 0] = 0;
                                    a[e + 172 >> 2] = -1;
                                    a[e + 200 >> 2] = -1;
                                    a[e + 168 >> 2] = 0;
                                    gS(e + 148 | 0, -1, 8) | 0;
                                    dI(e + 260 | 0, 0);
                                    dI(e + 264 | 0, 0);
                                    dI(e + 268 | 0, 0);
                                    JE(e + 180 | 0);
                                    qE(e);
                                    a[e >> 2] = d;
                                    a[e + 280 >> 2] = 0;
                                    v = e + 284 | 0;
                                    zE(v);
                                    a[v >> 2] = d;
                                    hS(7476, e);
                                    a[m >> 2] = 7476
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = _;
                        return e | 0
                    }

                    function Qw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        aE(t, 84);
                        a[t + 52 >> 2] = -1;
                        r[t + 56 >> 0] = 0;
                        r[t + 57 >> 0] = 0;
                        dI(t + 60 | 0, -1);
                        a[t + 80 >> 2] = a[e >> 2];
                        qE(t);
                        a[t >> 2] = t;
                        return t | 0
                    }

                    function Zw(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        i = u;
                        if (!e) {
                            a[i >> 2] = 8;
                            e = i
                        }
                        a[t + 676 >> 2] = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == 64) break;
                            zD(t + (i << 3) | 0);
                            i = i + 1 | 0
                        }
                        a[t + 680 >> 2] = 0;
                        a[t + 684 >> 2] = 0;
                        r = t + 608 | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == 16) break;
                            n[r + (i << 1) >> 1] = -1;
                            i = i + 1 | 0
                        }
                        a[t + 692 >> 2] = 0;
                        r = t + 644 | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) == 8) break;
                            a[r + (i << 2) >> 2] = -1;
                            i = i + 1 | 0
                        }
                        a[t + 696 >> 2] = 0;
                        a[t + 700 >> 2] = 0;
                        r = t + 736 | 0;
                        a[r >> 2] = 8;
                        a[t + 740 >> 2] = 0;
                        s = t + 704 | 0;
                        i = 0;
                        o = 8;
                        while (1) {
                            if ((i | 0) >= (o | 0)) break;
                            a[s + (i << 2) >> 2] = 0;
                            i = i + 1 | 0;
                            o = a[r >> 2] | 0
                        }
                        r = t + 751 & -8;
                        a[t + 640 >> 2] = r;
                        a[t + 688 >> 2] = 0;
                        e = a[e >> 2] | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (e | 0)) break;
                            n[r + (i << 1) >> 1] = -1;
                            i = i + 1 | 0
                        }
                        p = u;
                        return t | 0
                    }

                    function Kw(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = (e | 0) == 0;
                        if (r | (i | 0) < 0) {
                            sE();
                            if (!r) $m(e)
                        } else {
                            r = ex(e) | 0;
                            if (!(tx(e, t, i) | 0)) $m(e);
                            ix(r)
                        }
                        return
                    }

                    function ex(e) {
                        e = e | 0;
                        e: do {
                            if (!(cI(a[e + 260 >> 2] | 0) | 0)) {
                                switch (a[e + 16 >> 2] | 0) {
                                    case 3:
                                    case 0:
                                        break;
                                    default:
                                        {
                                            eo();e = 1;
                                            break e
                                        }
                                }
                                if (!(bC(a[e + 104 >> 2] | 0) | 0)) e = 0;
                                else {
                                    eo();
                                    e = 1
                                }
                            } else {
                                eo();
                                e = 1
                            }
                        } while (0);
                        return e | 0
                    }

                    function tx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!t) t = bp(i) | 0;
                        if (!(sX(t, i) | 0)) {
                            sE();
                            t = 0
                        } else {
                            $m(e);
                            a[e + 156 >> 2] = 1;
                            a[e + 160 >> 2] = t;
                            a[e + 164 >> 2] = i;
                            t = 1
                        }
                        return t | 0
                    }

                    function ix(e) {
                        e = e | 0;
                        if (e | 0) so();
                        return
                    }

                    function rx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = (e | 0) == 0;
                        if (r | (i | 0) == 0) {
                            sE();
                            if (!r) $m(e)
                        } else {
                            r = ex(e) | 0;
                            if (!(nx(e, t, i) | 0)) $m(e);
                            ix(r)
                        }
                        return
                    }

                    function nx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        n[r >> 1] = 0;
                        if (!t) t = gp(i) | 0;
                        if ((oX(t, i) | 0) != 0 ? (Mc(Pc(a[t + 8 >> 2] | 0) | 0, i, r) | 0) != 0 : 0) {
                            $m(e);
                            a[e + 156 >> 2] = 2;
                            a[e + 160 >> 2] = t;
                            a[e + 164 >> 2] = pX(t, o[r >> 1] | 0) | 0;
                            t = 1
                        } else {
                            sE();
                            t = 0
                        }
                        p = s;
                        return t | 0
                    }

                    function ax(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if (!e) sE();
                        else {
                            r = ex(e) | 0;
                            if (!(sx(e, t, i) | 0)) $m(e);
                            ix(r)
                        }
                        return
                    }

                    function sx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!t) t = hX(i) | 0;
                        if (!(uX(t, i) | 0)) {
                            sE();
                            t = 0
                        } else {
                            $m(e);
                            a[e + 156 >> 2] = 3;
                            a[e + 160 >> 2] = t;
                            a[e + 164 >> 2] = i;
                            t = 1
                        }
                        return t | 0
                    }

                    function ox(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = (e | 0) == 0;
                        if (r | (i | 0) == 0) {
                            sE();
                            if (!r) $m(e)
                        } else {
                            r = ex(e) | 0;
                            if (!(ux(e, t, i) | 0)) $m(e);
                            ix(r)
                        }
                        return
                    }

                    function ux(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = ZI(i) | 0;
                        r = a[e + 140 >> 2] | 0;
                        do {
                            if (n >>> 0 <= r >>> 0) {
                                n = hx(e) | 0;
                                if (!n) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    mS(n, r + 1 | 0, i);
                                    lx(e, t, n);
                                    e = 1;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function hx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = e + 144 | 0;
                        i = n[e + 138 >> 1] | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) {
                                e = 0;
                                break
                            }
                            e = a[(a[r >> 2] | 0) + (t << 2) >> 2] | 0;
                            if (!(fx(e) | 0)) break;
                            else t = t + 1 | 0
                        }
                        return e | 0
                    }

                    function lx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        $m(e);
                        a[e + 156 >> 2] = 5;
                        a[e + 160 >> 2] = t;
                        a[e + 164 >> 2] = i;
                        return
                    }

                    function fx(e) {
                        e = e | 0;
                        return cx(e) | 0
                    }

                    function cx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        i = a[1674] | 0;
                        n = a[1673] | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) {
                                t = 0;
                                break
                            }
                            if ((r[n + (t * 588 | 0) + 507 >> 0] | 0 ? (a[n + (t * 588 | 0) + 8 >> 2] | 0) == 2 : 0) ? (a[n + (t * 588 | 0) + 16 >> 2] | 0) == (e | 0) : 0) {
                                t = 1;
                                break
                            }
                            t = t + 1 | 0
                        }
                        return t | 0
                    }

                    function dx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = (e | 0) == 0;
                        if (i >>> 0 > 65535 | (r | (t | 0) == 0)) {
                            sE();
                            if (!r) $m(e)
                        } else {
                            r = ex(e) | 0;
                            px(e, t, i);
                            ix(r)
                        }
                        return
                    }

                    function px(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        $m(e);
                        a[e + 156 >> 2] = 6;
                        a[e + 160 >> 2] = t;
                        a[e + 164 >> 2] = i;
                        return
                    }

                    function vx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = (e | 0) == 0;
                        if (i >>> 0 > 65535 | (r | (t | 0) == 0)) {
                            sE();
                            if (!r) $m(e)
                        } else {
                            r = ex(e) | 0;
                            mx(e, t, i);
                            ix(r)
                        }
                        return
                    }

                    function mx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        $m(e);
                        a[e + 156 >> 2] = 7;
                        a[e + 160 >> 2] = t;
                        a[e + 164 >> 2] = i;
                        return
                    }

                    function _x(e) {
                        e = e | 0;
                        var t = 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else {
                            eo();
                            t = U_(e, 1) | 0;
                            dI(e + 260 | 0, 0);
                            so();
                            e = t
                        }
                        return e | 0
                    }

                    function bx(e) {
                        e = e | 0;
                        e: do {
                            if (!e) sE();
                            else switch (e_(e) | 0) {
                                case 0:
                                    break e;
                                case 3:
                                    {
                                        Mj(a[e + 104 >> 2] | 0);r[e + 176 >> 0] = 0;a[e + 16 >> 2] = 0;a[e + 196 >> 2] = 0;
                                        break e
                                    }
                                default:
                                    {
                                        eo();Yw(e);so();
                                        break e
                                    }
                            }
                        } while (0);
                        return
                    }

                    function gx(e) {
                        e = e | 0;
                        e: do {
                            if (!e) sE();
                            else switch (e_(e) | 0) {
                                case 0:
                                    break e;
                                case 3:
                                    {
                                        Mj(a[e + 104 >> 2] | 0);r[e + 176 >> 0] = 0;a[e + 16 >> 2] = 0;a[e + 196 >> 2] = 0;
                                        break e
                                    }
                                default:
                                    {
                                        eo();Ij(e, 1);so();
                                        break e
                                    }
                            }
                        } while (0);
                        return
                    }

                    function yx(e) {
                        e = e | 0;
                        eo();
                        Ax(e);
                        pu(e, 2);
                        so();
                        return
                    }

                    function Ax(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (e | 0) r[e + 127 >> 0] = 1;
                        return
                    }

                    function wx(e) {
                        e = e | 0;
                        eo();
                        Ax(e);
                        xx(e);
                        so();
                        return
                    }

                    function xx(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (e | 0) nh(e, 3);
                        return
                    }

                    function kx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            eo();
                            if (!t) Tx(e, 0);
                            else Ex(e);
                            so()
                        }
                        return
                    }

                    function Tx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        switch (t | 0) {
                            case 0:
                                {
                                    t = 65535;n = 4;
                                    break
                                }
                            case 1:
                                {
                                    t = 1;n = 4;
                                    break
                                }
                            case 2:
                                {
                                    i = 2;
                                    break
                                }
                            default:
                                i = 0
                        }
                        if ((n | 0) == 4) {
                            r[e + 177 >> 0] = 0;
                            i = t
                        }
                        t = a[e + 180 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) break;
                            qu(a[t >> 2] | 0, i, 0);
                            t = a[t + 4 >> 2] | 0
                        }
                        return
                    }

                    function Ex(e) {
                        e = e | 0;
                        r[e + 177 >> 0] = 1;
                        e = a[e + 180 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            qu(a[e >> 2] | 0, 1, 1);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Sx(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else {
                            eo();
                            e = Px(e) | 0;
                            so()
                        }
                        return e | 0
                    }

                    function Px(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 180 >> 2] | 0;
                        e: do {
                            if (!(ZE(t) | 0)) t = r[e + 177 >> 0] | 0;
                            else
                                while (1) {
                                    if (!t) {
                                        t = 1;
                                        break e
                                    }
                                    if (!(a[(a[t >> 2] | 0) + 76 >> 2] & 65535)) {
                                        t = 0;
                                        break e
                                    }
                                    t = a[t + 4 >> 2] | 0
                                }
                        } while (0);
                        return t | 0
                    }

                    function Ix(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            eo();
                            Tx(e, t);
                            so()
                        }
                        return
                    }

                    function Mx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        lN(e, t);
                        so();
                        return
                    }

                    function Cx(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (!e) e = 0;
                        else e = (a[e + 76 >> 2] & 65535 | 0) != 0 & 1;
                        return e | 0
                    }

                    function Ox(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        zu(e, t);
                        so();
                        return
                    }

                    function Rx(e) {
                        e = e | 0;
                        var t = 0;
                        if (e)
                            if (!(r[e + 178 >> 0] | 0)) {
                                e = -1;
                                t = -1
                            } else {
                                t = a[e + 196 >> 2] | 0;
                                e = t;
                                t = ((t | 0) < 0) << 31 >> 31
                            }
                        else {
                            sE();
                            e = -1;
                            t = -1
                        }
                        P = t;
                        return e | 0
                    }

                    function Dx() {
                        var e = 0;
                        e = 6384;
                        P = a[e + 4 >> 2] | 0;
                        return a[e >> 2] | 0
                    }

                    function Fx() {
                        var e = 0;
                        e = 16;
                        P = a[e + 4 >> 2] | 0;
                        return a[e >> 2] | 0
                    }

                    function Bx(e) {
                        e = e | 0;
                        eo();
                        e = o_(e) | 0;
                        so();
                        P = ((e | 0) < 0) << 31 >> 31;
                        return e | 0
                    }

                    function Nx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        i = a[e + 48 >> 2] | 0;
                        n = ZE(i) | 0;
                        t = a[e + 36 >> 2] | 0;
                        r = (ZE(t) | 0) == 0;
                        e: do {
                            if ((n | 0) == 0 & r) {
                                if (a[e + 72 >> 2] | 0 ? (a[e + 148 >> 2] | 0) == 0 : 0) {
                                    e = 0;
                                    t = 0;
                                    break
                                }
                                e = -1;
                                t = -1
                            } else {
                                if (r) {
                                    e = -1;
                                    t = -1
                                } else {
                                    t = Lx(a[t >> 2] | 0) | 0;
                                    e = P
                                }
                                while (1) {
                                    if (!i) break e;
                                    n = Nx(a[i >> 2] | 0) | 0;
                                    s = P;
                                    r = (e | 0) < (s | 0) | (e | 0) == (s | 0) & t >>> 0 < n >>> 0;
                                    i = a[i + 4 >> 2] | 0;
                                    e = r ? s : e;
                                    t = r ? n : t
                                }
                            }
                        } while (0);
                        P = e;
                        return t | 0
                    }

                    function Lx(e) {
                        e = e | 0;
                        var t = 0;
                        e = th(e) | 0;
                        if (!e) {
                            e = -1;
                            t = -1
                        } else {
                            t = e + 88 | 0;
                            t = Ux(a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                            e = P
                        }
                        P = e;
                        return t | 0
                    }

                    function Ux(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = Vx(e, t) | 0;
                        return t | 0
                    }

                    function Vx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        P = t;
                        return e | 0
                    }

                    function Xx(e) {
                        e = e | 0;
                        var t = 0;
                        e = a[e + 36 >> 2] | 0;
                        if (!(ZE(e) | 0)) {
                            e = 0;
                            t = 0
                        } else {
                            t = jx(a[e >> 2] | 0) | 0;
                            e = P
                        }
                        P = e;
                        return t | 0
                    }

                    function jx(e) {
                        e = e | 0;
                        var t = 0;
                        e = th(e) | 0;
                        if (!e) {
                            e = 0;
                            t = 0
                        } else {
                            t = e + 104 | 0;
                            t = Gx(a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                            e = P
                        }
                        P = e;
                        return t | 0
                    }

                    function Gx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        P = t;
                        return e | 0
                    }

                    function $x(e) {
                        e = e | 0;
                        eo();
                        e = Hx(e) | 0;
                        so();
                        P = ((e | 0) < 0) << 31 >> 31;
                        return e | 0
                    }

                    function Hx(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (!e) e = -1;
                        else e = Wx(e) | 0;
                        return e | 0
                    }

                    function Wx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        a[i >> 2] = -1;
                        t = a[e + 48 >> 2] | 0;
                        Sh(e, i) | 0;
                        e = a[i >> 2] | 0;
                        if ((e | 0) <= -1) {
                            ZE(t) | 0;
                            while (1) {
                                if (!t) break;
                                n = Wx(a[t >> 2] | 0) | 0;
                                t = a[t + 4 >> 2] | 0;
                                e = (e | 0) < (n | 0) ? n : e
                            }
                            a[i >> 2] = e
                        }
                        p = r;
                        return e | 0
                    }

                    function Yx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        e = zx(e) | 0;
                        r = P;
                        i = (r | 0) > 0 | (r | 0) == 0 & e >>> 0 > 0;
                        t = hM(e | 0, r | 0, 1e3, 0) | 0;
                        P = i ? P : r;
                        return (i ? t : e) | 0
                    }

                    function zx(e) {
                        e = e | 0;
                        var t = 0;
                        eo();
                        e = qx(e) | 0;
                        t = P;
                        so();
                        P = t;
                        return e | 0
                    }

                    function qx(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = p;
                        p = p + 16 | 0;
                        r = o + 8 | 0;
                        n = o;
                        s = vu(e) | 0;
                        if (s) {
                            t = Nx(s) | 0;
                            i = P;
                            if ((!((i | 0) < 0 | (i | 0) == 0 & t >>> 0 < 1) ? (a[s + 76 >> 2] | 0) == 0 : 0) ? (u = n, a[u >> 2] = -1, a[u + 4 >> 2] = -1, a[r >> 2] = -1, (Jx(e, n, r) | 0) != 0) : 0) {
                                u = n;
                                u = fM(a[u >> 2] | 0, a[u + 4 >> 2] | 0, 1e6, 0) | 0;
                                n = a[r >> 2] | 0;
                                n = hM(u | 0, P | 0, n | 0, ((n | 0) < 0) << 31 >> 31 | 0) | 0;
                                u = P;
                                e = Xx(s) | 0;
                                u = aM(e | 0, P | 0, n | 0, u | 0) | 0;
                                n = P;
                                e = Dx() | 0;
                                r = P;
                                s = _I() | 0;
                                s = OP(e, r, s, P) | 0;
                                t = aM(s | 0, P | 0, t | 0, i | 0) | 0;
                                i = P;
                                s = (i | 0) < (n | 0) | (i | 0) == (n | 0) & t >>> 0 < u >>> 0;
                                i = s ? i : n;
                                t = s ? t : u
                            }
                        } else {
                            i = -1;
                            t = -1
                        }
                        P = i;
                        p = o;
                        return t | 0
                    }

                    function Jx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = vu(e) | 0;
                        if (((r | 0) != 0 ? (Ih(r) | 0) == 2 : 0) ? (n = nC(e) | 0, (n | 0) != 0) : 0) e = AB(n, t, i) | 0;
                        else e = 0;
                        return e | 0
                    }

                    function Qx(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = (t | 0) == 0 ? r : t;
                        n = t;
                        a[n >> 2] = -1;
                        a[n + 4 >> 2] = -1;
                        i = (i | 0) == 0 ? r + 8 | 0 : i;
                        a[i >> 2] = -1;
                        eo();
                        i = Jx(e, t, i) | 0;
                        so();
                        p = r;
                        return i | 0
                    }

                    function Zx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = p;
                        p = p + 48 | 0;
                        eo();
                        t = Kx(e, (t | 0) == 0 ? i : t) | 0;
                        so();
                        p = i;
                        return t | 0
                    }

                    function Kx(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        r = p;
                        p = p + 48 | 0;
                        i = r;
                        aE(t, 40);
                        e = nC(e) | 0;
                        if ((e | 0) != 0 ? (qF(e, i) | 0) != 0 : 0) {
                            a[t >> 2] = a[i >> 2];
                            a[t + 32 >> 2] = a[i + 32 >> 2];
                            a[t + 4 >> 2] = a[i + 4 >> 2];
                            n = i + 8 | 0;
                            e = a[n + 4 >> 2] | 0;
                            s = t + 8 | 0;
                            a[s >> 2] = a[n >> 2];
                            a[s + 4 >> 2] = e;
                            s = i + 16 | 0;
                            e = a[s + 4 >> 2] | 0;
                            n = t + 16 | 0;
                            a[n >> 2] = a[s >> 2];
                            a[n + 4 >> 2] = e;
                            n = i + 24 | 0;
                            i = a[n + 4 >> 2] | 0;
                            e = t + 24 | 0;
                            a[e >> 2] = a[n >> 2];
                            a[e + 4 >> 2] = i;
                            e = 1
                        } else e = 0;
                        p = r;
                        return e | 0
                    }

                    function ek(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!t) {
                            sE();
                            e = 0
                        } else {
                            eo();
                            e = tk(e, t) | 0;
                            so()
                        }
                        return e | 0
                    }

                    function tk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = vu(e) | 0;
                        if (!e) {
                            a[t >> 2] = 0;
                            e = 0
                        } else {
                            e = e + 84 | 0;
                            a[t >> 2] = a[e >> 2];
                            a[t + 4 >> 2] = a[e + 4 >> 2];
                            a[t + 8 >> 2] = a[e + 8 >> 2];
                            e = 1
                        }
                        return e | 0
                    }

                    function ik(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            if (e) {
                                e: do {
                                    if ((t | 0) < 7) switch (t | 0) {
                                        case 1:
                                            {
                                                t = 1;
                                                break e
                                            }
                                        case 3:
                                            {
                                                t = 4;
                                                break e
                                            }
                                        case 4:
                                            {
                                                t = 8;
                                                break e
                                            }
                                        case 5:
                                            {
                                                t = 32;
                                                break e
                                            }
                                        case 6:
                                            {
                                                t = 64;
                                                break e
                                            }
                                        default:
                                            {
                                                i = 14;
                                                break e
                                            }
                                    } else {
                                        if ((t | 0) < 10) switch (t | 0) {
                                            case 7:
                                                {
                                                    t = 128;
                                                    break e
                                                }
                                            case 8:
                                                {
                                                    t = 256;
                                                    break e
                                                }
                                            case 9:
                                                {
                                                    t = 512;
                                                    break e
                                                }
                                            default:
                                                {
                                                    i = 14;
                                                    break e
                                                }
                                        }
                                        if ((t | 0) < 65537) {
                                            switch (t | 0) {
                                                case 10:
                                                    break;
                                                default:
                                                    {
                                                        i = 14;
                                                        break e
                                                    }
                                            }
                                            t = 1024;
                                            break
                                        }
                                        switch (t | 0) {
                                            case 65537:
                                                {
                                                    t = 65536;
                                                    break e
                                                }
                                            case 65538:
                                                {
                                                    t = 131072;
                                                    break e
                                                }
                                            default:
                                                {
                                                    i = 14;
                                                    break e
                                                }
                                        }
                                    }
                                } while (0);
                                if ((i | 0) == 14) {
                                    sE();
                                    break
                                }
                                a[e + 108 >> 2] = t;
                                if ((lC(a[e + 156 >> 2] | 0) | 0) == 1) {
                                    eo();
                                    _D(a[e + 104 >> 2] | 0, 0, t);
                                    so()
                                }
                            }
                            else sE()
                        } while (0);
                        return
                    }

                    function rk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!((e | 0) == 0 | (t + -1 | 0) >>> 0 > 126)) {
                            a[e + 120 >> 2] = t;
                            if ((lC(a[e + 156 >> 2] | 0) | 0) == 1) {
                                eo();
                                bD(a[e + 104 >> 2] | 0, 0, t);
                                so()
                            }
                        } else sE();
                        return
                    }

                    function nk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!((e | 0) == 0 | (t | 0) < 1)) {
                            a[e + 128 >> 2] = t;
                            if ((lC(a[e + 156 >> 2] | 0) | 0) == 1) {
                                eo();
                                gD(a[e + 104 >> 2] | 0, 0, t);
                                so()
                            }
                        } else sE();
                        return
                    }

                    function ak(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            t = (t | 0) < 255 ? t : 255;
                            xD(a[e + 192 >> 2] | 0, 145, (t | 0) > -255 ? t : -255)
                        }
                        return
                    }

                    function sk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else a[e + 248 >> 2] = t;
                        return
                    }

                    function ok(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Cy(a[e + 252 >> 2] | 0, t);
                        Cy(a[e + 256 >> 2] | 0, t);
                        return
                    }

                    function uk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | t >>> 0 > 2) sE();
                        else r[e + 136 >> 0] = t;
                        return
                    }

                    function hk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        kD(e, t, (h[c >> 2] = i, a[c >> 2] | 0));
                        return
                    }

                    function lk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        do {
                            if (!((e | 0) == 0 | (i | 0) < 0)) {
                                n = (i | 0) < 0 | (i | 0) == 0 & t >>> 0 < 4294967295;
                                r = n ? t : -1;
                                a[e + 168 >> 2] = r;
                                e = a[e + 192 >> 2] | 0;
                                if ((i | 0) > 0 | (i | 0) == 0 & t >>> 0 > 0) {
                                    sC(e, 120, r);
                                    break
                                } else {
                                    YD(e, 120);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function fk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        sE();
                        return
                    }

                    function ck(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | (t | 0) < -3) sE();
                        else xD(a[e + 192 >> 2] | 0, 152, t);
                        return
                    }

                    function dk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            eo();
                            pk(e, t);
                            so()
                        }
                        return
                    }

                    function pk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = vu(t) | 0;
                        if (t | 0) zL(t, a[e + 192 >> 2] | 0);
                        return
                    }

                    function vk(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            QG(a[e + 192 >> 2] | 0);
                            a[e + 248 >> 2] = 0;
                            dI(e + 268 | 0, 0);
                            gS(e + 148 | 0, -1, 8) | 0
                        }
                        return
                    }

                    function mk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        _k(i, e, t);
                        p = r;
                        return + +h[i >> 2]
                    }

                    function _k(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        n = u + 4 | 0;
                        s = u;
                        o = i >>> 0 > 999 & (i | 0) != 65535;
                        do {
                            if (t) {
                                if (!o) {
                                    i = bk(i) | 0;
                                    if ((i | 0) == 65535) {
                                        sE();
                                        i = 2147483647;
                                        break
                                    }
                                }
                                r = i & 65535;
                                gk(n, a[t + 192 >> 2] | 0, r);
                                i = a[n >> 2] | 0;
                                t = (i | 0) != 2147483647;
                                if (o | t) i = t ? i : -1082130432;
                                else {
                                    Wl(s, r);
                                    i = a[s >> 2] | 0
                                }
                            } else {
                                sE();
                                i = 2147483647
                            }
                        } while (0);
                        a[e >> 2] = i;
                        p = u;
                        return
                    }

                    function bk(e) {
                        e = e | 0;
                        do {
                            switch (e | 0) {
                                case 0:
                                    {
                                        e = 0;
                                        break
                                    }
                                case 1:
                                    {
                                        e = 3;
                                        break
                                    }
                                case 2:
                                    {
                                        e = 5;
                                        break
                                    }
                                case 3:
                                    {
                                        e = 6;
                                        break
                                    }
                                case 4:
                                    {
                                        e = 7;
                                        break
                                    }
                                case 5:
                                    {
                                        e = 100;
                                        break
                                    }
                                case 6:
                                    {
                                        e = 101;
                                        break
                                    }
                                case 7:
                                    {
                                        e = 1;
                                        break
                                    }
                                case 8:
                                    {
                                        e = 2;
                                        break
                                    }
                                case 9:
                                    {
                                        e = 104;
                                        break
                                    }
                                case 10:
                                    {
                                        e = 105;
                                        break
                                    }
                                case 11:
                                    {
                                        e = 106;
                                        break
                                    }
                                case 12:
                                    {
                                        e = 107;
                                        break
                                    }
                                case 13:
                                    {
                                        e = 108;
                                        break
                                    }
                                case 14:
                                    {
                                        e = 109;
                                        break
                                    }
                                case 15:
                                    {
                                        e = 110;
                                        break
                                    }
                                case 16:
                                    {
                                        e = 111;
                                        break
                                    }
                                case 17:
                                    {
                                        e = 79;
                                        break
                                    }
                                case 18:
                                    {
                                        e = 80;
                                        break
                                    }
                                case 19:
                                    {
                                        e = 81;
                                        break
                                    }
                                case 20:
                                    {
                                        e = 82;
                                        break
                                    }
                                case 21:
                                    {
                                        e = 83;
                                        break
                                    }
                                case 22:
                                    {
                                        e = 84;
                                        break
                                    }
                                case 23:
                                    {
                                        e = 125;
                                        break
                                    }
                                case 24:
                                    {
                                        e = 128;
                                        break
                                    }
                                case 25:
                                    {
                                        e = 129;
                                        break
                                    }
                                case 26:
                                    {
                                        e = 133;
                                        break
                                    }
                                case 27:
                                    {
                                        e = 132;
                                        break
                                    }
                                case 28:
                                    {
                                        e = 120;
                                        break
                                    }
                                case 31:
                                    {
                                        e = 145;
                                        break
                                    }
                                case 32:
                                    {
                                        e = 147;
                                        break
                                    }
                                case 33:
                                    {
                                        e = 136;
                                        break
                                    }
                                case 34:
                                    {
                                        e = 137;
                                        break
                                    }
                                case 35:
                                    {
                                        e = 138;
                                        break
                                    }
                                case 36:
                                    {
                                        e = 139;
                                        break
                                    }
                                case 37:
                                    {
                                        e = 140;
                                        break
                                    }
                                case 38:
                                    {
                                        e = 141;
                                        break
                                    }
                                case 39:
                                    {
                                        e = 142;
                                        break
                                    }
                                case 40:
                                    {
                                        e = 143;
                                        break
                                    }
                                default:
                                    e = 65535
                            }
                        } while (0);
                        return e | 0
                    }

                    function gk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = ED(t, i) | 0;
                        if (!t) t = 2147483647;
                        else t = a[t + 4 >> 2] | 0;
                        a[e >> 2] = t;
                        return
                    }

                    function yk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        _k(i, e, t);
                        p = r;
                        return a[i >> 2] | 0
                    }

                    function Ak(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        _k(i, e, t);
                        p = r;
                        return a[i >> 2] | 0
                    }

                    function wk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        i = xk(e, t, i) | 0;
                        so();
                        return i | 0
                    }

                    function xk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        if (!i) {
                            sE();
                            e = 0
                        } else {
                            h[r >> 2] = 0.0;
                            e = kk(e, t, r) | 0;
                            a[i >> 2] = a[r >> 2]
                        }
                        p = n;
                        return e | 0
                    }

                    function kk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        n = u + 8 | 0;
                        s = u + 4 | 0;
                        o = u;
                        if (t >>> 0 <= 999) {
                            t = bk(t) | 0;
                            if ((t | 0) == 65535) {
                                sE();
                                e = 0;
                                t = 2147483647
                            } else r = 4
                        } else r = 4;
                        do {
                            if ((r | 0) == 4) {
                                r = vu(e) | 0;
                                if (!r) {
                                    Wl(n, t & 65535);
                                    e = 0;
                                    t = a[n >> 2] | 0;
                                    break
                                }
                                e = t & 65535;
                                Hc(s, a[r + 68 >> 2] | 0, e);
                                t = a[s >> 2] | 0;
                                if ((t | 0) == 2147483647) {
                                    Wl(o, e);
                                    e = 1;
                                    t = a[o >> 2] | 0
                                } else e = 1
                            }
                        } while (0);
                        a[i >> 2] = t;
                        p = u;
                        return e | 0
                    }

                    function Tk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        i = Ek(e, t, i) | 0;
                        so();
                        return i | 0
                    }

                    function Ek(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        if (!i) {
                            sE();
                            e = 0
                        } else {
                            a[r >> 2] = 0;
                            e = kk(e, t, r) | 0;
                            a[i >> 2] = a[r >> 2]
                        }
                        p = n;
                        return e | 0
                    }

                    function Sk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        i = Pk(e, t, i) | 0;
                        so();
                        return i | 0
                    }

                    function Pk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        if (!i) {
                            sE();
                            e = 0
                        } else {
                            a[r >> 2] = 0;
                            e = kk(e, t, r) | 0;
                            a[i >> 2] = a[r >> 2]
                        }
                        p = n;
                        return e | 0
                    }

                    function Ik(e, t) {
                        e = e | 0;
                        t = +t;
                        Mk(e, t);
                        return
                    }

                    function Mk(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else hk(a[e + 192 >> 2] | 0, 0, t);
                        return
                    }

                    function Ck(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t != 0.0 & (r[e + 179 >> 0] | 0) != 0) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 3, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Ok(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else hk(a[e + 192 >> 2] | 0, 5, t);
                        return
                    }

                    function Rk(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else hk(a[e + 192 >> 2] | 0, 6, t);
                        return
                    }

                    function Dk(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else hk(a[e + 192 >> 2] | 0, 7, t);
                        return
                    }

                    function Fk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (t >>> 0 < 3) {
                                    sC(a[e + 192 >> 2] | 0, 100, t);
                                    break
                                } else {
                                    sE();
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Bk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var s = 0,
                            o = 0,
                            u = 0;
                        s = ZL(e, t) | 0;
                        if ((s | 0) >= 0 ? (n[e + 512 + (s * 12 | 0) >> 1] = t, h[e + 512 + (s * 12 | 0) + 8 >> 2] = i, r[e + 512 + (s * 12 | 0) + 3 >> 0] = 1, o = e + 680 | 0, u = a[o >> 2] | 0, (s | 0) >= (u | 0)) : 0) a[o >> 2] = u + 1;
                        return
                    }

                    function Nk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        a[r >> 2] = 11354;
                        do {
                            if (!e) sE();
                            else {
                                if ((t | 0) < 0) {
                                    sE();
                                    break
                                }
                                eo();
                                if (!(zb(t, r) | 0)) sE();
                                else {
                                    r = cs(a[r >> 2] | 0) | 0;
                                    QL(a[e + 192 >> 2] | 0, r, i)
                                }
                                so()
                            }
                        } while (0);
                        p = n;
                        return
                    }

                    function Lk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        a[r >> 2] = 11354;
                        do {
                            if (!e) sE();
                            else {
                                if ((t | 0) < 0) {
                                    sE();
                                    break
                                }
                                eo();
                                if (!(zb(t, r) | 0)) sE();
                                else {
                                    r = cs(a[r >> 2] | 0) | 0;
                                    Bk(a[e + 192 >> 2] | 0, r, i)
                                }
                                so()
                            }
                        } while (0);
                        p = n;
                        return
                    }

                    function Uk(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        if (!e) sE();
                        else {
                            t = t > 0.0 ? t : 0.0;
                            i = i > 0.0 ? i : 0.0;
                            e = e + 192 | 0;
                            hk(a[e >> 2] | 0, 79, t < 1.0 ? t : 1.0);
                            hk(a[e >> 2] | 0, 80, i < 1.0 ? i : 1.0)
                        }
                        return
                    }

                    function Vk(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        n = +n;
                        if (!e) sE();
                        else {
                            e = e + 192 | 0;
                            sC(a[e >> 2] | 0, 81, t);
                            hk(a[e >> 2] | 0, 82, i);
                            hk(a[e >> 2] | 0, 83, n);
                            hk(a[e >> 2] | 0, 84, r)
                        }
                        return
                    }

                    function Xk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        do {
                            if (rf(0) | 0) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                if (t >>> 0 > 999) {
                                    sE();
                                    break
                                } else {
                                    i = i > 0.0 ? i : 0.0;
                                    hk(a[e + 192 >> 2] | 0, t + 1e3 & 65535, i < 1.0 ? i : 1.0);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function jk(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        do {
                            if (rf(0) | 0) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                if (!t) {
                                    sE();
                                    break
                                }
                                t = Gf(t) | 0;
                                if (t << 16 >> 16 == -1) {
                                    sE();
                                    break
                                } else {
                                    i = i > 0.0 ? i : 0.0;
                                    hk(a[e + 192 >> 2] | 0, t, i < 1.0 ? i : 1.0);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function Gk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 48 | 0;
                        i = h + 20 | 0;
                        s = h;
                        do {
                            if (!(rf(0) | 0)) sE();
                            else {
                                if (!e) {
                                    sE();
                                    break
                                }
                                a[i >> 2] = 0;
                                if (rf(0) | 0 ? (o = Js(t) | 0, Ks(o, i) | 0, o << 16 >> 16 != -1) : 0) {
                                    n = e + 192 | 0;
                                    r = a[i >> 2] | 0;
                                    i = 0;
                                    while (1) {
                                        e = a[n >> 2] | 0;
                                        if ((i | 0) >= (af(a[e + 684 >> 2] | 0) | 0)) {
                                            u = 16;
                                            break
                                        }
                                        e = sf(e, i) | 0;
                                        if (!(rf(0) | 0)) {
                                            a[s >> 2] = 0;
                                            t = 0
                                        } else {
                                            Ks(e, s) | 0;
                                            t = a[s >> 2] | 0
                                        }
                                        if ((r | 0) == (t | 0)) break;
                                        else i = i + 1 | 0
                                    }
                                    if ((u | 0) == 16) {
                                        $k(e, o);
                                        break
                                    }
                                    if (o << 16 >> 16 == e << 16 >> 16) break;
                                    sE();
                                    break
                                }
                                sE()
                            }
                        } while (0);
                        p = h;
                        return
                    }

                    function $k(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + 684 | 0;
                        r = a[i >> 2] | 0;
                        if ((r | 0) > 15) sE();
                        else {
                            n[e + 608 + (r << 1) >> 1] = t;
                            a[i >> 2] = (a[i >> 2] | 0) + 1
                        }
                        return
                    }

                    function Hk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 48 | 0;
                        i = h + 20 | 0;
                        o = h;
                        do {
                            if (!(rf(0) | 0)) sE();
                            else {
                                if (!e) {
                                    sE();
                                    break
                                }
                                if (!t) {
                                    sE();
                                    break
                                }
                                a[i >> 2] = 0;
                                if (rf(0) | 0 ? (s = Qs(t) | 0, Ks(s, i) | 0, s << 16 >> 16 != -1) : 0) {
                                    n = e + 192 | 0;
                                    r = a[i >> 2] | 0;
                                    i = 0;
                                    while (1) {
                                        e = a[n >> 2] | 0;
                                        if ((i | 0) >= (af(a[e + 684 >> 2] | 0) | 0)) {
                                            u = 18;
                                            break
                                        }
                                        e = sf(e, i) | 0;
                                        if (!(rf(0) | 0)) {
                                            a[o >> 2] = 0;
                                            t = 0
                                        } else {
                                            Ks(e, o) | 0;
                                            t = a[o >> 2] | 0
                                        }
                                        if ((r | 0) == (t | 0)) break;
                                        else i = i + 1 | 0
                                    }
                                    if ((u | 0) == 18) {
                                        $k(e, s);
                                        break
                                    }
                                    if (s << 16 >> 16 == e << 16 >> 16) break;
                                    sE();
                                    break
                                }
                                sE()
                            }
                        } while (0);
                        p = h;
                        return
                    }

                    function Wk(e) {
                        e = e | 0;
                        bj(a[e + 192 >> 2] | 0);
                        return
                    }

                    function Yk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (!e) sE();
                            else {
                                if (t | 0 ? a[t + 336 >> 2] | 0 : 0) {
                                    sE();
                                    break
                                }
                                zk(a[e + 192 >> 2] | 0, t)
                            }
                        } while (0);
                        return
                    }

                    function zk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e = e + 696 | 0;
                        i = a[e >> 2] | 0;
                        if ((i | 0) != (t | 0)) {
                            if (i | 0) mI(i + 324 | 0);
                            a[e >> 2] = t;
                            if (t | 0) vI(t + 324 | 0)
                        }
                        return
                    }

                    function qk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else Jk(a[e + 192 >> 2] | 0, t);
                        return
                    }

                    function Jk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e = e + 700 | 0;
                        i = a[e >> 2] | 0;
                        if ((i | 0) != (t | 0)) {
                            if (i | 0) mI(i + 156 | 0);
                            a[e >> 2] = t;
                            if (t | 0) vI(t + 156 | 0)
                        }
                        return
                    }

                    function Qk(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else sC(a[e + 192 >> 2] | 0, 147, t);
                        return
                    }

                    function Zk(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t < 0.0 | t > 2.0e3) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 125, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function Kk(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t < 0.0 | t > 2.0e3) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 128, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function eT(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t < 0.0 | t > 2.0e3) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 129, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function tT(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t < 0.0 | t > 1.0e4) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 133, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function iT(e, t) {
                        e = e | 0;
                        t = +t;
                        do {
                            if (e)
                                if (t < 0.0 | t > 1.0) {
                                    sE();
                                    break
                                } else {
                                    hk(a[e + 192 >> 2] | 0, 132, t);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function rT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        dI(e + 268 | 0, t);
                        return
                    }

                    function nT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            eo();
                            aT(e, t);
                            so()
                        }
                        return
                    }

                    function aT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(a[e + 16 >> 2] | 0)) {
                            a[e + 272 >> 2] = 7;
                            a[e + 276 >> 2] = t
                        } else sE();
                        return
                    }

                    function sT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = vu(e) | 0;
                        if (e | 0) a[e + 96 >> 2] = t;
                        return
                    }

                    function oT(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (!e) e = -1;
                        else e = uT(a[e + 72 >> 2] | 0) | 0;
                        return e | 0
                    }

                    function uT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (((e | 0) != 0 ? (t = a[e + 8 >> 2] | 0, (ZE(t) | 0) != 0) : 0) ? (i = a[t >> 2] | 0, (a[i >> 2] | 0) != 0) : 0) e = hT(a[i + 36 >> 2] | 0) | 0;
                        else e = -1;
                        return e | 0
                    }

                    function hT(e) {
                        e = e | 0;
                        if (!e) e = -1;
                        else e = o[e + 176 >> 1] | 0;
                        return e | 0
                    }

                    function lT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        do {
                            if (t) {
                                eo();
                                i = vu(e) | 0;
                                if (!i) {
                                    so();
                                    e = 0;
                                    break
                                }
                                r = a[i + 112 >> 2] | 0;
                                if (!r) {
                                    so();
                                    e = 0;
                                    break
                                } else {
                                    a[t + 4 >> 2] = e;
                                    a[t >> 2] = a[i + 60 >> 2];
                                    a[t + 12 >> 2] = a[r + 56 >> 2];
                                    a[t + 8 >> 2] = a[r + 52 >> 2];
                                    a[t + 16 >> 2] = a[r + 60 >> 2];
                                    a[t + 20 >> 2] = a[r + 64 >> 2];
                                    a[t + 24 >> 2] = n[r + 38 >> 1];
                                    a[t + 28 >> 2] = s[(a[r + 76 >> 2] | 0) + 16 >> 0];
                                    so();
                                    e = 1;
                                    break
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function fT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        r = u + 2 | 0;
                        o = u;
                        do {
                            if (rf(0) | 0) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                if (!t) {
                                    sE();
                                    break
                                }
                                if (!i) {
                                    sE();
                                    break
                                }
                                Os(t, i, r, o);
                                t = n[r >> 1] | 0;
                                if (t << 16 >> 16 != -1 ? (s = n[o >> 1] | 0, s << 16 >> 16 != -1) : 0) cT(a[e + 192 >> 2] | 0, t, s)
                            } else sE()
                        } while (0);
                        p = u;
                        return
                    }

                    function cT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        n = dT(t, i) | 0;
                        s = e + 692 | 0;
                        i = a[s >> 2] | 0;
                        r = 0;
                        while (1) {
                            if ((r | 0) >= (i | 0)) {
                                i = 6;
                                break
                            }
                            o = e + 644 + (r << 2) | 0;
                            if ((fp(a[o >> 2] | 0) | 0) << 16 >> 16 == t << 16 >> 16) {
                                i = 4;
                                break
                            }
                            r = r + 1 | 0
                        }
                        do {
                            if ((i | 0) == 4) a[o >> 2] = n;
                            else if ((i | 0) == 6)
                                if ((r | 0) > 7) {
                                    sE();
                                    break
                                } else {
                                    a[e + 644 + (r << 2) >> 2] = n;
                                    a[s >> 2] = (a[s >> 2] | 0) + 1;
                                    break
                                }
                        } while (0);
                        return
                    }

                    function dT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return (e & 65535) << 16 | t & 65535 | 0
                    }

                    function pT(e) {
                        e = e | 0;
                        if (!e) sE();
                        else yj(a[e + 192 >> 2] | 0);
                        return
                    }

                    function vT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        if (!e) {
                            sE();
                            if (t | 0) a[t >> 2] = 0;
                            if (i | 0) a[i >> 2] = 0
                        } else {
                            r = n[e + 12 >> 1] | 0;
                            s = r << 16 >> 16;
                            if (t | 0) a[t >> 2] = s - (mT(r, n[e + 14 >> 1] | 0) | 0);
                            if (i | 0) a[i >> 2] = s
                        }
                        return
                    }

                    function mT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return (e << 16 >> 16) - (t << 16 >> 16) | 0
                    }

                    function _T() {
                        NS();
                        return
                    }

                    function bT() {
                        LS();
                        return
                    }

                    function gT() {
                        var e = 0;
                        Kr();
                        e = yT() | 0;
                        en();
                        if ((e | 0) == 1) {
                            PP(8, 0);
                            PP(9, 8)
                        }
                        return
                    }

                    function yT() {
                        var e = 0;
                        e = a[2558] | 0;
                        a[2558] = e + 1;
                        e: do {
                            if (!e) {
                                e = 0;
                                while (1) {
                                    if ((e | 0) == 1) {
                                        e = 1;
                                        break e
                                    }
                                    TT(e);
                                    e = e + 1 | 0
                                }
                            } else e = 0
                        } while (0);
                        return e | 0
                    }

                    function AT() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = _I() | 0;
                        i = P;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            ST(6392 + (e * 96 | 0) | 0, t, i);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function wT() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        t = _I() | 0;
                        i = P;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            xT(6392 + (e * 96 | 0) | 0, t, i);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function xT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = e + 16 | 0;
                        a[s >> 2] = t;
                        a[s + 4 >> 2] = i;
                        s = e + 8 | 0;
                        s = OP(a[s >> 2] | 0, a[s + 4 >> 2] | 0, t, i) | 0;
                        n = P;
                        t = e + 88 | 0;
                        r = a[t >> 2] | 0;
                        t = a[t + 4 >> 2] | 0;
                        i = n >>> 0 < t >>> 0 | (n | 0) == (t | 0) & s >>> 0 < r >>> 0;
                        t = sM(s | 0, n | 0, r | 0, t | 0) | 0;
                        t = i ? 0 : t;
                        i = i ? 0 : P;
                        r = e + 24 | 0;
                        a[r >> 2] = t;
                        a[r + 4 >> 2] = i;
                        r = e + 32 | 0;
                        n = r;
                        s = a[n + 4 >> 2] | 0;
                        if (s >>> 0 < i >>> 0 | ((s | 0) == (i | 0) ? (a[n >> 2] | 0) >>> 0 < t >>> 0 : 0)) {
                            s = r;
                            a[s >> 2] = t;
                            a[s + 4 >> 2] = i
                        }
                        s = e + 40 | 0;
                        n = s;
                        n = aM(a[n >> 2] | 0, a[n + 4 >> 2] | 0, t | 0, i | 0) | 0;
                        a[s >> 2] = n;
                        a[s + 4 >> 2] = P;
                        s = e;
                        s = aM(a[s >> 2] | 0, a[s + 4 >> 2] | 0, 1, 0) | 0;
                        n = P;
                        a[e >> 2] = s;
                        a[e + 4 >> 2] = n;
                        if (n >>> 0 > 0 | (n | 0) == 0 & s >>> 0 > 4294967295) kT();
                        return
                    }

                    function kT() {
                        TT(0);
                        return
                    }

                    function TT(e) {
                        e = e | 0;
                        var t = 0;
                        t = _I() | 0;
                        ET(6392 + (e * 96 | 0) | 0, t, P);
                        return
                    }

                    function ET(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        aE(e, 96);
                        r = e + 8 | 0;
                        a[r >> 2] = t;
                        a[r + 4 >> 2] = i;
                        r = e + 16 | 0;
                        a[r >> 2] = t;
                        a[r + 4 >> 2] = i;
                        r = e + 72 | 0;
                        a[r >> 2] = t;
                        a[r + 4 >> 2] = i;
                        e = e + 80 | 0;
                        a[e >> 2] = t;
                        a[e + 4 >> 2] = i;
                        return
                    }

                    function ST(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        o = e + 8 | 0;
                        r = o;
                        r = OP(a[r >> 2] | 0, a[r + 4 >> 2] | 0, t, i) | 0;
                        n = P;
                        s = e + 48 | 0;
                        a[s >> 2] = r;
                        a[s + 4 >> 2] = n;
                        s = e + 56 | 0;
                        u = s;
                        h = a[u + 4 >> 2] | 0;
                        if (h >>> 0 < n >>> 0 | ((h | 0) == (n | 0) ? (a[u >> 2] | 0) >>> 0 < r >>> 0 : 0)) {
                            h = s;
                            a[h >> 2] = r;
                            a[h + 4 >> 2] = n
                        }
                        h = e + 64 | 0;
                        u = h;
                        u = aM(a[u >> 2] | 0, a[u + 4 >> 2] | 0, r | 0, n | 0) | 0;
                        a[h >> 2] = u;
                        a[h + 4 >> 2] = P;
                        h = o;
                        a[h >> 2] = t;
                        a[h + 4 >> 2] = i;
                        h = e + 88 | 0;
                        a[h >> 2] = 0;
                        a[h + 4 >> 2] = 0;
                        return
                    }

                    function PT() {
                        var e = 0;
                        Kr();
                        e = IT() | 0;
                        en();
                        if ((e | 0) == 1) {
                            PP(0, 0);
                            PP(0, 8)
                        }
                        return
                    }

                    function IT() {
                        var e = 0;
                        e = (a[2558] | 0) + -1 | 0;
                        a[2558] = e;
                        return (e | 0) == 0 | 0
                    }

                    function MT(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if ((a[2558] | 0) < 1) {
                                    sE();
                                    break
                                } else {
                                    CT(e);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function CT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        aE(e, 28);
                        t = a[1598] | 0;
                        a[e >> 2] = t;
                        i = 6416;
                        a[e + 4 >> 2] = OT(a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        i = 6424;
                        a[e + 8 >> 2] = OT(a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        i = 6440;
                        a[e + 16 >> 2] = OT(a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        i = 6448;
                        a[e + 20 >> 2] = OT(a[i >> 2] | 0, a[i + 4 >> 2] | 0) | 0;
                        if (t | 0) {
                            i = 6432;
                            i = dM(a[i >> 2] | 0, a[i + 4 >> 2] | 0, t | 0, 0) | 0;
                            a[e + 12 >> 2] = OT(i, P) | 0;
                            i = 6456;
                            i = dM(a[i >> 2] | 0, a[i + 4 >> 2] | 0, t | 0, 0) | 0;
                            a[e + 24 >> 2] = OT(i, P) | 0
                        }
                        return
                    }

                    function OT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = fM(e | 0, t | 0, 1e6, 0) | 0;
                        t = dM(t | 0, P | 0, 1e6, 0) | 0;
                        return t | 0
                    }

                    function RT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 112 | 0;
                        i = n;
                        r = i;
                        t = r + 104 | 0;
                        do {
                            a[r >> 2] = a[e >> 2];
                            r = r + 4 | 0;
                            e = e + 4 | 0
                        } while ((r | 0) < (t | 0));
                        a[i >> 2] = 2;
                        vy(i);
                        ww();
                        a[2559] = ~~(1.0e3 / +h[i + 4 >> 2]);
                        FT();
                        a[2560] = 1;
                        p = n;
                        return
                    }

                    function DT(e) {
                        e = e | 0;
                        var t = 0.0;
                        e = p;
                        p = p + 16 | 0;
                        t = +Se(e | 0) * 1.0e6;
                        P = +M(t) >= 1.0 ? t > 0.0 ? ~~+$(+I(t / 4294967296.0), 4294967295.0) >>> 0 : ~~+j((t - +(~~t >>> 0)) / 4294967296.0) >>> 0 : 0;
                        p = e;
                        return ~~t >>> 0 | 0
                    }

                    function FT() {
                        a[2561] = It(8, 10, a[2559] | 0) | 0;
                        return
                    }

                    function BT() {
                        if (a[2560] | 0 ? (Qv(), a[2562] | 0) : 0) Yt();
                        return
                    }

                    function NT() {
                        LT();
                        aE(10252, 32);
                        dw();
                        return
                    }

                    function LT() {
                        Et(9, a[2561] | 0) | 0;
                        a[2561] = 0;
                        return
                    }

                    function UT() {
                        if (a[2560] | 0 ? ct() | 0 : 0) a[2560] = 0;
                        return
                    }

                    function VT() {
                        var e = 0,
                            t = 0;
                        if ((a[2560] | 0) == 0 ? je() | 0 : 0) {
                            a[2560] = 1;
                            t = Fx() | 0;
                            e = P;
                            Ey(0, 0);
                            rm();
                            Ey(t, e)
                        }
                        return
                    }

                    function XT() {
                        a[2562] = 11;
                        return
                    }

                    function jT(e) {
                        e = e | 0;
                        return (SF(0, cs(e) | 0) | 0) & 65535 | 0
                    }

                    function GT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = jT(e) | 0;
                        do {
                            if ((r | 0) != 65535) {
                                e = Bf(t) | 0;
                                if (!e) {
                                    sE();
                                    break
                                } else {
                                    tt(r | 0, a[e + 4 >> 2] | 0, i | 0);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function $T(e, t) {
                        e = e | 0;
                        t = t | 0;
                        ve(e | 0, t | 0);
                        return
                    }

                    function HT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (e >>> 0 <= 7 ? (i = 10252 + (e << 2) | 0, (a[i >> 2] | 0) <= 0) : 0) {
                            t = _e(a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                            a[i >> 2] = t;
                            $T(e, t)
                        }
                        return
                    }

                    function WT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (e >>> 0 <= 7 ? (t = 10252 + (e << 2) | 0, i = a[t >> 2] | 0, i | 0) : 0) {
                            xe(e | 0, i | 0);
                            ye(a[t >> 2] | 0);
                            a[t >> 2] = 0
                        }
                        return
                    }

                    function YT(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        u = p;
                        p = p + 16 | 0;
                        i = u + 8 | 0;
                        r = u + 4 | 0;
                        n = u;
                        o = t;
                        h = o + 100 | 0;
                        do {
                            a[o >> 2] = 0;
                            o = o + 4 | 0
                        } while ((o | 0) < (h | 0));
                        if ((e >>> 0 <= 7 ? (s = a[10252 + (e << 2) >> 2] | 0, s | 0) : 0) ? Ee(s | 0, i | 0, r | 0, n | 0) | 0 : 0) {
                            a[t >> 2] = 2;
                            h = a[i >> 2] | 0;
                            a[t + 8 >> 2] = h;
                            a[t + 4 >> 2] = h;
                            h = a[r >> 2] | 0;
                            a[t + 40 >> 2] = h;
                            a[t + 36 >> 2] = h;
                            h = a[n >> 2] | 0;
                            a[t + 72 >> 2] = h;
                            a[t + 68 >> 2] = h
                        }
                        p = u;
                        return
                    }

                    function zT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        if (!e) {
                            a[t >> 2] = 0;
                            a[t + 4 >> 2] = 8;
                            a[t + 8 >> 2] = 2;
                            a[t + 12 >> 2] = 0;
                            e = t
                        }
                        t = qT(e) | 0;
                        p = i;
                        return t | 0
                    }

                    function qT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        aE(i, 4);
                        t = e + 4 | 0;
                        a[i >> 2] = a[t >> 2];
                        i = kw(i) | 0;
                        if ((i | 0) >= 0 ? (r = JT(e + 8 | 0) | 0, (r | 0) >= 0) : 0) e = (G(a[t >> 2] | 0, r) | 0) + i | 0;
                        else e = -1;
                        p = n;
                        return e | 0
                    }

                    function JT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        r = p;
                        p = p + 48 | 0;
                        n = r + 20 | 0;
                        i = r + 16 | 0;
                        t = r;
                        a[t >> 2] = 0;
                        a[t + 4 >> 2] = 0;
                        a[t + 8 >> 2] = 0;
                        a[t + 12 >> 2] = 0;
                        a[n + 16 >> 2] = 0;
                        a[n + 4 >> 2] = a[e >> 2];
                        a[n + 12 >> 2] = 192e3;
                        a[n + 8 >> 2] = 1;
                        a[n >> 2] = a[e + 4 >> 2];
                        t = Tw(n, t) | 0;
                        if ((t | 0) < 0) e = -1;
                        else {
                            a[i >> 2] = a[e >> 2];
                            e = QT(i) | 0;
                            e = (e | 0) < 0 ? -1 : e + t | 0
                        }
                        p = r;
                        return e | 0
                    }

                    function QT(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        t = p;
                        p = p + 16 | 0;
                        r = t + 4 | 0;
                        i = t;
                        aE(i, 4);
                        a[i >> 2] = a[e >> 2];
                        qP(r);
                        e = Ew(a[r >> 2] | 0, i) | 0;
                        p = t;
                        return e | 0
                    }

                    function ZT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        r = o;
                        if (!e) {
                            a[r >> 2] = 0;
                            a[r + 4 >> 2] = 8;
                            a[r + 8 >> 2] = 2;
                            a[r + 12 >> 2] = 0;
                            e = r
                        }
                        n = zT(e) | 0;
                        do {
                            if ((n | 0) >= 0) {
                                if ((t | 0) == 0 & (i | 0) == 0) {
                                    r = oi(n) | 0;
                                    s = r;
                                    i = n
                                } else {
                                    s = 0;
                                    r = t
                                }
                                if ((r | 0) == 0 | (i | 0) < (n | 0)) {
                                    sE();
                                    if (!s) {
                                        e = 0;
                                        break
                                    }
                                    si(s);
                                    e = 0;
                                    break
                                }
                                e = KT(e, r, i) | 0;
                                if (e | 0) {
                                    a[e + 48 >> 2] = s;
                                    eo();
                                    Iw(e);
                                    so();
                                    break
                                }
                                if (s) {
                                    si(s);
                                    e = 0
                                } else e = 0
                            } else e = 0
                        } while (0);
                        p = o;
                        return e | 0
                    }

                    function KT(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 32 | 0;
                        r = f + 20 | 0;
                        h = f;
                        do {
                            if ((qT(e) | 0) <= (i | 0)) {
                                aE(r, 4);
                                u = e + 4 | 0;
                                a[r >> 2] = a[u >> 2];
                                n = kw(r) | 0;
                                i = Cw(r, t, n) | 0;
                                if (i) {
                                    o = e + 8 | 0;
                                    s = JT(o) | 0;
                                    n = n + t | 0;
                                    t = 0;
                                    while (1) {
                                        r = a[u >> 2] | 0;
                                        if ((t | 0) >= (r | 0)) break;
                                        r = eE(o, n, s) | 0;
                                        if (!r) {
                                            l = 7;
                                            break
                                        }
                                        Ow(i, r);
                                        n = n + s | 0;
                                        t = t + 1 | 0
                                    }
                                    if ((l | 0) == 7) r = a[u >> 2] | 0;
                                    if ((t | 0) == (r | 0)) {
                                        a[h + 16 >> 2] = 0;
                                        a[h + 4 >> 2] = a[o >> 2];
                                        a[h + 12 >> 2] = 384e3;
                                        a[h >> 2] = 1;
                                        a[h + 8 >> 2] = 1;
                                        Rw(i, a[e >> 2] | 0, h);
                                        break
                                    } else {
                                        NG(i);
                                        i = 0;
                                        break
                                    }
                                } else i = 0
                            } else {
                                sE();
                                i = 0
                            }
                        } while (0);
                        p = f;
                        return i | 0
                    }

                    function eE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 48 | 0;
                        s = f + 20 | 0;
                        l = f + 16 | 0;
                        o = f;
                        a[o >> 2] = 0;
                        a[o + 4 >> 2] = 0;
                        a[o + 8 >> 2] = 0;
                        a[o + 12 >> 2] = 0;
                        u = JT(e) | 0;
                        do {
                            if ((u | 0) >= 0 ? (a[s + 16 >> 2] = 0, a[s + 4 >> 2] = a[e >> 2], a[s + 12 >> 2] = 192e3, a[s + 8 >> 2] = 1, a[s >> 2] = a[e + 4 >> 2], h = Tw(s, o) | 0, (h | 0) >= 0) : 0) {
                                if ((t | 0) == 0 & (i | 0) == 0) {
                                    r = oi(u) | 0;
                                    n = r;
                                    i = u
                                } else {
                                    n = t;
                                    r = 0
                                }
                                if ((i | 0) < (u | 0) | (n | 0) == 0) {
                                    sE();
                                    if (!r) {
                                        t = 0;
                                        break
                                    }
                                    si(r);
                                    t = 0;
                                    break
                                }
                                t = Dw(s, o, n, h) | 0;
                                if (t | 0) {
                                    a[l >> 2] = a[e >> 2];
                                    tE(t, l, h + n | 0, i - h | 0);
                                    a[t + 28 >> 2] = r;
                                    break
                                }
                                if (r) {
                                    si(r);
                                    t = 0
                                } else t = 0
                            } else t = 0
                        } while (0);
                        p = f;
                        return t | 0
                    }

                    function tE(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        n = p;
                        p = p + 16 | 0;
                        o = n + 4 | 0;
                        s = n;
                        aE(s, 4);
                        a[s >> 2] = a[t >> 2];
                        qP(o);
                        Fw(e, a[o >> 2] | 0, s, i, r);
                        iE(a[(a[a[e + 236 >> 2] >> 2] | 0) + 4 >> 2] | 0, a[(a[e + 40 >> 2] | 0) + 4 >> 2] | 0);
                        p = n;
                        return
                    }

                    function iE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Ze(e | 0, t | 0);
                        return
                    }

                    function rE(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            a = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        i = bI(e) | 0;
                        t = 0;
                        a = 0;
                        s = 0;
                        while (1) {
                            if (t >>> 0 >= i >>> 0) {
                                o = 5;
                                break
                            }
                            n = (r[e + t >> 0] | 0) + -48 | 0;
                            if (n >>> 0 > 10) {
                                t = 0;
                                break
                            }
                            u = fM(a | 0, s | 0, 10, 0) | 0;
                            n = aM(u | 0, P | 0, n | 0, 0) | 0;
                            t = t + 1 | 0;
                            a = n;
                            s = P
                        }
                        if ((o | 0) == 5) {
                            WP(a, s);
                            t = 1
                        }
                        return t | 0
                    }

                    function nE(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (t >>> 0 >= r >>> 0) bM(e | 0, i | 0, r | 0) | 0;
                        return
                    }

                    function aE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        yM(e | 0, 0, t | 0) | 0;
                        return
                    }

                    function sE() {
                        oE(0, 4525);
                        return
                    }

                    function oE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        uE(e, t);
                        return
                    }

                    function uE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        hE();
                        e = (e | 0) == 1 ? 10288 : 10292;
                        a[e >> 2] = (a[e >> 2] | 0) + 1;
                        lE(t);
                        return
                    }

                    function hE() {
                        a[2574] = 4430;
                        return
                    }

                    function lE(e) {
                        e = e | 0;
                        if (a[2571] | 0) Gt(e, 0, 0, 0);
                        return
                    }

                    function fE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (t >>> 0 >= 16)
                            if (!(QI(e, 4884) | 0)) e = 1;
                            else e = (QI(e, 4889) | 0) == 0 & 1;
                        else e = 0;
                        return e | 0
                    }

                    function cE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (!(fE(e, t) | 0)) e = -1;
                        else {
                            t = (s[e + 9 >> 0] | 0) << 8 | (s[e + 8 >> 0] | 0) | (s[e + 10 >> 0] | 0) << 16 | (s[e + 11 >> 0] | 0) << 24;
                            i = (G(t, s[e + 6 >> 0] | 0) | 0) + 16 | 0;
                            e = i + (G(t + 1 | 0, s[e + 5 >> 0] | 0) | 0) | 0
                        }
                        return e | 0
                    }

                    function dE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(fE(e, t) | 0)) e = 0;
                        else e = (s[e + 9 >> 0] | 0) << 8 | (s[e + 8 >> 0] | 0) | (s[e + 10 >> 0] | 0) << 16 | (s[e + 11 >> 0] | 0) << 24;
                        return e | 0
                    }

                    function pE(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (!(fE(e, t) | 0)) e = 0;
                        else e = vE(e, i, r) | 0;
                        return e | 0
                    }

                    function vE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            o = 0;
                        if ((t | 0) < 0) e = 0;
                        else {
                            n = (s[e + 13 >> 0] | 0) << 8 | (s[e + 12 >> 0] | 0);
                            r = mE(e, t) | 0;
                            o = n + -1 | 0;
                            o = aM(r | 0, P | 0, o | 0, ((o | 0) < 0) << 31 >> 31 | 0) | 0;
                            r = P;
                            n = cM(o | 0, r | 0, n | 0, 0) | 0;
                            n = sM(o | 0, r | 0, n | 0, P | 0) | 0;
                            r = P;
                            o = i + 8 | 0;
                            a[o >> 2] = n;
                            a[o + 4 >> 2] = r;
                            o = mE(e, t + 1 | 0) | 0;
                            r = sM(o | 0, P | 0, n | 0, r | 0) | 0;
                            a[i + 4 >> 2] = r;
                            a[i >> 2] = _E(e, t) | 0;
                            e = 1
                        }
                        return e | 0
                    }

                    function mE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            a = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        n = e + 16 + (G((s[e + 9 >> 0] | 0) << 8 | (s[e + 8 >> 0] | 0) | (s[e + 10 >> 0] | 0) << 16 | (s[e + 11 >> 0] | 0) << 24, s[e + 6 >> 0] | 0) | 0) | 0;
                        i = r[e + 5 >> 0] | 0;
                        e = n + (G(i & 255, t) | 0) | 0;
                        switch (i << 24 >> 24) {
                            case 2:
                                {
                                    t = 0;e = (s[e + 1 >> 0] | 0) << 8 | (s[e >> 0] | 0);
                                    break
                                }
                            case 4:
                                {
                                    t = 0;e = (s[e + 1 >> 0] | 0) << 8 | (s[e >> 0] | 0) | (s[e + 2 >> 0] | 0) << 16 | (s[e + 3 >> 0] | 0) << 24;
                                    break
                                }
                            case 8:
                                {
                                    u = s[e >> 0] | 0;h = mM(s[e + 1 >> 0] | 0 | 0, 0, 8) | 0;t = P;o = mM(s[e + 2 >> 0] | 0 | 0, 0, 16) | 0;t = t | P;a = mM(s[e + 3 >> 0] | 0 | 0, 0, 24) | 0;t = t | P | (s[e + 4 >> 0] | 0);i = mM(s[e + 5 >> 0] | 0 | 0, 0, 40) | 0;t = t | P;n = mM(s[e + 6 >> 0] | 0 | 0, 0, 48) | 0;t = t | P;e = mM(s[e + 7 >> 0] | 0 | 0, 0, 56) | 0;t = t | P;e = h | u | o | a | i | n | e;
                                    break
                                }
                            default:
                                {
                                    t = 0;e = 0
                                }
                        }
                        P = t;
                        return e | 0
                    }

                    function _E(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            a = 0;
                        i = e + 16 | 0;
                        a = r[e + 6 >> 0] | 0;
                        e = a & 255;
                        switch (a << 24 >> 24) {
                            case 2:
                                {
                                    t = i + (G(e, t) | 0) | 0;e = (s[t + 1 >> 0] | 0) << 8;t = s[t >> 0] | 0;n = 4;
                                    break
                                }
                            case 4:
                                {
                                    t = i + (G(e, t) | 0) | 0;e = (s[t + 1 >> 0] | 0) << 8 | (s[t >> 0] | 0) | (s[t + 2 >> 0] | 0) << 16;t = (s[t + 3 >> 0] | 0) << 24;n = 4;
                                    break
                                }
                            default:
                                e = 0
                        }
                        if ((n | 0) == 4) e = e | t;
                        return e | 0
                    }

                    function bE(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (!(fE(e, t) | 0)) e = 0;
                        else e = vE(e, gE(e, i) | 0, r) | 0;
                        return e | 0
                    }

                    function gE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            a = 0,
                            o = 0,
                            u = 0;
                        e: do {
                            if ((t | 0) < 0) i = -1;
                            else {
                                i = 0;
                                u = ((s[e + 9 >> 0] | 0) << 8 | (s[e + 8 >> 0] | 0) | (s[e + 10 >> 0] | 0) << 16 | (s[e + 11 >> 0] | 0) << 24) + -1 | 0;
                                while (1) {
                                    o = i;
                                    while (1) {
                                        n = o & 65535;
                                        r = (u + n | 0) / 2 | 0;
                                        i = r & 65535;
                                        a = t - (_E(e, i) | 0) | 0;
                                        if (!a) break e;
                                        if ((u | 0) <= (n | 0)) {
                                            i = -1;
                                            break e
                                        }
                                        if ((a | 0) < 0) break;
                                        else o = (r & 65535) + 1 << 16 >> 16
                                    }
                                    if (i) {
                                        if ((i | 0) == (n | 0)) {
                                            i = -1;
                                            break e
                                        }
                                        r = r + 65535 | 0
                                    }
                                    i = o;
                                    u = r & 65535
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function yE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(fE(e, t) | 0)) e = 0;
                        else e = ((s[e + 15 >> 0] | 0) << 8 | (s[e + 14 >> 0] | 0)) & 65535;
                        return e | 0
                    }

                    function AE(e, t, i, u, h, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0;
                        c = t + 8 | 0;
                        a[e + 4 >> 2] = c;
                        m = c + ((wE(t + 10 | 0) | 0) & 65535) | 0;
                        a[e + 8 >> 2] = m;
                        a[e + 12 >> 2] = c + (xE(t + 12 | 0) | 0);
                        a[e + 16 >> 2] = c + (xE(t + 16 | 0) | 0);
                        f = wE(t + 24 | 0) | 0;
                        v = e + 24 | 0;
                        n[v >> 1] = f;
                        a[e + 20 >> 2] = (wE(t + 26 | 0) | 0) & 65535;
                        a[e >> 2] = xE(t + 28 | 0) | 0;
                        a[e + 28 >> 2] = m;
                        m = e + 36 | 0;
                        a[m >> 2] = u;
                        p = e + 40 | 0;
                        a[p >> 2] = h;
                        d = e + 32 | 0;
                        a[d >> 2] = l;
                        e: do {
                            if ((f & 65535) > (i & 65535)) {
                                sE();
                                e = 0
                            } else {
                                u = 0;
                                l = 0;
                                h = t + 32 | 0;
                                while (1) {
                                    if (l >>> 0 >= (f & 65535) >>> 0) break e;
                                    i = s[h >> 0] | 0;
                                    r[(a[d >> 2] | 0) + l >> 0] = i & 15;
                                    h = (i & 16 | 0) == 0 ? h + 1 | 0 : h + 5 | 0;
                                    do {
                                        if (!(i & 32)) {
                                            n[(a[p >> 2] | 0) + (l << 1) >> 1] = 0;
                                            f = (a[m >> 2] | 0) + (l << 1) | 0;
                                            if (!(i & 64)) {
                                                n[f >> 1] = -1;
                                                break
                                            } else {
                                                n[f >> 1] = u;
                                                u = (o[2844 + ((s[(a[d >> 2] | 0) + l >> 0] | 0) << 1) >> 1] | 0) + (u & 65535) & 65535;
                                                break
                                            }
                                        } else {
                                            n[(a[p >> 2] | 0) + (l << 1) >> 1] = h - c;
                                            h = h + (o[2844 + ((s[(a[d >> 2] | 0) + l >> 0] | 0) << 1) >> 1] | 0) | 0;
                                            n[(a[m >> 2] | 0) + (l << 1) >> 1] = -1
                                        }
                                    } while (0);
                                    l = l + 1 | 0;
                                    f = n[v >> 1] | 0
                                }
                            }
                        } while (0);
                        return e | 0
                    }

                    function wE(e) {
                        e = e | 0;
                        return ((s[e >> 0] | 0) << 8 | (s[e + 1 >> 0] | 0)) & 65535 | 0
                    }

                    function xE(e) {
                        e = e | 0;
                        return (s[e + 1 >> 0] | 0) << 16 | (s[e >> 0] | 0) << 24 | (s[e + 2 >> 0] | 0) << 8 | (s[e + 3 >> 0] | 0) | 0
                    }

                    function kE(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            a = 0,
                            o = 0,
                            u = 0;
                        a = mM(s[e >> 0] | 0 | 0, 0, 56) | 0;
                        u = P;
                        o = mM(s[e + 1 >> 0] | 0 | 0, 0, 48) | 0;
                        u = P | u;
                        n = mM(s[e + 2 >> 0] | 0 | 0, 0, 40) | 0;
                        u = u | P | (s[e + 3 >> 0] | 0);
                        r = mM(s[e + 4 >> 0] | 0 | 0, 0, 24) | 0;
                        u = u | P;
                        i = mM(s[e + 5 >> 0] | 0 | 0, 0, 16) | 0;
                        u = u | P;
                        t = mM(s[e + 6 >> 0] | 0 | 0, 0, 8) | 0;
                        P = u | P;
                        return o | a | n | r | i | t | (s[e + 7 >> 0] | 0) | 0
                    }

                    function TE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0;
                        s = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                        if (!(s << 16 >> 16)) {
                            i = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                            if (i << 16 >> 16 == -1) i = 0;
                            else {
                                i = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) + (i & 65535) | 0;
                                o = 5
                            }
                        } else {
                            i = (a[e + 4 >> 2] | 0) + (s & 65535) | 0;
                            o = 5
                        }
                        if ((o | 0) == 5) i = r[i >> 0] | 0;
                        return i | 0
                    }

                    function EE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        r = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                        if (!(r << 16 >> 16)) {
                            i = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                            if (i << 16 >> 16 == -1) i = 0;
                            else {
                                i = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) + (i & 65535) | 0;
                                s = 5
                            }
                        } else {
                            i = (a[e + 4 >> 2] | 0) + (r & 65535) | 0;
                            s = 5
                        }
                        if ((s | 0) == 5) i = wE(i) | 0;
                        return i | 0
                    }

                    function SE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        r = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                        if (!(r << 16 >> 16)) {
                            i = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                            if (i << 16 >> 16 == -1) i = 0;
                            else {
                                i = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) + (i & 65535) | 0;
                                s = 5
                            }
                        } else {
                            i = (a[e + 4 >> 2] | 0) + (r & 65535) | 0;
                            s = 5
                        }
                        if ((s | 0) == 5) i = xE(i) | 0;
                        return i | 0
                    }

                    function PE(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var s = 0;
                        s = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                        do {
                            if (s << 16 >> 16 == -1) {
                                t = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                                if (!(t << 16 >> 16)) {
                                    h[r >> 2] = 0.0;
                                    break
                                } else {
                                    a[r >> 2] = xE((a[e + 4 >> 2] | 0) + (t & 65535) | 0) | 0;
                                    break
                                }
                            } else a[r >> 2] = xE((a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) + (s & 65535) | 0) | 0
                        } while (0);
                        return
                    }

                    function IE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        r = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                        if (!(r << 16 >> 16)) {
                            i = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                            if (i << 16 >> 16 == -1) i = 0;
                            else {
                                i = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t) | 0) + (i & 65535) | 0;
                                s = 5
                            }
                        } else {
                            i = (a[e + 4 >> 2] | 0) + (r & 65535) | 0;
                            s = 5
                        }
                        if ((s | 0) == 5) {
                            s = a[e + 12 >> 2] | 0;
                            i = s + (xE(i) | 0) | 0
                        }
                        return i | 0
                    }

                    function ME(e, t, i, r, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0;
                        o = n[(a[e + 40 >> 2] | 0) + (i << 1) >> 1] | 0;
                        do {
                            if (!(o << 16 >> 16)) {
                                i = n[(a[e + 36 >> 2] | 0) + (i << 1) >> 1] | 0;
                                if (i << 16 >> 16 == -1) {
                                    a[r >> 2] = 0;
                                    a[s >> 2] = 0;
                                    break
                                } else {
                                    o = i & 65535;
                                    u = a[e + 8 >> 2] | 0;
                                    i = e + 20 | 0;
                                    a[s >> 2] = xE(u + (G(a[i >> 2] | 0, t) | 0) + o + 4 | 0) | 0;
                                    s = a[e + 16 >> 2] | 0;
                                    a[r >> 2] = s + (xE(u + (G(a[i >> 2] | 0, t) | 0) + o | 0) | 0);
                                    break
                                }
                            } else {
                                u = (a[e + 4 >> 2] | 0) + (o & 65535) | 0;
                                a[s >> 2] = xE(u + 4 | 0) | 0;
                                s = a[e + 16 >> 2] | 0;
                                a[r >> 2] = s + (xE(u) | 0)
                            }
                        } while (0);
                        return
                    }

                    function CE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        r[t >> 0] = (e & 65535) >>> 8;
                        r[t + 1 >> 0] = e;
                        return
                    }

                    function OE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        r[t >> 0] = e >>> 24;
                        r[t + 1 >> 0] = e >>> 16;
                        r[t + 2 >> 0] = e >>> 8;
                        r[t + 3 >> 0] = e;
                        return
                    }

                    function RE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        n = vM(e | 0, t | 0, 56) | 0;
                        r[i >> 0] = n;
                        n = vM(e | 0, t | 0, 48) | 0;
                        r[i + 1 >> 0] = n;
                        n = vM(e | 0, t | 0, 40) | 0;
                        r[i + 2 >> 0] = n;
                        r[i + 3 >> 0] = t;
                        n = vM(e | 0, t | 0, 24) | 0;
                        r[i + 4 >> 0] = n;
                        n = vM(e | 0, t | 0, 16) | 0;
                        r[i + 5 >> 0] = n;
                        t = vM(e | 0, t | 0, 8) | 0;
                        r[i + 6 >> 0] = t;
                        r[i + 7 >> 0] = e;
                        return
                    }

                    function DE(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        CE(n, e + (G(t, r) | 0) + (i & 65535) | 0);
                        return
                    }

                    function FE(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        r = e + (G(t, r) | 0) | 0;
                        CE(a, r + (o[i + (n << 1) >> 1] | 0) | 0);
                        return
                    }

                    function BE(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = +s;
                        r = e + (G(t, r) | 0) | 0;
                        OE((h[c >> 2] = s, a[c >> 2] | 0), r + (o[i + (n << 1) >> 1] | 0) | 0);
                        return
                    }

                    function NE() {
                        oE(1, 4894);
                        return
                    }

                    function LE(e, t, i, r, n, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        return r$[e & 1](t, i, r, n, a, s) | 0
                    }

                    function UE(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        n = r;
                        t = e$[e & 31](t, n) | 0;
                        a[i >> 2] = ((((a[n >> 2] | 0) + 7 | 0) / 8 | 0) << 3) + 16;
                        p = r;
                        return t | 0
                    }

                    function VE(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        o = u;
                        a[n >> 2] = 0;
                        s = e$[a[e + 8 >> 2] & 31](t, o) | 0;
                        if (!s) {
                            a[o >> 2] = (((a[o >> 2] | 0) + 7 | 0) / 8 | 0) << 3;
                            aE(i, r);
                            s = i + 7 & -8;
                            i = s;
                            s = i$[a[e + 12 >> 2] & 7](t, s + 8 | 0, a[o >> 2] | 0, i + 4 | 0) | 0;
                            if (!s) {
                                a[i >> 2] = e;
                                a[n >> 2] = i;
                                s = 0
                            }
                        }
                        p = u;
                        return s | 0
                    }

                    function XE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        KG[e & 63](t) | 0;
                        return
                    }

                    function jE(e, t, i, r, n, a, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        return n$[e & 1](t, i, r, n, a, s, o, u, h) | 0
                    }

                    function GE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[(a[e >> 2] | 0) + 24 >> 2] | 0;
                        if (i | 0) e$[i & 31](a[e + 4 >> 2] | 0, t) | 0;
                        return
                    }

                    function $E(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[(a[e >> 2] | 0) + 28 >> 2] | 0;
                        if (t | 0) KG[t & 63](a[e + 4 >> 2] | 0) | 0;
                        return
                    }

                    function HE(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[(a[e >> 2] | 0) + 36 >> 2] | 0;
                        if (t | 0) KG[t & 63](a[e + 4 >> 2] | 0) | 0;
                        return
                    }

                    function WE(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[(a[e >> 2] | 0) + 40 >> 2] | 0;
                        if (i | 0) e$[i & 31](a[e + 4 >> 2] | 0, t) | 0;
                        return
                    }

                    function YE(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function zE(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        return
                    }

                    function qE(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        return
                    }

                    function JE(e) {
                        e = e | 0;
                        QE(e);
                        return
                    }

                    function QE(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        return
                    }

                    function ZE(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function KE(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function eS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e >> 2] | 0;
                        if (!i) {
                            a[e >> 2] = t;
                            i = e + 4 | 0
                        } else {
                            a[t + 4 >> 2] = i;
                            i = e
                        }
                        a[i >> 2] = t;
                        t = e + 8 | 0;
                        a[t >> 2] = (a[t >> 2] | 0) + 1;
                        return
                    }

                    function tS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = e + 4 | 0;
                        i = a[r >> 2] | 0;
                        if (!i) i = e;
                        else {
                            a[t + 4 >> 2] = 0;
                            i = i + 4 | 0
                        }
                        a[i >> 2] = t;
                        a[r >> 2] = t;
                        r = e + 8 | 0;
                        a[r >> 2] = (a[r >> 2] | 0) + 1;
                        return
                    }

                    function iS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        i = a[e >> 2] | 0;
                        do {
                            if ((i | 0) == (t | 0)) {
                                i = t + 4 | 0;
                                t = a[i >> 2] | 0;
                                a[e >> 2] = t;
                                if (!t) a[e + 4 >> 2] = 0
                            } else {
                                ZE(i) | 0;
                                s = i;
                                while (1) {
                                    if (!s) {
                                        n = 9;
                                        break
                                    }
                                    r = s + 4 | 0;
                                    i = a[r >> 2] | 0;
                                    if ((i | 0) == (t | 0)) break;
                                    else s = i
                                }
                                if ((n | 0) == 9) {
                                    i = t + 4 | 0;
                                    break
                                }
                                i = t + 4 | 0;
                                a[r >> 2] = a[i >> 2];
                                r = e + 4 | 0;
                                if ((a[r >> 2] | 0) == (t | 0)) a[r >> 2] = s
                            }
                        } while (0);
                        a[i >> 2] = 0;
                        e = e + 8 | 0;
                        a[e >> 2] = (a[e >> 2] | 0) + -1;
                        return
                    }

                    function rS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[t >> 2] = a[e >> 2];
                        i = a[e >> 2] | 0;
                        if (i | 0) {
                            i = a[i + 4 >> 2] | 0;
                            a[e >> 2] = i;
                            if (!i) a[e + 4 >> 2] = 0;
                            a[(a[t >> 2] | 0) + 4 >> 2] = 0;
                            i = e + 8 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + -1
                        }
                        return
                    }

                    function nS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        r = a[e >> 2] | 0;
                        if ((a[r >> 2] | 0) == (t | 0)) {
                            a[i >> 2] = r;
                            s = a[(a[e >> 2] | 0) + 4 >> 2] | 0;
                            a[e >> 2] = s;
                            if (!s) {
                                a[e + 4 >> 2] = 0;
                                s = 9
                            } else s = 9
                        } else {
                            ZE(r) | 0;
                            while (1) {
                                if (!r) {
                                    n = 0;
                                    break
                                }
                                n = a[r + 4 >> 2] | 0;
                                if ((a[n >> 2] | 0) == (t | 0)) {
                                    n = r;
                                    break
                                } else r = n
                            }
                            r = n + 4 | 0;
                            a[i >> 2] = a[r >> 2];
                            a[r >> 2] = a[(a[r >> 2] | 0) + 4 >> 2];
                            r = a[i >> 2] | 0;
                            t = e + 4 | 0;
                            if ((r | 0) == (a[t >> 2] | 0)) {
                                a[t >> 2] = n;
                                s = 9
                            }
                        }
                        if ((s | 0) == 9) r = a[i >> 2] | 0;
                        if (r | 0) {
                            a[r + 4 >> 2] = 0;
                            s = e + 8 | 0;
                            a[s >> 2] = (a[s >> 2] | 0) + -1
                        }
                        return
                    }

                    function aS(e) {
                        e = e | 0;
                        sS(e);
                        return
                    }

                    function sS(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        return
                    }

                    function oS(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function uS(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function hS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = e + 4 | 0;
                        i = a[r >> 2] | 0;
                        if (!i) i = e;
                        else {
                            a[t + 4 >> 2] = 0;
                            a[t + 8 >> 2] = i;
                            i = i + 4 | 0
                        }
                        a[i >> 2] = t;
                        a[r >> 2] = t;
                        r = e + 8 | 0;
                        a[r >> 2] = (a[r >> 2] | 0) + 1;
                        return
                    }

                    function lS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        if ((a[e >> 2] | 0) != (t | 0)) {
                            i = t + 8 | 0;
                            r = a[i >> 2] | 0;
                            if (r) {
                                s = r + 4 | 0;
                                n = a[(a[s >> 2] | 0) + 4 >> 2] | 0;
                                a[s >> 2] = n;
                                s = e + 4 | 0;
                                n = (a[s >> 2] | 0) == (t | 0) ? s : n + 8 | 0;
                                s = 5
                            }
                        } else {
                            n = a[t + 4 >> 2] | 0;
                            a[e >> 2] = n;
                            i = t + 8 | 0;
                            n = (n | 0) == 0 ? e + 4 | 0 : n + 8 | 0;
                            r = 0;
                            s = 5
                        }
                        if ((s | 0) == 5) a[n >> 2] = r;
                        a[t + 4 >> 2] = 0;
                        a[i >> 2] = 0;
                        s = e + 8 | 0;
                        a[s >> 2] = (a[s >> 2] | 0) + -1;
                        return
                    }

                    function fS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        cS(e, t, i);
                        return
                    }

                    function cS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        n = r;
                        a[n >> 2] = t;
                        a[n + 4 >> 2] = i;
                        dS(10842, 0, e, n);
                        p = r;
                        return
                    }

                    function dS(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        t = p;
                        p = p + 16 | 0;
                        n = t;
                        a[n >> 2] = r;
                        pS(e, i, n);
                        p = t;
                        return
                    }

                    function pS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Mt(10, e | 0, t | 0, i | 0) | 0;
                        return
                    }

                    function vS() {
                        var e = 0;
                        hE();
                        a[2576] = 4578;
                        e = a[2571] | 0;
                        if ((e | 0) == 0 | (e | 0) == 3) a[2571] = 3;
                        else {
                            NE();
                            a[2571] = 3;
                            NE()
                        }
                        return
                    }

                    function mS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if ((ZI(i) | 0) >>> 0 < t >>> 0) iM(e, i, t + -1 | 0) | 0;
                        return
                    }

                    function _S() {
                        return (a[2571] | 0) != 0 | 0
                    }

                    function bS() {
                        gS(10798, 0, 20) | 0;
                        JE(10805 & -8);
                        return
                    }

                    function gS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        yM(e | 0, t & 255 | 0, i | 0) | 0;
                        return e | 0
                    }

                    function yS(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = r;
                        while (1) {
                            rS(e, t);
                            i = a[t >> 2] | 0;
                            if (!i) break;
                            XG(a[i >> 2] | 0)
                        }
                        aE(e, 12);
                        p = r;
                        return
                    }

                    function AS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(i, 0, 16) | 0;
                        i = i + 7 & -8;
                        zE(i);
                        a[i >> 2] = t;
                        tS(e, i);
                        return i | 0
                    }

                    function wS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        iS(e, t);
                        return
                    }

                    function xS(e) {
                        e = e | 0;
                        e = a[e >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            PB(a[e >> 2] | 0);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function kS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        gS(t, 0, i) | 0;
                        t = t + 7 & -8;
                        i = t;
                        a[i >> 2] = t + 12;
                        a[i + 4 >> 2] = e;
                        a[i + 8 >> 2] = 0;
                        return i | 0
                    }

                    function TS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = e + 8 | 0;
                        e: do {
                            if (t | 0) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (a[r >> 2] | 0)) break e;
                                    u$[t & 63](0, a[(a[e >> 2] | 0) + (i << 2) >> 2] | 0);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        a[r >> 2] = 0;
                        return
                    }

                    function ES(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + 8 | 0;
                        r = a[i >> 2] | 0;
                        if ((r | 0) < (a[e + 4 >> 2] | 0)) {
                            a[(a[e >> 2] | 0) + (r << 2) >> 2] = t;
                            a[i >> 2] = r + 1;
                            e = 1
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function SS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        r = e + 8 | 0;
                        n = a[r >> 2] | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (n | 0)) break;
                            if ((a[(a[e >> 2] | 0) + (i << 2) >> 2] | 0) == (t | 0)) break;
                            i = i + 1 | 0
                        }
                        if ((i | 0) != (n | 0)) {
                            while (1) {
                                t = i + 1 | 0;
                                if ((t | 0) >= (n | 0)) break;
                                s = a[e >> 2] | 0;
                                a[s + (i << 2) >> 2] = a[s + (t << 2) >> 2];
                                i = t
                            }
                            a[r >> 2] = n + -1
                        }
                        return
                    }

                    function PS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = a[e + 8 >> 2] | 0;
                        r = 0;
                        while (1) {
                            if ((r | 0) >= (n | 0)) break;
                            u$[i & 63](t, a[(a[e >> 2] | 0) + (r << 2) >> 2] | 0);
                            r = r + 1 | 0
                        }
                        return
                    }

                    function IS(e) {
                        e = +e;
                        return + +C(+e)
                    }

                    function MS(e) {
                        e = +e;
                        var t = 0.0;
                        t = e * e;
                        return +((1.0 - t / 6.0 * (1.0 - t / 20.0 * (1.0 - t / 42.0 * (1.0 - t / 72.0)))) * e)
                    }

                    function CS(e) {
                        e = +e;
                        e = e * e;
                        return +(1.0 - e * .5 * (1.0 - e / 12.0 * (1.0 - e / 30.0 * (1.0 - e / 56.0))))
                    }

                    function OS(e) {
                        e = +e;
                        return + +(~~((a[c >> 2] = (h[c >> 2] = e, a[c >> 2] | 0) & -2147483648 | 1056964608, +h[c >> 2]) + e) | 0)
                    }

                    function RS(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0.0;
                        if (!(t < 0.0)) {
                            if (t > 1.0) {
                                oE(0, 6005);
                                t = 1.0
                            }
                        } else {
                            oE(0, 5993);
                            t = 0.0
                        }
                        switch (e | 0) {
                            case 0:
                                break;
                            case 1:
                                {
                                    t = t * t;
                                    break
                                }
                            case 2:
                                {
                                    t = t * (2.0 - t);
                                    break
                                }
                            case 3:
                                {
                                    t = t * t * (3.0 - t * 2.0);
                                    break
                                }
                            case 4:
                                {
                                    i = t + -.5;t = i * (i * 2.0);t = (!(i <= 0.0) ? t : -t) + .5;
                                    break
                                }
                            default:
                                oE(0, 6017)
                        }
                        return +t
                    }

                    function DS(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        var r = 0.0;
                        if (!(t < 0.0)) {
                            if (t > 1.0) {
                                oE(0, 6041);
                                t = 1.0
                            }
                        } else {
                            oE(0, 6029);
                            t = 0.0
                        }
                        if (!(i < 0.0)) {
                            if (i > 2.0) {
                                oE(0, 6065);
                                i = 2.0
                            }
                        } else {
                            oE(0, 6053);
                            i = 0.0
                        }
                        e: do {
                            switch (e | 0) {
                                case 0:
                                    break;
                                case 1:
                                    if (!(i <= 1.0)) {
                                        t = t * t;
                                        t = t * (2.0 - i + t * (i + -1.0));
                                        break e
                                    } else {
                                        t = t * (1.0 - i + t * i);
                                        break e
                                    }
                                case 2:
                                    if (!(i <= 1.0)) {
                                        t = t * (2.0 - t);
                                        t = t * (t + (1.0 - t) * i);
                                        break e
                                    } else {
                                        t = t * ((1.0 - t) * i + 1.0);
                                        break e
                                    }
                                case 3:
                                    {
                                        if (i <= 1.0) {
                                            t = t * (1.0 - i + (3.0 - t * 2.0) * (t * i));
                                            break e
                                        }
                                        if (!(t <= .5)) {
                                            t = 1.0 - t;
                                            t = 1.0 - t * t * ((.5 - t) * (8.0 - i * 6.0) + 2.0);
                                            break e
                                        } else {
                                            t = t * t * ((.5 - t) * (8.0 - i * 6.0) + 2.0);
                                            break e
                                        }
                                    }
                                case 4:
                                    {
                                        e = t <= .5;
                                        if (!(i <= 1.0)) {
                                            t = t * 4.0 * (t + -1.0);
                                            r = t * .5;
                                            if (e) {
                                                t = r * (t - t * i - i);
                                                break e
                                            } else {
                                                t = 1.0 - r * (t - i - t * i);
                                                break e
                                            }
                                        } else if (e) {
                                            t = t * (i + 1.0 - t * (i * 2.0));
                                            break e
                                        } else {
                                            t = t + (i + (t * 2.0 + -3.0) * (t * i));
                                            break e
                                        }
                                    }
                                default:
                                    oE(0, 6077)
                            }
                        } while (0);
                        return +t
                    }

                    function FS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[i >> 2] = e;
                        a[i + 4 >> 2] = e;
                        a[i + 8 >> 2] = t;
                        return
                    }

                    function BS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        e = e + 4 | 0;
                        r = i + -1 + (a[e >> 2] | 0) | 0;
                        i = r - ((r >>> 0) % (i >>> 0) | 0) | 0;
                        a[e >> 2] = i + t;
                        return i | 0
                    }

                    function NS() {
                        if (!(a[2692] | 0)) a[2690] = 16;
                        else sE();
                        return
                    }

                    function LS() {
                        if (!(a[2692] | 0)) a[2691] = 33;
                        else sE();
                        return
                    }

                    function US(e) {
                        e = e | 0;
                        do {
                            if ((e | 0) >= 0)
                                if (!(a[2690] | 0)) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    e = $t(0, e) | 0;
                                    a[2692] = (a[2692] | 0) + 1;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function VS(e) {
                        e = e | 0;
                        if (!(a[2691] | 0)) sE();
                        else {
                            Ht(0, e);
                            a[2692] = (a[2692] | 0) + -1
                        }
                        return
                    }

                    function XS() {
                        return (a[2691] | 0) != 0 & (a[2690] | 0) != 0 & 1 | 0
                    }

                    function jS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = p;
                        p = p + 16 | 0;
                        r = i;
                        a[2577] = 4674;
                        FS(e, t, r);
                        t = BS(r, 16, 8) | 0;
                        a[t >> 2] = 123456789;
                        a[t + 4 >> 2] = 362436069;
                        a[t + 8 >> 2] = 521288629;
                        a[t + 12 >> 2] = 88675123;
                        p = i;
                        return t | 0
                    }

                    function GS(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        i = a[e >> 2] | 0;
                        t = e + 12 | 0;
                        r = a[t >> 2] | 0;
                        i = i << 11 ^ i;
                        n = e + 4 | 0;
                        a[e >> 2] = a[n >> 2];
                        e = e + 8 | 0;
                        a[n >> 2] = a[e >> 2];
                        a[e >> 2] = r;
                        e = r >>> 19 ^ r ^ i ^ i >>> 8;
                        a[t >> 2] = e;
                        return e | 0
                    }

                    function $S(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = G(t >>> 30 ^ t, 1812433253) | 0;
                        a[e >> 2] = t;
                        t = (G(t >>> 30 ^ t, 1812433253) | 0) + 1 | 0;
                        a[e + 4 >> 2] = t;
                        t = (G(t >>> 30 ^ t, 1812433253) | 0) + 2 | 0;
                        a[e + 8 >> 2] = t;
                        a[e + 12 >> 2] = (G(t >>> 30 ^ t, 1812433253) | 0) + 3;
                        return
                    }

                    function HS(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e;
                        i = t + 56 | 0;
                        do {
                            a[t >> 2] = 0;
                            t = t + 4 | 0
                        } while ((t | 0) < (i | 0));
                        return e | 0
                    }

                    function WS(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        a[e + 12 >> 2] = 0;
                        a[e + 16 >> 2] = 0;
                        a[e + 20 >> 2] = 0;
                        a[e + 24 >> 2] = 0;
                        r[e + 9 >> 0] = 1;
                        return e | 0
                    }

                    function YS(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0;
                        n = e + 16 + (t << 2) | 0;
                        s = a[n >> 2] | 0;
                        a[((s | 0) == 0 ? e + (t << 2) | 0 : s) >> 2] = i;
                        r[i + 11 >> 0] = t;
                        a[n >> 2] = i;
                        n = e + 32 + (t << 2) | 0;
                        a[n >> 2] = (a[n >> 2] | 0) + (a[i + 20 >> 2] | 0);
                        i = a[e + 48 >> 2] | 0;
                        if (i | 0) u$[i & 63](a[e + 52 >> 2] | 0, t);
                        return
                    }

                    function zS(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        a[e + 12 >> 2] = 0;
                        a[e + 16 >> 2] = 0;
                        a[e + 20 >> 2] = 0;
                        a[e + 24 >> 2] = 0;
                        a[e + 28 >> 2] = 0;
                        r[e + 9 >> 0] = 2;
                        return e | 0
                    }

                    function qS(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e;
                        i = t + 56 | 0;
                        do {
                            a[t >> 2] = 0;
                            t = t + 4 | 0
                        } while ((t | 0) < (i | 0));
                        r[e + 9 >> 0] = 8;
                        return e | 0
                    }

                    function JS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = e + (t << 2) | 0;
                        r = a[i >> 2] | 0;
                        if (r | 0) {
                            a[i >> 2] = a[r >> 2];
                            a[r >> 2] = 0;
                            if (!(a[i >> 2] | 0)) a[e + 16 + (t << 2) >> 2] = 0;
                            i = e + 32 + (t << 2) | 0;
                            a[i >> 2] = (a[i >> 2] | 0) - (a[r + 20 >> 2] | 0)
                        }
                        return r | 0
                    }

                    function QS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = s[t + 11 >> 0] | 0;
                        r = e + (i << 2) | 0;
                        a[t >> 2] = a[r >> 2];
                        n = e + 32 + (i << 2) | 0;
                        a[n >> 2] = (a[n >> 2] | 0) + (a[t + 20 >> 2] | 0);
                        a[r >> 2] = t;
                        if (!(a[t >> 2] | 0)) a[e + 16 + (i << 2) >> 2] = t;
                        return
                    }

                    function ZS(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = 0;
                        e = e + (t << 2) | 0;
                        while (1) {
                            e = a[e >> 2] | 0;
                            if (!e) break;
                            i = i + 1 | 0
                        }
                        return i | 0
                    }

                    function KS(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function eP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 48 >> 2] = 34;
                        a[e + 52 >> 2] = t;
                        return
                    }

                    function tP(e) {
                        e = e | 0;
                        r[e + 9 >> 0] = 0;
                        return
                    }

                    function iP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        o = e + 16 | 0;
                        u = e + 20 | 0;
                        r = (a[o >> 2] | 0) - (a[u >> 2] | 0) | 0;
                        if ((r | 0) > 0) {
                            h = e + 9 | 0;
                            n = 0 - r | 0;
                            r = 0;
                            while (1) {
                                if (r >>> 0 >= (s[h >> 0] | 0) >>> 0) break;
                                l = e + 24 + (r << 2) | 0;
                                a[l >> 2] = (a[l >> 2] | 0) + n;
                                r = r + 1 | 0
                            }
                            a[u >> 2] = 0;
                            a[o >> 2] = 0
                        }
                        a[e + 24 + (t << 2) >> 2] = i;
                        return
                    }

                    function rP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        n = e + 16 | 0;
                        o = e + 20 | 0;
                        i = (a[n >> 2] | 0) - (a[o >> 2] | 0) | 0;
                        e: do {
                            if ((i | 0) > 0) {
                                u = e + 9 | 0;
                                r = 0 - i | 0;
                                i = 0;
                                while (1) {
                                    if (i >>> 0 >= (s[u >> 0] | 0) >>> 0) break e;
                                    h = e + 24 + (i << 2) | 0;
                                    a[h >> 2] = (a[h >> 2] | 0) + r;
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        a[o >> 2] = t;
                        a[n >> 2] = t;
                        return
                    }

                    function nP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        r = e + 20 | 0;
                        i = a[r >> 2] | 0;
                        t = i >>> 0 < t >>> 0 ? i : t;
                        a[r >> 2] = i - t;
                        r = e + 9 | 0;
                        i = 0;
                        while (1) {
                            if (i >>> 0 >= (s[r >> 0] | 0) >>> 0) break;
                            n = e + 24 + (i << 2) | 0;
                            a[n >> 2] = (a[n >> 2] | 0) + t;
                            i = i + 1 | 0
                        }
                        return
                    }

                    function aP(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        yM(10440, 0, 156) | 0;
                        FS(10440, 156, i);
                        r = BS(i, 76, 8) | 0;
                        n = r;
                        t = n + 56 | 0;
                        do {
                            a[n >> 2] = a[e >> 2];
                            n = n + 4 | 0;
                            e = e + 4 | 0
                        } while ((n | 0) < (t | 0));
                        BS(i, 72, 1) | 0;
                        sP();
                        a[r + 56 >> 2] = 0;
                        p = s;
                        return
                    }

                    function sP() {
                        oP();
                        return
                    }

                    function oP() {
                        sE();
                        return
                    }

                    function uP(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        i = e + 68 | 0;
                        r = e + 64 | 0;
                        n = e + 16 | 0;
                        s = e + 20 | 0;
                        e: while (1) {
                            t = a[r >> 2] | 0;
                            while (1) {
                                if (t | 0) break e;
                                t = a[n >> 2] | 0;
                                if (!t) t = 0;
                                else break
                            }
                            a[i >> 2] = 1;
                            s$[t & 63](a[s >> 2] | 0)
                        }
                        a[i >> 2] = 1;
                        t = e + 56 | 0;
                        if (a[t >> 2] | 0) a[t >> 2] = 0;
                        t = e;
                        i = t + 76 | 0;
                        do {
                            a[t >> 2] = 0;
                            t = t + 4 | 0
                        } while ((t | 0) < (i | 0));
                        return
                    }

                    function hP(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 16 >> 2] | 0;
                        if (t | 0) s$[t & 63](a[e + 20 >> 2] | 0);
                        return
                    }

                    function lP(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function fP(e) {
                        e = e | 0;
                        cP(e);
                        return
                    }

                    function cP(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 112 | 0;
                        n = s + 56 | 0;
                        r = s;
                        i = a[2578] | 0;
                        do {
                            if (!i) {
                                dP();
                                aE(10316, 124);
                                a[2588] = 0;
                                i = a[e >> 2] | 0;
                                a[2609] = i;
                                if (i | 0) {
                                    a[2578] = (a[2578] | 0) + 1;
                                    break
                                }
                                aE(r, 56);
                                a[r + 24 >> 2] = 6089;
                                a[r >> 2] = 43;
                                e = e + 4 | 0;
                                t = a[e >> 2] | 0;
                                switch (t | 0) {
                                    case 0:
                                        {
                                            a[2599] = 10400;a[r + 8 >> 2] = 36;a[r + 16 >> 2] = 37;a[r + 12 >> 2] = 10400;a[r + 20 >> 2] = 10400;t = 0;
                                            break
                                        }
                                    case 1:
                                        {
                                            h[2606] = 60.0;h[2602] = 16.66666603088379;a[2603] = _P() | 0;a[r + 8 >> 2] = 38;a[r + 16 >> 2] = 0;a[r + 12 >> 2] = 10316;a[r + 20 >> 2] = 0;t = a[e >> 2] | 0;
                                            break
                                        }
                                    case 2:
                                        {
                                            a[r + 8 >> 2] = 39;a[r + 16 >> 2] = 0;a[r + 12 >> 2] = 10316;a[r + 20 >> 2] = 0;t = 2;
                                            break
                                        }
                                    default:
                                        {}
                                }
                                a[r + 44 >> 2] = 0;
                                a[2608] = t;
                                a[2607] = 0;
                                a[r + 48 >> 2] = 0;
                                a[r + 52 >> 2] = 0;
                                i = n;
                                t = r;
                                e = i + 56 | 0;
                                do {
                                    a[i >> 2] = a[t >> 2];
                                    i = i + 4 | 0;
                                    t = t + 4 | 0
                                } while ((i | 0) < (e | 0));
                                aP(n);
                                a[2598] = 0;
                                sE();
                                yP()
                            } else {
                                t = a[2609] | 0;
                                if ((t | 0) != (a[e >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                if ((t | 0) == 0 ? (a[2608] | 0) != (a[e + 4 >> 2] | 0) : 0) {
                                    sE();
                                    break
                                }
                                a[2578] = i + 1
                            }
                        } while (0);
                        p = s;
                        return
                    }

                    function dP() {
                        kP();
                        return
                    }

                    function pP(e) {
                        e = e | 0;
                        wP();
                        return 0
                    }

                    function vP(e) {
                        e = e | 0;
                        return
                    }

                    function mP(e) {
                        e = e | 0;
                        return
                    }

                    function _P() {
                        return ~~+Ct() >>> 0 | 0
                    }

                    function bP(e) {
                        e = e | 0;
                        var t = 0.0,
                            i = 0.0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        n = _P() | 0;
                        s = e + 96 | 0;
                        r = AP(a[s >> 2] | 0, n) | 0;
                        i = +h[e + 92 >> 2];
                        o = e + 100 | 0;
                        t = i - +(r >>> 0) - +h[o >> 2];
                        r = e + 104 | 0;
                        if (!(t <= 0.0)) e = 0;
                        else {
                            e = a[r >> 2] | 0;
                            u = e >>> 0 > 4;
                            t = u ? i : 0.0;
                            e = u ? 0 : e + 1 | 0
                        }
                        a[r >> 2] = e;
                        u = _P() | 0;
                        a[s >> 2] = u;
                        h[o >> 2] = +((AP(n, u) | 0) >>> 0) - (t > 1.0e3 ? 1.0e3 : t);
                        return
                    }

                    function gP(e) {
                        e = e | 0;
                        return
                    }

                    function yP() {
                        var e = 0;
                        e = a[2578] | 0;
                        if ((e | 0) == 1) {
                            e = a[2598] | 0;
                            if (e | 0) {
                                uP(e);
                                a[2598] = 0
                            }
                            if ((a[2599] | 0) != 0 & (a[2608] | 0) == 0) a[2599] = 0;
                            h[2606] = 60.0;
                            a[2607] = 0;
                            e = a[2578] | 0
                        }
                        a[2578] = e + -1;
                        if ((e | 0) < 1) sE();
                        return
                    }

                    function AP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return t - e | 0
                    }

                    function wP() {
                        var e = 0,
                            t = 0;
                        e: do {
                            if (xP() | 0) {
                                if ((a[2588] | 0) == 1) {
                                    e = 0;
                                    while (1) {
                                        if ((e | 0) == 9) break;
                                        a[10316 + (e << 2) >> 2] = a[10356 + (e << 2) >> 2];
                                        e = e + 1 | 0
                                    }
                                    a[2588] = 0;
                                    e = 0
                                } else e = 0;
                                while (1) {
                                    if ((e | 0) == 9) break e;
                                    t = a[10316 + (e << 2) >> 2] | 0;
                                    if (t | 0) a$[t & 15]();
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function xP() {
                        return (a[2578] | 0) != 0 | 0
                    }

                    function kP() {
                        TP();
                        return
                    }

                    function TP() {
                        a[2650] = 4788;
                        return
                    }

                    function EP() {
                        var e = 0;
                        e = (xP() | 0) == 0;
                        return (e ? 0 : a[2598] | 0) | 0
                    }

                    function SP() {
                        var e = 0;
                        do {
                            if (a[2578] | 0) {
                                e = a[2598] | 0;
                                if (!e) {
                                    wP();
                                    break
                                } else {
                                    hP(e);
                                    break
                                }
                            }
                        } while (0);
                        return
                    }

                    function PP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (xP() | 0) {
                            a[10356 + (t << 2) >> 2] = e;
                            a[2588] = 1;
                            if (!e)
                                do {
                                    SP()
                                } while ((a[2588] | 0) != 0)
                        } else sE();
                        return
                    }

                    function IP() {
                        var e = 0;
                        e = (xP() | 0) != 0;
                        return (a[2585] | 0) != 0 & e & 1 | 0
                    }

                    function MP() {
                        return ((a[2578] | 0) == 0 ? 0 : a[2607] | 0) | 0
                    }

                    function CP(e) {
                        e = +e;
                        do {
                            if (a[2578] | 0)
                                if (!(a[2607] | 0)) {
                                    h[2606] = e;
                                    h[2602] = 1.0e3 / e;
                                    a[2603] = _P() | 0;
                                    a[2607] = 1;
                                    break
                                } else {
                                    sE();
                                    break
                                }
                        } while (0);
                        return
                    }

                    function OP(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (r >>> 0 < t >>> 0 | (r | 0) == (t | 0) & i >>> 0 < e >>> 0) {
                            t = aM(i | 0, r | 0, 1, 0) | 0;
                            t = aM(t | 0, P | 0, ~e | 0, 0) | 0;
                            e = P
                        } else {
                            t = sM(i | 0, r | 0, e | 0, t | 0) | 0;
                            e = P
                        }
                        P = e;
                        return t | 0
                    }

                    function RP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        a[i >> 2] = 16;
                        r = t + -8 | 0;
                        t = 0;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            s = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1987014509) BP(n, s, i);
                            t = s + t | 0
                        }
                        return
                    }

                    function DP(e) {
                        e = e | 0;
                        return (s[e + 1 >> 0] | 0) << 16 | (s[e >> 0] | 0) << 24 | (s[e + 2 >> 0] | 0) << 8 | (s[e + 3 >> 0] | 0) | 0
                    }

                    function FP(e) {
                        e = e | 0;
                        return s[e >> 0] | s[e + 1 >> 0] << 8 | s[e + 2 >> 0] << 16 | s[e + 3 >> 0] << 24 | 0
                    }

                    function BP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0,
                            s = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            s = FP(n + 4 | 0) | 0;
                            e: do {
                                if ((s | 0) < 1801548404) {
                                    switch (s | 0) {
                                        case 1635017845:
                                            break;
                                        default:
                                            break e
                                    }
                                    LP(n, a, i)
                                } else {
                                    switch (s | 0) {
                                        case 1801548404:
                                            break;
                                        default:
                                            break e
                                    }
                                    NP(n, a, i)
                                }
                            } while (0);
                            t = a + t | 0
                        }
                        return
                    }

                    function NP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1634296941) VP(n, a, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function LP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 2003399267) UP(n, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function UP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[t + 36 >> 2] = DP(e + 8 | 0) | 0;
                        a[t + 40 >> 2] = DP(e + 12 | 0) | 0;
                        a[t + 16 >> 2] = DP(e + 16 | 0) | 0;
                        a[t + 12 >> 2] = DP(e + 20 | 0) | 0;
                        return
                    }

                    function VP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1718511981) XP(n, a, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function XP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1818391667) jP(n, a, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function jP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 8;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1685288051) GP(n, a, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function GP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = t + -8 | 0;
                        t = 16;
                        while (1) {
                            if (t >>> 0 >= r >>> 0) break;
                            n = e + t | 0;
                            a = DP(n) | 0;
                            if ((FP(n + 4 | 0) | 0) == 1630826605) $P(n, i);
                            t = a + t | 0
                        }
                        return
                    }

                    function $P(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[t + 4 >> 2] = (HP(r[e + 24 >> 0] | 0, r[e + 25 >> 0] | 0) | 0) & 65535;
                        a[t + 8 >> 2] = DP(e + 30 | 0) | 0;
                        return
                    }

                    function HP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return ((e & 255) << 8 | t & 255) & 65535 | 0
                    }

                    function WP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        if ((e | 0) == 0 & (t | 0) == 0) e = 0;
                        else {
                            r = vM(e | 0, t | 0, 11) | 0;
                            r = r & 16382 | 1;
                            i = vM(e | 0, t | 0, 23) | 0;
                            i = i & 32764 | 1;
                            t = vM(e | 0, t | 0, 37) | 0;
                            t = t & 32766;
                            n[5387] = (e << 2 & 16380 | 1) ^ r;
                            n[5388] = r ^ i;
                            n[5389] = i ^ (t | 1);
                            n[5390] = t ^ 65534;
                            e = 1
                        }
                        a[2575] = e;
                        return
                    }

                    function YP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        if (!e) {
                            if (a[2575] | 0) {
                                e = 10774;
                                o = 3
                            }
                        } else o = 3;
                        e: do {
                            if ((o | 0) == 3) {
                                l = ~n[e + 6 >> 1];
                                d = l & 65535;
                                l = n[e + 4 >> 1] ^ l;
                                f = l & 65535;
                                l = n[e + 2 >> 1] ^ l;
                                c = l & 65535;
                                h = d << 1 | 1;
                                l = (n[e >> 1] ^ l) & 65535;
                                u = 0;
                                e = h & 65535;
                                o = (c << 2 | 1) & 65535;
                                while (1) {
                                    if ((u | 0) == (i | 0)) break e;
                                    if (!(u & 65535)) {
                                        e = ((G((e & 65535) >>> 1 & 65535, f) | 0) + d << 1 | 1) & 65535;
                                        o = ((G((o & 65535) >>> 2 & 65535, l) | 0) + c << 2 | 1) & 65535
                                    }
                                    p = (G(h & 65535, o & 65535) | 0) + (e & 65535) | 0;
                                    v = t + u | 0;
                                    r[v >> 0] = p >>> 8 ^ (s[v >> 0] | 0);
                                    u = u + 1 | 0;
                                    h = p
                                }
                            }
                        } while (0);
                        return
                    }

                    function zP(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            o = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        if (i >>> 0 >= 8)
                            if (!(QI(t + 4 | 0, 6108) | 0)) e = 0;
                            else {
                                o = t;
                                t = t + 4 | 0;
                                t = s[t >> 0] | s[t + 1 >> 0] << 8 | s[t + 2 >> 0] << 16 | s[t + 3 >> 0] << 24;
                                i = r;
                                a[i >> 2] = s[o >> 0] | s[o + 1 >> 0] << 8 | s[o + 2 >> 0] << 16 | s[o + 3 >> 0] << 24;
                                a[i + 4 >> 2] = t;
                                YP(e, r, 8);
                                e = (QI(r + 4 | 0, 6108) | 0) == 0;
                                e = e ? 1 : 2
                            }
                        else e = 2;
                        p = n;
                        return e | 0
                    }

                    function qP(e) {
                        e = e | 0;
                        a[e >> 2] = 2656;
                        return
                    }

                    function JP(e) {
                        e = e | 0;
                        a[e >> 2] = 6113;
                        return 0
                    }

                    function QP(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        a[s >> 2] = 0;
                        aE(n, 68);
                        i = Ce(e | 0) | 0;
                        do {
                            if ((i | 0) > 0) {
                                i = (Pe(i | 0, n + 8 | 0, n + 4 | 0, n + 12 | 0) | 0) == 0;
                                i = i ? -5 : 0
                            } else {
                                if (aI(e) | 0) {
                                    i = sI(e, t, n, s) | 0;
                                    break
                                }
                                if ((zP(0, e, t) | 0) == 1) YP(0, e, t);
                                RP(e, t, n);
                                i = 0
                            }
                        } while (0);
                        a[n >> 2] = 9;
                        return i | 0
                    }

                    function ZP(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[t >> 2] = 12;
                        return 0
                    }

                    function KP(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        a[r >> 2] = 0;
                        i = t + 7 & -8;
                        aE(i, 12);
                        rI(i) | 0;
                        a[r >> 2] = i;
                        return 0
                    }

                    function eI(e) {
                        e = e | 0;
                        return 0
                    }

                    function tI(e, t, i, r, n, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        var l = 0;
                        o = p;
                        p = p + 80 | 0;
                        s = o;
                        a[h >> 2] = 0;
                        a[u >> 2] = i;
                        r = a[e >> 2] | 0;
                        do {
                            if ((r | 0) < 1) {
                                r = Ce(t | 0) | 0;
                                a[e >> 2] = r;
                                if ((r | 0) > 0) {
                                    a[e + 4 >> 2] = 1;
                                    l = 9;
                                    break
                                }
                                if (aI(t) | 0) {
                                    r = Fe(-1, t | 0, i | 0, 0, 0, 0, 0, 0, 0, 0) | 0;
                                    a[e >> 2] = r;
                                    if ((r | 0) > 0) {
                                        l = 9;
                                        break
                                    } else {
                                        r = 0;
                                        break
                                    }
                                }
                                a[e + 4 >> 2] = 0;
                                r = s;
                                n = r + 68 | 0;
                                do {
                                    a[r >> 2] = 0;
                                    r = r + 4 | 0
                                } while ((r | 0) < (n | 0));
                                r = e + 8 | 0;
                                if ((zP(a[r >> 2] | 0, t, i) | 0) == 1) YP(a[r >> 2] | 0, t, i);
                                RP(t, i, s);
                                a[e >> 2] = Fe(-1, t | 0, i | 0, a[s + 8 >> 2] | 0, a[s + 12 >> 2] | 0, a[s + 16 >> 2] | 0, a[s + 36 >> 2] | 0, a[s + 40 >> 2] | 0, 0, 0) | 0;
                                r = 1
                            } else l = 9
                        } while (0);
                        if ((l | 0) == 9) {
                            r = Ie(r | 0) | 0;
                            r = (r | 0) == 0 ? 1 : (r | 0) == 1 ? 0 : -5
                        }
                        p = o;
                        return r | 0
                    }

                    function iI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return 0
                    }

                    function rI(e) {
                        e = e | 0;
                        var t = 0;
                        if ((a[e + 4 >> 2] | 0) == 0 ? (t = a[e >> 2] | 0, (t | 0) > 0) : 0) Le(t | 0);
                        a[e >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        return 0
                    }

                    function nI(e) {
                        e = e | 0;
                        return 0
                    }

                    function aI(e) {
                        e = e | 0;
                        if (((r[e >> 0] | 0) == 72 ? (r[e + 1 >> 0] | 0) == 67 : 0) ? (r[e + 2 >> 0] | 0) == 65 : 0) e = (r[e + 3 >> 0] | 0) == 0 & 1;
                        else e = 0;
                        return e | 0
                    }

                    function sI(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var o = 0.0,
                            u = 0,
                            l = 0,
                            f = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        e: do {
                            if (((t | 0) >= 64 ? (a[n >> 2] = 0, (((s[e + 1 >> 0] | 0) << 16 | (s[e >> 0] | 0) << 24 | (s[e + 2 >> 0] | 0) << 8 | (s[e + 3 >> 0] | 0)) & 2139062143 | 0) == 1212367104) : 0) ? (A = (s[e + 6 >> 0] | 0) << 8 | (s[e + 7 >> 0] | 0), (((s[e + 9 >> 0] | 0) << 16 | (s[e + 8 >> 0] | 0) << 24 | (s[e + 10 >> 0] | 0) << 8 | (s[e + 11 >> 0] | 0)) & 2139062143 | 0) == 1718449152) : 0) {
                                m = s[e + 12 >> 0] | 0;
                                _ = (s[e + 14 >> 0] | 0) << 8 | (s[e + 13 >> 0] | 0) << 16 | (s[e + 15 >> 0] | 0);
                                b = (s[e + 18 >> 0] | 0) << 8 | (s[e + 17 >> 0] | 0) << 16 | (s[e + 19 >> 0] | 0);
                                g = (s[e + 20 >> 0] | 0) << 8 | (s[e + 21 >> 0] | 0);
                                y = (s[e + 22 >> 0] | 0) << 8 | (s[e + 23 >> 0] | 0);
                                t = ((s[e + 25 >> 0] | 0) << 16 | (s[e + 24 >> 0] | 0) << 24 | (s[e + 26 >> 0] | 0) << 8 | (s[e + 27 >> 0] | 0)) & 2139062143;
                                if ((t | 0) < 1684366080) {
                                    switch (t | 0) {
                                        case 1668246896:
                                            break;
                                        default:
                                            {
                                                t = -2;
                                                break e
                                            }
                                    }
                                    t = 40
                                } else switch (t | 0) {
                                    case 1684366080:
                                        {
                                            t = 36;
                                            break
                                        }
                                    default:
                                        {
                                            t = -2;
                                            break e
                                        }
                                }
                                f = e + t | 0;
                                f = (((s[f + 1 >> 0] | 0) << 16 | (s[f >> 0] | 0) << 24 | (s[f + 2 >> 0] | 0) << 8 | (s[f + 3 >> 0] | 0)) & 2139062143 | 0) == 1635018752 ? f + 6 | 0 : f;
                                e = r[f >> 0] | 0;
                                u = r[f + 1 >> 0] | 0;
                                l = r[f + 2 >> 0] | 0;
                                t = r[f + 3 >> 0] | 0;
                                if ((((u & 255) << 16 | (e & 255) << 24 | (l & 255) << 8 | t & 255) & 2139062143 | 0) == 1819242352) {
                                    e = f + 16 | 0;
                                    p = 1024 - g + (((s[f + 10 >> 0] | 0) << 8 | (s[f + 9 >> 0] | 0) << 16 | (s[f + 11 >> 0] | 0)) << 10) - ((s[f + 14 >> 0] | 0) << 8 | (s[f + 15 >> 0] | 0)) | 0;
                                    v = (((s[f + 5 >> 0] | 0) << 16 | (s[f + 4 >> 0] | 0) << 24 | (s[f + 6 >> 0] | 0) << 8 | (s[f + 7 >> 0] | 0)) << 10) - g + ((s[f + 12 >> 0] | 0) << 8 | (s[f + 13 >> 0] | 0)) | 0;
                                    d = e;
                                    e = r[e >> 0] | 0;
                                    u = r[f + 17 >> 0] | 0;
                                    l = r[f + 18 >> 0] | 0;
                                    t = r[f + 19 >> 0] | 0
                                } else {
                                    p = 0;
                                    v = 0;
                                    d = f
                                }
                                t = (((l & 255) << 8 | t & 255 | (u & 255) << 16 | (e & 255) << 24) & 2139062143 | 0) == 1667854440 ? d + 6 | 0 : d;
                                if ((((s[t + 1 >> 0] | 0) << 16 | (s[t >> 0] | 0) << 24 | (s[t + 2 >> 0] | 0) << 8 | (s[t + 3 >> 0] | 0)) & 2139062143 | 0) == 1920360704) o = (a[c >> 2] = (s[t + 5 >> 0] | 0) << 16 | (s[t + 4 >> 0] | 0) << 24 | (s[t + 6 >> 0] | 0) << 8 | (s[t + 7 >> 0] | 0), +h[c >> 2]);
                                else o = 1.0;
                                a[i >> 2] = 3;
                                a[i + 4 >> 2] = m;
                                a[i + 8 >> 2] = _;
                                a[i + 12 >> 2] = (b << 10) - g - y;
                                a[i + 36 >> 2] = v;
                                a[i + 40 >> 2] = p;
                                a[i + 64 >> 2] = 1;
                                h[i + 48 >> 2] = o;
                                a[n >> 2] = A;
                                t = 0
                            } else t = -2
                        } while (0);
                        return t | 0
                    }

                    function oI(e) {
                        e = e | 0;
                        return a[e >> 2] | 0
                    }

                    function uI(e, t) {
                        e = +e;
                        t = +t;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        Pt(11, i | 0, +e, +t) | 0;
                        p = r;
                        return + +h[i >> 2]
                    }

                    function hI(e) {
                        e = +e;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        St(12, t | 0, +e) | 0;
                        p = i;
                        return + +h[t >> 2]
                    }

                    function lI(e) {
                        e = +e;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        St(13, t | 0, +e) | 0;
                        p = i;
                        return + +h[t >> 2]
                    }

                    function fI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e >> 2] | 0;
                        a[e >> 2] = t;
                        return i | 0
                    }

                    function cI(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function dI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e >> 2] = t;
                        return
                    }

                    function pI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e >> 2] | 0;
                        a[e >> 2] = t;
                        return i | 0
                    }

                    function vI(e) {
                        e = e | 0;
                        a[e >> 2] = (a[e >> 2] | 0) + 1;
                        return
                    }

                    function mI(e) {
                        e = e | 0;
                        a[e >> 2] = (a[e >> 2] | 0) + -1;
                        return
                    }

                    function _I() {
                        var e = 0.0;
                        e = +Ct() * 1.0e3;
                        P = +M(e) >= 1.0 ? e > 0.0 ? ~~+$(+I(e / 4294967296.0), 4294967295.0) >>> 0 : ~~+j((e - +(~~e >>> 0)) / 4294967296.0) >>> 0 : 0;
                        return ~~e >>> 0 | 0
                    }

                    function bI(e) {
                        e = e | 0;
                        e = ZI(e) | 0;
                        return ((e | 0) > -1 ? e : -1) | 0
                    }

                    function gI(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        return
                    }

                    function yI() {
                        a[2651] = 6262;
                        AI();
                        a[2652] = 1;
                        return
                    }

                    function AI() {
                        gt();
                        return
                    }

                    function wI() {
                        a[2652] = 0;
                        return
                    }

                    function xI() {
                        return a[2652] | 0
                    }

                    function kI(e) {
                        e = e | 0;
                        a[e >> 2] = 256;
                        return
                    }

                    function TI(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        return
                    }

                    function EI(e) {
                        e = e | 0;
                        var t = 0;
                        t = GI(40) | 0;
                        a[e >> 2] = t;
                        e = t;
                        t = e + 40 | 0;
                        do {
                            a[e >> 2] = 0;
                            e = e + 4 | 0
                        } while ((e | 0) < (t | 0));
                        return 0
                    }

                    function SI(e) {
                        e = e | 0;
                        PI(e);
                        zI(e);
                        return 0
                    }

                    function PI(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            kt(e | 0);
                            r[e >> 0] = 0;
                            r[e + 1 >> 0] = 0;
                            a[e + 16 >> 2] = 0;
                            a[e + 20 >> 2] = 0;
                            a[e + 24 >> 2] = 0;
                            a[e + 4 >> 2] = 0
                        }
                        return
                    }

                    function II(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else e = MI(e, i, 0, -1) | 0;
                        return e | 0
                    }

                    function MI(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var a = 0;
                        a = e + 1 | 0;
                        if (!(r[a >> 0] | 0)) {
                            r[e >> 0] = 1;
                            r[a >> 0] = 1;
                            xt(e | 0, t | 0, i | 0, n | 0, 35, 40);
                            e = 0
                        } else e = -1;
                        return e | 0
                    }

                    function CI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        r[e + 1 >> 0] = 0;
                        a[e + 12 >> 2] = t;
                        if ((a[e + 4 >> 2] | 0) == 1) RI(e);
                        return
                    }

                    function OI(e) {
                        e = e | 0;
                        r[e + 1 >> 0] = 0;
                        a[e + 4 >> 2] = 3;
                        a[e + 8 >> 2] = -1;
                        return
                    }

                    function RI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[e + 24 >> 2] | 0;
                        t = a[e + 12 >> 2] | 0;
                        t = i >>> 0 < t >>> 0 ? i : t;
                        if (t | 0) {
                            yt(e | 0, a[e + 16 >> 2] | 0, a[e + 20 >> 2] | 0, t | 0);
                            a[e + 28 >> 2] = t
                        }
                        a[e + 4 >> 2] = 2;
                        t = a[e + 32 >> 2] | 0;
                        if (t | 0) u$[t & 63](a[e + 36 >> 2] | 0, e);
                        return
                    }

                    function DI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        if (!e) {
                            sE();
                            i = -1
                        } else {
                            if ((r[e >> 0] | 0) != 0 ? (r[e + 1 >> 0] | 0) == 0 : 0) {
                                i = 0;
                                e = a[e + 12 >> 2] | 0;
                                n = 0
                            } else {
                                i = -1;
                                e = -1;
                                n = -1
                            }
                            a[t >> 2] = e;
                            a[t + 4 >> 2] = n
                        }
                        return i | 0
                    }

                    function FI(e, t, i, n, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        do {
                            if (e)
                                if (r[e >> 0] | 0) {
                                    a[e + 16 >> 2] = o;
                                    a[e + 20 >> 2] = t;
                                    o = u >>> 0 < n >>> 0;
                                    t = o ? u : n;
                                    a[e + 24 >> 2] = t;
                                    t = e + 4 | 0;
                                    if (r[e + 1 >> 0] | 0) {
                                        a[t >> 2] = 1;
                                        t = 0;
                                        break
                                    }
                                    if ((a[t >> 2] | 0) == 3) t = 0;
                                    else {
                                        RI(e);
                                        t = 0
                                    }
                                } else t = -1;
                            else {
                                sE();
                                t = -1
                            }
                        } while (0);
                        return t | 0
                    }

                    function BI(e, t, i, r, n, a, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        if (e) {
                            t = MI(e, t, i, n) | 0;
                            if (!t) t = FI(e, 0, 0, n, a, s, o, u) | 0
                        } else {
                            sE();
                            t = -1
                        }
                        return t | 0
                    }

                    function NI(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            a[e + 16 >> 2] = 0;
                            a[e + 20 >> 2] = 0;
                            a[e + 24 >> 2] = 0;
                            a[e + 4 >> 2] = 0
                        }
                        return
                    }

                    function LI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else {
                            a[t >> 2] = a[e + 4 >> 2];
                            e = 0
                        }
                        return e | 0
                    }

                    function UI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else a[t >> 2] = a[e + 8 >> 2];
                        return
                    }

                    function VI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            a[t >> 2] = a[e + 28 >> 2];
                            a[t + 4 >> 2] = 0
                        }
                        return
                    }

                    function XI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        At(e | 0, t | 0);
                        return 0
                    }

                    function jI(e) {
                        e = e | 0;
                        wt(e | 0);
                        return 0
                    }

                    function GI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        if (!e) {
                            e = 0;
                            return e | 0
                        }
                        r = e >>> 0 > 8 ? e : 8;
                        t = 31 - (W(r | 0) | 0) | 0;
                        t = ((r | 0) == 0 ? 1 : t) + ((_M(e | 0) | 0) != 1 & 1) | 0;
                        e: do {
                            if (t >>> 0 > 3 & 1 << t >>> 0 > e >>> 0 ? (i = a[10612 + (t + -1 << 2) >> 2] | 0, (i | 0) != 0) : 0) {
                                r = 0;
                                while (1) {
                                    if ((((a[i + -8 >> 2] | 0) >>> 1) + -8 | 0) >>> 0 >= e >>> 0) {
                                        t = i;
                                        i = 9;
                                        break e
                                    }
                                    r = r + 1 | 0;
                                    i = a[i + 4 >> 2] | 0;
                                    if (!(r >>> 0 < 32 & (i | 0) != 0)) {
                                        i = 4;
                                        break
                                    }
                                }
                            } else i = 4
                        } while (0);
                        e: do {
                            if ((i | 0) == 4)
                                if (t >>> 0 < 32)
                                    while (1) {
                                        i = a[10612 + (t << 2) >> 2] | 0;
                                        t = t + 1 | 0;
                                        if (i | 0) {
                                            t = i;
                                            i = 9;
                                            break e
                                        }
                                        if (t >>> 0 >= 32) {
                                            i = 10;
                                            break
                                        }
                                    } else i = 10
                        } while (0);
                        if ((i | 0) == 9) {
                            t = $I(t, e) | 0;
                            if (!t) i = 10
                        }
                        if ((i | 0) == 10) {
                            t = HI(e) | 0;
                            if (!t) {
                                e = 0;
                                return e | 0
                            }
                        }
                        e = t + 8 | 0;
                        return e | 0
                    }

                    function $I(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        n = e + -8 | 0;
                        r = ((a[n >> 2] | 0) >>> 1) + -8 | 0;
                        r = r >>> 0 > 8 ? r : 8;
                        i = 31 - (W(r | 0) | 0) | 0;
                        i = 10612 + (((r | 0) == 0 ? 1 : i) << 2) | 0;
                        r = e + 4 | 0;
                        if ((a[i >> 2] | 0) == (e | 0)) a[i >> 2] = a[r >> 2];
                        i = a[e >> 2] | 0;
                        if (i | 0) a[i + 4 >> 2] = a[r >> 2];
                        i = a[r >> 2] | 0;
                        if (i | 0) a[i >> 2] = a[e >> 2];
                        r = a[n >> 2] | 0;
                        a[n >> 2] = r | 1;
                        r = r >>> 1;
                        i = r + (-8 - t) | 0;
                        do {
                            if ((a[2686] | 0) == (n | 0) & (i & -8 | 0) == 8)
                                if (!(WI(r) | 0)) return n | 0;
                                else {
                                    i = i + 8 | 0;
                                    break
                                }
                        } while (0);
                        if (i >>> 0 <= 15) return n | 0;
                        i = a[n >> 2] | 0;
                        e = e + t + 7 & -8;
                        r = e;
                        t = e;
                        a[n >> 2] = i & 1 | e - n << 1;
                        e = n + (i >>> 1) - e | 0;
                        a[t >> 2] = e << 1 | a[t >> 2] & 1;
                        a[t + 4 >> 2] = n;
                        i = a[2686] | 0;
                        a[((i | 0) == (n | 0) ? 10744 : ((i | 0) == (t | 0) ? 0 : r + (e & 2147483647) | 0) + 4 | 0) >> 2] = r;
                        YI(t);
                        return n | 0
                    }

                    function HI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        t = a[2686] | 0;
                        if (t | 0 ? (i = a[t >> 2] | 0, (i & 1 | 0) == 0) : 0) {
                            a[t >> 2] = i | 1;
                            i = a[2686] | 0;
                            n = ((a[i >> 2] | 0) >>> 1) + -8 | 0;
                            n = n >>> 0 > 8 ? n : 8;
                            t = 31 - (W(n | 0) | 0) | 0;
                            r = i + 8 | 0;
                            t = 10612 + (((n | 0) == 0 ? 1 : t) << 2) | 0;
                            i = i + 12 | 0;
                            if ((a[t >> 2] | 0) == (r | 0)) a[t >> 2] = a[i >> 2];
                            t = a[r >> 2] | 0;
                            if (t | 0) a[t + 4 >> 2] = a[i >> 2];
                            t = a[i >> 2] | 0;
                            if (t | 0) a[t >> 2] = a[r >> 2];
                            n = (WI(e) | 0) == 0;
                            t = a[2686] | 0;
                            if (!n) {
                                n = t;
                                return n | 0
                            }
                            a[t >> 2] = a[t >> 2] & -2;
                            n = 0;
                            return n | 0
                        }
                        e = e + 15 & -8;
                        i = AM(e | 0) | 0;
                        if ((i | 0) == (-1 | 0)) {
                            n = 0;
                            return n | 0
                        }
                        r = i;
                        t = r + 7 & -8;
                        n = t;
                        if ((i | 0) != (n | 0) ? (AM(t - r | 0) | 0) == (-1 | 0) : 0) {
                            n = 0;
                            return n | 0
                        }
                        i = a[2686] | 0;
                        if (!i) a[2685] = n;
                        else a[t + 4 >> 2] = i;
                        a[2686] = n;
                        a[t >> 2] = e << 1 | 1;
                        n = t;
                        return n | 0
                    }

                    function WI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        r = (e + 15 & -8) - ((a[a[2686] >> 2] | 0) >>> 1) | 0;
                        if ((AM(r | 0) | 0) == (-1 | 0)) {
                            n = 0;
                            return n | 0
                        }
                        n = a[2686] | 0;
                        e = a[n >> 2] | 0;
                        if (!(e & 1)) {
                            t = (e >>> 1) + -8 | 0;
                            t = t >>> 0 > 8 ? t : 8;
                            e = 31 - (W(t | 0) | 0) | 0;
                            i = n + 8 | 0;
                            e = 10612 + (((t | 0) == 0 ? 1 : e) << 2) | 0;
                            t = n + 12 | 0;
                            if ((a[e >> 2] | 0) == (i | 0)) a[e >> 2] = a[t >> 2];
                            e = a[i >> 2] | 0;
                            if (e | 0) a[e + 4 >> 2] = a[t >> 2];
                            e = a[t >> 2] | 0;
                            if (e | 0) a[e >> 2] = a[i >> 2]
                        }
                        e = (a[n >> 2] | 0) + (r << 1) | 0;
                        a[n >> 2] = e;
                        if (e & 1 | 0) {
                            n = 1;
                            return n | 0
                        }
                        t = (e >>> 1) + -8 | 0;
                        t = t >>> 0 > 8 ? t : 8;
                        r = 31 - (W(t | 0) | 0) | 0;
                        e = n + 8 | 0;
                        r = 10612 + (((t | 0) == 0 ? 1 : r) << 2) | 0;
                        t = a[r >> 2] | 0;
                        a[r >> 2] = e;
                        a[e >> 2] = 0;
                        a[n + 12 >> 2] = t;
                        if (!t) {
                            n = 1;
                            return n | 0
                        }
                        a[t >> 2] = e;
                        n = 1;
                        return n | 0
                    }

                    function YI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        i = a[e >> 2] | 0;
                        a[e >> 2] = i & -2;
                        u = a[e + 4 >> 2] | 0;
                        o = (a[2686] | 0) == (e | 0);
                        i = i >>> 1;
                        l = e + i | 0;
                        h = o ? 0 : l;
                        l = o ? 0 : l;
                        if (u | 0 ? (t = a[u >> 2] | 0, (t & 1 | 0) == 0) : 0) {
                            o = (t >>> 1) + -8 | 0;
                            o = o >>> 0 > 8 ? o : 8;
                            t = 31 - (W(o | 0) | 0) | 0;
                            s = u + 8 | 0;
                            t = 10612 + (((o | 0) == 0 ? 1 : t) << 2) | 0;
                            o = u + 12 | 0;
                            if ((a[t >> 2] | 0) == (s | 0)) a[t >> 2] = a[o >> 2];
                            t = a[s >> 2] | 0;
                            if (t | 0) a[t + 4 >> 2] = a[o >> 2];
                            t = a[o >> 2] | 0;
                            if (t | 0) a[t >> 2] = a[s >> 2];
                            a[u >> 2] = (a[u >> 2] | 0) + (a[e >> 2] & -2);
                            if (l) {
                                a[l + 4 >> 2] = u;
                                t = a[l >> 2] | 0;
                                if (!(t & 1)) {
                                    i = (t >>> 1) + -8 | 0;
                                    i = i >>> 0 > 8 ? i : 8;
                                    t = 31 - (W(i | 0) | 0) | 0;
                                    r = l + 8 | 0;
                                    t = 10612 + (((i | 0) == 0 ? 1 : t) << 2) | 0;
                                    i = l + 12 | 0;
                                    if ((a[t >> 2] | 0) == (r | 0)) a[t >> 2] = a[i >> 2];
                                    t = a[r >> 2] | 0;
                                    if (t | 0) a[t + 4 >> 2] = a[i >> 2];
                                    t = a[i >> 2] | 0;
                                    if (t | 0) a[t >> 2] = a[r >> 2];
                                    a[u >> 2] = (a[u >> 2] | 0) + (a[l >> 2] & -2);
                                    if ((l | 0) == (a[2686] | 0)) {
                                        t = 10744;
                                        n = 19
                                    } else {
                                        t = h + ((a[l >> 2] | 0) >>> 1) + 4 | 0;
                                        n = 19
                                    }
                                }
                            } else {
                                t = 10744;
                                n = 19
                            }
                            if ((n | 0) == 19) a[t >> 2] = u;
                            t = ((a[u >> 2] | 0) >>> 1) + -8 | 0;
                            t = t >>> 0 > 8 ? t : 8;
                            l = 31 - (W(t | 0) | 0) | 0;
                            l = 10612 + (((t | 0) == 0 ? 1 : l) << 2) | 0;
                            t = a[l >> 2] | 0;
                            a[l >> 2] = s;
                            a[s >> 2] = 0;
                            a[o >> 2] = t;
                            if (!t) return;
                            a[t >> 2] = s;
                            return
                        }
                        if (l | 0 ? (r = a[l >> 2] | 0, (r & 1 | 0) == 0) : 0) {
                            i = (r >>> 1) + -8 | 0;
                            i = i >>> 0 > 8 ? i : 8;
                            t = 31 - (W(i | 0) | 0) | 0;
                            r = l + 8 | 0;
                            t = 10612 + (((i | 0) == 0 ? 1 : t) << 2) | 0;
                            i = l + 12 | 0;
                            if ((a[t >> 2] | 0) == (r | 0)) a[t >> 2] = a[i >> 2];
                            t = a[r >> 2] | 0;
                            if (t | 0) a[t + 4 >> 2] = a[i >> 2];
                            t = a[i >> 2] | 0;
                            if (t | 0) a[t >> 2] = a[r >> 2];
                            a[e >> 2] = (a[e >> 2] | 0) + (a[l >> 2] & -2);
                            if ((l | 0) == (a[2686] | 0)) t = 10744;
                            else t = h + ((a[l >> 2] | 0) >>> 1) + 4 | 0;
                            a[t >> 2] = e;
                            i = ((a[e >> 2] | 0) >>> 1) + -8 | 0;
                            i = i >>> 0 > 8 ? i : 8;
                            l = 31 - (W(i | 0) | 0) | 0;
                            t = e + 8 | 0;
                            l = 10612 + (((i | 0) == 0 ? 1 : l) << 2) | 0;
                            i = a[l >> 2] | 0;
                            a[l >> 2] = t;
                            a[t >> 2] = 0;
                            a[e + 12 >> 2] = i;
                            if (!i) return;
                            a[i >> 2] = t;
                            return
                        }
                        i = i + -8 | 0;
                        i = i >>> 0 > 8 ? i : 8;
                        l = 31 - (W(i | 0) | 0) | 0;
                        t = e + 8 | 0;
                        l = 10612 + (((i | 0) == 0 ? 1 : l) << 2) | 0;
                        i = a[l >> 2] | 0;
                        a[l >> 2] = t;
                        a[t >> 2] = 0;
                        a[e + 12 >> 2] = i;
                        if (!i) return;
                        a[i >> 2] = t;
                        return
                    }

                    function zI(e) {
                        e = e | 0;
                        if (!e) return;
                        YI(e + -8 | 0);
                        return
                    }

                    function qI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + 4 | 0;
                        u = e + 28 | 0;
                        a[e + 36 >> 2] = 0;
                        a[e >> 2] = 0;
                        a[e + 4 >> 2] = 0;
                        a[e + 8 >> 2] = 0;
                        a[e + 12 >> 2] = 0;
                        a[e + 16 >> 2] = 0;
                        a[e + 20 >> 2] = 0;
                        a[e + 24 >> 2] = 0;
                        a[e + 28 >> 2] = 0;
                        if (!(a[2685] | 0)) return;
                        s = AM(0) | 0;
                        t = a[2685] | 0;
                        a[e >> 2] = s - t;
                        if (!t) return;
                        n = e + 32 | 0;
                        s = a[2686] | 0;
                        while (1) {
                            i = a[t >> 2] | 0;
                            r = i >>> 1;
                            e = r + -8 | 0;
                            if (!(i & 1)) {
                                a[n >> 2] = (a[n >> 2] | 0) + e;
                                i = o;
                                e = 1
                            } else i = u;
                            a[i >> 2] = (a[i >> 2] | 0) + e;
                            if ((s | 0) == (t | 0)) {
                                e = 8;
                                break
                            }
                            t = t + r | 0;
                            if (!t) {
                                e = 8;
                                break
                            }
                        }
                        if ((e | 0) == 8) return
                    }

                    function JI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        i = r[e >> 0] | 0;
                        n = r[t >> 0] | 0;
                        if (i << 24 >> 24 == 0 ? 1 : i << 24 >> 24 != n << 24 >> 24) e = n;
                        else {
                            do {
                                e = e + 1 | 0;
                                t = t + 1 | 0;
                                i = r[e >> 0] | 0;
                                n = r[t >> 0] | 0
                            } while (!(i << 24 >> 24 == 0 ? 1 : i << 24 >> 24 != n << 24 >> 24));
                            e = n
                        }
                        return (i & 255) - (e & 255) | 0
                    }

                    function QI(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            a = 0,
                            s = 0;
                        a = 4;
                        while (1) {
                            i = r[e >> 0] | 0;
                            n = r[t >> 0] | 0;
                            if (i << 24 >> 24 != n << 24 >> 24) {
                                s = 4;
                                break
                            }
                            a = a + -1 | 0;
                            if (!a) {
                                e = 0;
                                break
                            } else {
                                e = e + 1 | 0;
                                t = t + 1 | 0
                            }
                        }
                        if ((s | 0) == 4) e = (i & 255) - (n & 255) | 0;
                        return e | 0
                    }

                    function ZI(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        n = e;
                        e: do {
                            if (!(n & 3)) i = 4;
                            else {
                                t = n;
                                while (1) {
                                    if (!(r[e >> 0] | 0)) {
                                        e = t;
                                        break e
                                    }
                                    e = e + 1 | 0;
                                    t = e;
                                    if (!(t & 3)) {
                                        i = 4;
                                        break
                                    }
                                }
                            }
                        } while (0);
                        if ((i | 0) == 4) {
                            while (1) {
                                t = a[e >> 2] | 0;
                                if (!((t & -2139062144 ^ -2139062144) & t + -16843009)) e = e + 4 | 0;
                                else break
                            }
                            if ((t & 255) << 24 >> 24)
                                do {
                                    e = e + 1 | 0
                                } while ((r[e >> 0] | 0) != 0)
                        }
                        return e - n | 0
                    }

                    function KI(e, t) {
                        e = +e;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0.0;
                        l[c >> 3] = e;
                        i = a[c >> 2] | 0;
                        r = a[c + 4 >> 2] | 0;
                        n = vM(i | 0, r | 0, 52) | 0;
                        n = n & 2047;
                        s = n + -1023 | 0;
                        if (n >>> 0 > 1074) {
                            l[t >> 3] = e;
                            a[c >> 2] = 0;
                            a[c + 4 >> 2] = r & -2147483648;
                            return +((i | 0) == 0 & (r & 1048575 | 0) == 0 | (s | 0) != 1024 ? +l[c >> 3] : e)
                        }
                        do {
                            if (n >>> 0 >= 1023) {
                                n = vM(-1, 1048575, s | 0) | 0;
                                if ((n & i | 0) == 0 & (P & r | 0) == 0) {
                                    l[t >> 3] = e;
                                    a[c >> 2] = 0;
                                    a[c + 4 >> 2] = r & -2147483648;
                                    e = +l[c >> 3];
                                    break
                                } else {
                                    n = pM(0, -1048576, s | 0) | 0;
                                    i = n & i;
                                    n = P & r;
                                    a[c >> 2] = i;
                                    a[c + 4 >> 2] = n;
                                    o = +l[c >> 3];
                                    s = t;
                                    a[s >> 2] = i;
                                    a[s + 4 >> 2] = n;
                                    e = e - o;
                                    break
                                }
                            } else {
                                s = t;
                                a[s >> 2] = 0;
                                a[s + 4 >> 2] = r & -2147483648
                            }
                        } while (0);
                        return +e
                    }

                    function eM(e, t) {
                        e = +e;
                        t = +t;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        s = (h[c >> 2] = e, a[c >> 2] | 0);
                        u = (h[c >> 2] = t, a[c >> 2] | 0);
                        i = s >>> 23 & 255;
                        o = u >>> 23 & 255;
                        l = s & -2147483648;
                        n = u << 1;
                        e: do {
                            if ((n | 0) != 0 ? !((i | 0) == 255 | ((tM(t) | 0) & 2147483647) >>> 0 > 2139095040) : 0) {
                                r = s << 1;
                                if (r >>> 0 <= n >>> 0) return +((r | 0) == (n | 0) ? e * 0.0 : e);
                                if (!i) {
                                    i = s << 9;
                                    if ((i | 0) > -1) {
                                        r = i;
                                        i = 0;
                                        do {
                                            i = i + -1 | 0;
                                            r = r << 1
                                        } while ((r | 0) > -1)
                                    } else i = 0;
                                    r = s << 1 - i
                                } else r = s & 8388607 | 8388608;
                                if (!o) {
                                    s = u << 9;
                                    if ((s | 0) > -1) {
                                        n = 0;
                                        do {
                                            n = n + -1 | 0;
                                            s = s << 1
                                        } while ((s | 0) > -1)
                                    } else n = 0;
                                    o = n;
                                    u = u << 1 - n
                                } else u = u & 8388607 | 8388608;
                                n = r - u | 0;
                                s = (n | 0) > -1;
                                t: do {
                                    if ((i | 0) > (o | 0)) {
                                        while (1) {
                                            if (s)
                                                if (!n) break;
                                                else r = n;
                                            r = r << 1;
                                            i = i + -1 | 0;
                                            n = r - u | 0;
                                            s = (n | 0) > -1;
                                            if ((i | 0) <= (o | 0)) break t
                                        }
                                        t = e * 0.0;
                                        break e
                                    }
                                } while (0);
                                if (s)
                                    if (!n) {
                                        t = e * 0.0;
                                        break
                                    } else r = n;
                                if (r >>> 0 < 8388608)
                                    do {
                                        r = r << 1;
                                        i = i + -1 | 0
                                    } while (r >>> 0 < 8388608);
                                if ((i | 0) > 0) i = r + -8388608 | i << 23;
                                else i = r >>> (1 - i | 0);
                                t = (a[c >> 2] = i | l, +h[c >> 2])
                            } else f = 3
                        } while (0);
                        if ((f | 0) == 3) {
                            t = e * t;
                            t = t / t
                        }
                        return +t
                    }

                    function tM(e) {
                        e = +e;
                        return (h[c >> 2] = e, a[c >> 2] | 0) | 0
                    }

                    function iM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        rM(e, t, i);
                        return e | 0
                    }

                    function rM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        s = t;
                        e: do {
                            if (!((s ^ e) & 3)) {
                                n = (i | 0) != 0;
                                if (n & (s & 3 | 0) != 0)
                                    do {
                                        s = r[t >> 0] | 0;
                                        r[e >> 0] = s;
                                        if (!(s << 24 >> 24)) break e;
                                        i = i + -1 | 0;
                                        t = t + 1 | 0;
                                        e = e + 1 | 0;
                                        n = (i | 0) != 0
                                    } while (n & (t & 3 | 0) != 0);
                                if (n) {
                                    if (r[t >> 0] | 0) {
                                        t: do {
                                            if (i >>> 0 > 3) {
                                                n = t;
                                                while (1) {
                                                    t = a[n >> 2] | 0;
                                                    if ((t & -2139062144 ^ -2139062144) & t + -16843009 | 0) {
                                                        t = n;
                                                        break t
                                                    }
                                                    a[e >> 2] = t;
                                                    i = i + -4 | 0;
                                                    t = n + 4 | 0;
                                                    e = e + 4 | 0;
                                                    if (i >>> 0 > 3) n = t;
                                                    else break
                                                }
                                            }
                                        } while (0);o = 11
                                    }
                                } else i = 0
                            } else o = 11
                        } while (0);
                        e: do {
                            if ((o | 0) == 11)
                                if (!i) i = 0;
                                else
                                    while (1) {
                                        o = r[t >> 0] | 0;
                                        r[e >> 0] = o;
                                        if (!(o << 24 >> 24)) break e;
                                        i = i + -1 | 0;
                                        e = e + 1 | 0;
                                        if (!i) {
                                            i = 0;
                                            break
                                        } else t = t + 1 | 0
                                    }
                        } while (0);
                        yM(e | 0, 0, i | 0) | 0;
                        return
                    }

                    function nM() {}

                    function aM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        i = e + i >>> 0;
                        return (P = t + r + (i >>> 0 < e >>> 0 | 0) >>> 0, i | 0) | 0
                    }

                    function sM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        r = t - r - (i >>> 0 > e >>> 0 | 0) >>> 0;
                        return (P = r, e - i >>> 0 | 0) | 0
                    }

                    function oM(e) {
                        e = e | 0;
                        var t = 0;
                        t = r[m + (e & 255) >> 0] | 0;
                        if ((t | 0) < 8) return t | 0;
                        t = r[m + (e >> 8 & 255) >> 0] | 0;
                        if ((t | 0) < 8) return t + 8 | 0;
                        t = r[m + (e >> 16 & 255) >> 0] | 0;
                        if ((t | 0) < 8) return t + 16 | 0;
                        return (r[m + (e >>> 24) >> 0] | 0) + 24 | 0
                    }

                    function uM(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        f = e;
                        h = t;
                        l = h;
                        o = i;
                        d = r;
                        u = d;
                        if (!l) {
                            s = (n | 0) != 0;
                            if (!u) {
                                if (s) {
                                    a[n >> 2] = (f >>> 0) % (o >>> 0);
                                    a[n + 4 >> 2] = 0
                                }
                                d = 0;
                                n = (f >>> 0) / (o >>> 0) >>> 0;
                                return (P = d, n) | 0
                            } else {
                                if (!s) {
                                    d = 0;
                                    n = 0;
                                    return (P = d, n) | 0
                                }
                                a[n >> 2] = e | 0;
                                a[n + 4 >> 2] = t & 0;
                                d = 0;
                                n = 0;
                                return (P = d, n) | 0
                            }
                        }
                        s = (u | 0) == 0;
                        do {
                            if (o) {
                                if (!s) {
                                    s = (W(u | 0) | 0) - (W(l | 0) | 0) | 0;
                                    if (s >>> 0 <= 31) {
                                        c = s + 1 | 0;
                                        u = 31 - s | 0;
                                        t = s - 31 >> 31;
                                        o = c;
                                        e = f >>> (c >>> 0) & t | l << u;
                                        t = l >>> (c >>> 0) & t;
                                        s = 0;
                                        u = f << u;
                                        break
                                    }
                                    if (!n) {
                                        d = 0;
                                        n = 0;
                                        return (P = d, n) | 0
                                    }
                                    a[n >> 2] = e | 0;
                                    a[n + 4 >> 2] = h | t & 0;
                                    d = 0;
                                    n = 0;
                                    return (P = d, n) | 0
                                }
                                s = o - 1 | 0;
                                if (s & o | 0) {
                                    u = (W(o | 0) | 0) + 33 - (W(l | 0) | 0) | 0;
                                    v = 64 - u | 0;
                                    c = 32 - u | 0;
                                    h = c >> 31;
                                    p = u - 32 | 0;
                                    t = p >> 31;
                                    o = u;
                                    e = c - 1 >> 31 & l >>> (p >>> 0) | (l << c | f >>> (u >>> 0)) & t;
                                    t = t & l >>> (u >>> 0);
                                    s = f << v & h;
                                    u = (l << v | f >>> (p >>> 0)) & h | f << c & u - 33 >> 31;
                                    break
                                }
                                if (n | 0) {
                                    a[n >> 2] = s & f;
                                    a[n + 4 >> 2] = 0
                                }
                                if ((o | 0) == 1) {
                                    p = h | t & 0;
                                    v = e | 0 | 0;
                                    return (P = p, v) | 0
                                } else {
                                    v = oM(o | 0) | 0;
                                    p = l >>> (v >>> 0) | 0;
                                    v = l << 32 - v | f >>> (v >>> 0) | 0;
                                    return (P = p, v) | 0
                                }
                            } else {
                                if (s) {
                                    if (n | 0) {
                                        a[n >> 2] = (l >>> 0) % (o >>> 0);
                                        a[n + 4 >> 2] = 0
                                    }
                                    p = 0;
                                    v = (l >>> 0) / (o >>> 0) >>> 0;
                                    return (P = p, v) | 0
                                }
                                if (!f) {
                                    if (n | 0) {
                                        a[n >> 2] = 0;
                                        a[n + 4 >> 2] = (l >>> 0) % (u >>> 0)
                                    }
                                    p = 0;
                                    v = (l >>> 0) / (u >>> 0) >>> 0;
                                    return (P = p, v) | 0
                                }
                                s = u - 1 | 0;
                                if (!(s & u)) {
                                    if (n | 0) {
                                        a[n >> 2] = e | 0;
                                        a[n + 4 >> 2] = s & l | t & 0
                                    }
                                    p = 0;
                                    v = l >>> ((oM(u | 0) | 0) >>> 0);
                                    return (P = p, v) | 0
                                }
                                s = (W(u | 0) | 0) - (W(l | 0) | 0) | 0;
                                if (s >>> 0 <= 30) {
                                    t = s + 1 | 0;
                                    u = 31 - s | 0;
                                    o = t;
                                    e = l << u | f >>> (t >>> 0);
                                    t = l >>> (t >>> 0);
                                    s = 0;
                                    u = f << u;
                                    break
                                }
                                if (!n) {
                                    p = 0;
                                    v = 0;
                                    return (P = p, v) | 0
                                }
                                a[n >> 2] = e | 0;
                                a[n + 4 >> 2] = h | t & 0;
                                p = 0;
                                v = 0;
                                return (P = p, v) | 0
                            }
                        } while (0);
                        if (!o) {
                            l = u;
                            h = 0;
                            u = 0
                        } else {
                            c = i | 0 | 0;
                            f = d | r & 0;
                            l = aM(c | 0, f | 0, -1, -1) | 0;
                            i = P;
                            h = u;
                            u = 0;
                            do {
                                r = h;
                                h = s >>> 31 | h << 1;
                                s = u | s << 1;
                                r = e << 1 | r >>> 31 | 0;
                                d = e >>> 31 | t << 1 | 0;
                                sM(l | 0, i | 0, r | 0, d | 0) | 0;
                                v = P;
                                p = v >> 31 | ((v | 0) < 0 ? -1 : 0) << 1;
                                u = p & 1;
                                e = sM(r | 0, d | 0, p & c | 0, (((v | 0) < 0 ? -1 : 0) >> 31 | ((v | 0) < 0 ? -1 : 0) << 1) & f | 0) | 0;
                                t = P;
                                o = o - 1 | 0
                            } while ((o | 0) != 0);
                            l = h;
                            h = 0
                        }
                        o = 0;
                        if (n | 0) {
                            a[n >> 2] = e;
                            a[n + 4 >> 2] = t
                        }
                        p = (s | 0) >>> 31 | (l | o) << 1 | (o << 1 | s >>> 31) & 0 | h;
                        v = (s << 1 | 0 >>> 31) & -2 | u;
                        return (P = p, v) | 0
                    }

                    function hM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            a = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = t >> 31 | ((t | 0) < 0 ? -1 : 0) << 1;
                        u = ((t | 0) < 0 ? -1 : 0) >> 31 | ((t | 0) < 0 ? -1 : 0) << 1;
                        a = r >> 31 | ((r | 0) < 0 ? -1 : 0) << 1;
                        n = ((r | 0) < 0 ? -1 : 0) >> 31 | ((r | 0) < 0 ? -1 : 0) << 1;
                        o = sM(h ^ e | 0, u ^ t | 0, h | 0, u | 0) | 0;
                        s = P;
                        e = a ^ h;
                        t = n ^ u;
                        return sM((uM(o, s, sM(a ^ i | 0, n ^ r | 0, a | 0, n | 0) | 0, P, 0) | 0) ^ e | 0, P ^ t | 0, e | 0, t | 0) | 0
                    }

                    function lM(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            a = 0;
                        a = e & 65535;
                        n = t & 65535;
                        i = G(n, a) | 0;
                        r = e >>> 16;
                        e = (i >>> 16) + (G(n, r) | 0) | 0;
                        n = t >>> 16;
                        t = G(n, a) | 0;
                        return (P = (e >>> 16) + (G(n, r) | 0) + (((e & 65535) + t | 0) >>> 16) | 0, e + t << 16 | i & 65535 | 0) | 0
                    }

                    function fM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            a = 0;
                        n = e;
                        a = i;
                        i = lM(n, a) | 0;
                        e = P;
                        return (P = (G(t, a) | 0) + (G(r, n) | 0) + e | e & 0, i | 0 | 0) | 0
                    }

                    function cM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        n = p;
                        p = p + 16 | 0;
                        u = n | 0;
                        o = t >> 31 | ((t | 0) < 0 ? -1 : 0) << 1;
                        s = ((t | 0) < 0 ? -1 : 0) >> 31 | ((t | 0) < 0 ? -1 : 0) << 1;
                        l = r >> 31 | ((r | 0) < 0 ? -1 : 0) << 1;
                        h = ((r | 0) < 0 ? -1 : 0) >> 31 | ((r | 0) < 0 ? -1 : 0) << 1;
                        e = sM(o ^ e | 0, s ^ t | 0, o | 0, s | 0) | 0;
                        t = P;
                        uM(e, t, sM(l ^ i | 0, h ^ r | 0, l | 0, h | 0) | 0, P, u) | 0;
                        r = sM(a[u >> 2] ^ o | 0, a[u + 4 >> 2] ^ s | 0, o | 0, s | 0) | 0;
                        i = P;
                        p = n;
                        return (P = i, r) | 0
                    }

                    function dM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        return uM(e, t, i, r, 0) | 0
                    }

                    function pM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if ((i | 0) < 32) {
                            P = t >> i;
                            return e >>> i | (t & (1 << i) - 1) << 32 - i
                        }
                        P = (t | 0) < 0 ? -1 : 0;
                        return t >> i - 32 | 0
                    }

                    function vM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if ((i | 0) < 32) {
                            P = t >>> i;
                            return e >>> i | (t & (1 << i) - 1) << 32 - i
                        }
                        P = 0;
                        return t >>> i - 32 | 0
                    }

                    function mM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if ((i | 0) < 32) {
                            P = t << i | (e & (1 << i) - 1 << 32 - i) >>> 32 - i;
                            return e << i
                        }
                        P = e << i - 32;
                        return 0
                    }

                    function _M(e) {
                        e = e | 0;
                        e = e - (e >>> 1 & 1431655765) | 0;
                        e = (e & 858993459) + (e >>> 2 & 858993459) | 0;
                        return G(e + (e >>> 4) & 252645135, 16843009) >>> 24 | 0
                    }

                    function bM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        if ((i | 0) >= 8192) return Ot(e | 0, t | 0, i | 0) | 0;
                        o = e | 0;
                        s = e + i | 0;
                        if ((e & 3) == (t & 3)) {
                            while (e & 3) {
                                if (!i) return o | 0;
                                r[e >> 0] = r[t >> 0] | 0;
                                e = e + 1 | 0;
                                t = t + 1 | 0;
                                i = i - 1 | 0
                            }
                            i = s & -4 | 0;
                            n = i - 64 | 0;
                            while ((e | 0) <= (n | 0)) {
                                a[e >> 2] = a[t >> 2];
                                a[e + 4 >> 2] = a[t + 4 >> 2];
                                a[e + 8 >> 2] = a[t + 8 >> 2];
                                a[e + 12 >> 2] = a[t + 12 >> 2];
                                a[e + 16 >> 2] = a[t + 16 >> 2];
                                a[e + 20 >> 2] = a[t + 20 >> 2];
                                a[e + 24 >> 2] = a[t + 24 >> 2];
                                a[e + 28 >> 2] = a[t + 28 >> 2];
                                a[e + 32 >> 2] = a[t + 32 >> 2];
                                a[e + 36 >> 2] = a[t + 36 >> 2];
                                a[e + 40 >> 2] = a[t + 40 >> 2];
                                a[e + 44 >> 2] = a[t + 44 >> 2];
                                a[e + 48 >> 2] = a[t + 48 >> 2];
                                a[e + 52 >> 2] = a[t + 52 >> 2];
                                a[e + 56 >> 2] = a[t + 56 >> 2];
                                a[e + 60 >> 2] = a[t + 60 >> 2];
                                e = e + 64 | 0;
                                t = t + 64 | 0
                            }
                            while ((e | 0) < (i | 0)) {
                                a[e >> 2] = a[t >> 2];
                                e = e + 4 | 0;
                                t = t + 4 | 0
                            }
                        } else {
                            i = s - 4 | 0;
                            while ((e | 0) < (i | 0)) {
                                r[e >> 0] = r[t >> 0] | 0;
                                r[e + 1 >> 0] = r[t + 1 >> 0] | 0;
                                r[e + 2 >> 0] = r[t + 2 >> 0] | 0;
                                r[e + 3 >> 0] = r[t + 3 >> 0] | 0;
                                e = e + 4 | 0;
                                t = t + 4 | 0
                            }
                        }
                        while ((e | 0) < (s | 0)) {
                            r[e >> 0] = r[t >> 0] | 0;
                            e = e + 1 | 0;
                            t = t + 1 | 0
                        }
                        return o | 0
                    }

                    function gM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        if ((t | 0) < (e | 0) & (e | 0) < (t + i | 0)) {
                            n = e;
                            t = t + i | 0;
                            e = e + i | 0;
                            while ((i | 0) > 0) {
                                e = e - 1 | 0;
                                t = t - 1 | 0;
                                i = i - 1 | 0;
                                r[e >> 0] = r[t >> 0] | 0
                            }
                            e = n
                        } else bM(e, t, i) | 0;
                        return e | 0
                    }

                    function yM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = e + i | 0;
                        t = t & 255;
                        if ((i | 0) >= 67) {
                            while (e & 3) {
                                r[e >> 0] = t;
                                e = e + 1 | 0
                            }
                            n = o & -4 | 0;
                            s = n - 64 | 0;
                            u = t | t << 8 | t << 16 | t << 24;
                            while ((e | 0) <= (s | 0)) {
                                a[e >> 2] = u;
                                a[e + 4 >> 2] = u;
                                a[e + 8 >> 2] = u;
                                a[e + 12 >> 2] = u;
                                a[e + 16 >> 2] = u;
                                a[e + 20 >> 2] = u;
                                a[e + 24 >> 2] = u;
                                a[e + 28 >> 2] = u;
                                a[e + 32 >> 2] = u;
                                a[e + 36 >> 2] = u;
                                a[e + 40 >> 2] = u;
                                a[e + 44 >> 2] = u;
                                a[e + 48 >> 2] = u;
                                a[e + 52 >> 2] = u;
                                a[e + 56 >> 2] = u;
                                a[e + 60 >> 2] = u;
                                e = e + 64 | 0
                            }
                            while ((e | 0) < (n | 0)) {
                                a[e >> 2] = u;
                                e = e + 4 | 0
                            }
                        }
                        while ((e | 0) < (o | 0)) {
                            r[e >> 0] = t;
                            e = e + 1 | 0
                        }
                        return o - i | 0
                    }

                    function AM(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[f >> 2] | 0;
                        t = i + e | 0;
                        if ((e | 0) > 0 & (t | 0) < (i | 0) | (t | 0) < 0) {
                            bt(12);
                            return -1
                        }
                        a[f >> 2] = t;
                        if ((t | 0) > (J() | 0) ? (q() | 0) == 0 : 0) {
                            a[f >> 2] = i;
                            bt(12);
                            return -1
                        }
                        return i | 0
                    }

                    function wM(e) {
                        e = e | 0;
                        return ZG[e & 7]() | 0
                    }

                    function xM(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return KG[e & 63](t | 0) | 0
                    }

                    function kM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return e$[e & 31](t | 0, i | 0) | 0
                    }

                    function TM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        return t$[e & 7](t | 0, i | 0, r | 0) | 0
                    }

                    function EM(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        return i$[e & 7](t | 0, i | 0, r | 0, n | 0) | 0
                    }

                    function SM(e, t, i, r, n, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        return r$[e & 1](t | 0, i | 0, r | 0, n | 0, a | 0, s | 0) | 0
                    }

                    function PM(e, t, i, r, n, a, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        return n$[e & 1](t | 0, i | 0, r | 0, n | 0, a | 0, s | 0, o | 0, u | 0, h | 0) | 0
                    }

                    function IM(e) {
                        e = e | 0;
                        a$[e & 15]()
                    }

                    function MM(e, t) {
                        e = e | 0;
                        t = t | 0;
                        s$[e & 63](t | 0)
                    }

                    function CM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        o$[e & 3](t | 0, +i)
                    }

                    function OM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        u$[e & 63](t | 0, i | 0)
                    }

                    function RM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        h$[e & 15](t | 0, i | 0, +r)
                    }

                    function DM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        l$[e & 7](t | 0, i | 0, r | 0)
                    }

                    function FM(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = +n;
                        f$[e & 7](t | 0, i | 0, r | 0, +n)
                    }

                    function BM(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        c$[e & 3](t | 0, i | 0, r | 0, n | 0)
                    }

                    function NM(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        d$[e & 1](t | 0, i | 0, r | 0, n | 0, a | 0)
                    }

                    function LM(e, t, i, r, n, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        p$[e & 0](t | 0, i | 0, r | 0, n | 0, a | 0, s | 0)
                    }

                    function UM(e, t, i, r, n, a, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        v$[e & 0](t | 0, i | 0, r | 0, n | 0, a | 0, s | 0, o | 0)
                    }

                    function VM() {
                        Y(0);
                        return 0
                    }

                    function XM(e) {
                        e = e | 0;
                        Y(1);
                        return 0
                    }

                    function jM(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Y(2);
                        return 0
                    }

                    function GM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Y(3);
                        return 0
                    }

                    function $M(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        Y(4);
                        return 0
                    }

                    function HM(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        Y(5);
                        return 0
                    }

                    function WM(e, t, i, r, n, a, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        Y(6);
                        return 0
                    }

                    function YM() {
                        Y(7)
                    }

                    function zM(e) {
                        e = e | 0;
                        Y(8)
                    }

                    function qM(e, t) {
                        e = e | 0;
                        t = +t;
                        Y(9)
                    }

                    function JM(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Y(10)
                    }

                    function QM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        Y(11)
                    }

                    function ZM(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Y(12)
                    }

                    function KM(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        Y(13)
                    }

                    function eC(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        Y(14)
                    }

                    function tC(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        Y(15)
                    }

                    function iC(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        Y(16)
                    }

                    function rC(e, t, i, r, n, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        Y(17)
                    }

                    function nC(e) {
                        e = e | 0;
                        e = vu(e) | 0;
                        if (!e) e = 0;
                        else e = u_(e) | 0;
                        return e | 0
                    }

                    function aC(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            a[e + 172 >> 2] = -1;
                            e = e + 192 | 0;
                            YD(a[e >> 2] | 0, 122);
                            YD(a[e >> 2] | 0, 123)
                        }
                        return
                    }

                    function sC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        kD(e, t, i);
                        return
                    }

                    function oC() {
                        return KE(a[1841] | 0) | 0
                    }

                    function uC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = vu(e) | 0;
                        if (i | 0 ? (r = a[i + 60 >> 2] | 0, n = a[r + 228 >> 2] | 0, n | 0) : 0) l$[n & 7](a[r + 232 >> 2] | 0, e, t);
                        return
                    }

                    function hC(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0;
                        s = vu(e) | 0;
                        if (s | 0 ? (u = a[s + 60 >> 2] | 0, o = a[u + 236 >> 2] | 0, o | 0) : 0) p$[o & 0](a[u + 240 >> 2] | 0, e, t, i, r, n);
                        return
                    }

                    function lC(e) {
                        e = e | 0;
                        return e >>> 0 > 3 | 0
                    }

                    function fC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        eo();
                        switch (e | 0) {
                            case 0:
                                {
                                    e = MD(i, t) | 0;
                                    break
                                }
                            case 1:
                                {
                                    e = CD(i, t) | 0;
                                    break
                                }
                            case 2:
                                {
                                    e = OD(i, t) | 0;
                                    break
                                }
                            case 3:
                                {
                                    e = RD(i, t) | 0;
                                    break
                                }
                            case 4:
                                {
                                    e = DD(i) | 0;
                                    break
                                }
                            default:
                                e = -1
                        }
                        so();
                        return e | 0
                    }

                    function cC(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = Ls() | 0;
                        r = a[e + 680 >> 2] | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (r | 0)) {
                                t = 0;
                                break
                            }
                            if ((n[e + 512 + (t * 12 | 0) >> 1] | 0) == i << 16 >> 16) {
                                t = 1;
                                break
                            } else t = t + 1 | 0
                        }
                        return t | 0
                    }

                    function dC() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(7500, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else a[e >> 2] = -1;
                        p = t;
                        return e | 0
                    }

                    function pC(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        i = n;
                        switch (a[e + 156 >> 2] | 0) {
                            case 4:
                                {
                                    t = lD(a[e + 104 >> 2] | 0, a[e + 160 >> 2] | 0, a[e + 164 >> 2] | 0) | 0;r = 8;
                                    break
                                }
                            case 5:
                                {
                                    t = fD(a[e + 104 >> 2] | 0, a[e + 160 >> 2] | 0, a[e + 164 >> 2] | 0) | 0;r = 8;
                                    break
                                }
                            case 6:
                                {
                                    t = cD(a[e + 104 >> 2] | 0, a[e + 160 >> 2] | 0, a[e + 164 >> 2] | 0) | 0;r = 8;
                                    break
                                }
                            case 7:
                                {
                                    t = dD(a[e + 104 >> 2] | 0, a[e + 160 >> 2] | 0, a[e + 164 >> 2] | 0) | 0;r = 8;
                                    break
                                }
                            case 8:
                                {
                                    t = pD(a[e + 104 >> 2] | 0, a[e + 160 >> 2] | 0) | 0;r = 8;
                                    break
                                }
                            case 9:
                                {
                                    a[i >> 2] = a[e + 160 >> 2];a[i + 4 >> 2] = a[e + 164 >> 2];t = vD(a[e + 104 >> 2] | 0, i) | 0;r = 8;
                                    break
                                }
                            default:
                                {}
                        }
                        if ((r | 0) == 8 ? (t | 0) >= 0 : 0) mD(e, t);
                        p = n;
                        return
                    }

                    function vC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return xC(e, t, 3, 1) | 0
                    }

                    function mC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return xC(e, t, 1, (r[e + 57 >> 0] | 0) != 0 & 1) | 0
                    }

                    function _C(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        s = a[e + 60 >> 2] | 0;
                        t = a[e + 76 >> 2] | 0;
                        c = s + 192 | 0;
                        d = af(a[(a[c >> 2] | 0) + 684 >> 2] | 0) | 0;
                        i = Fa() | 0;
                        p = e + 20 | 0;
                        f = 0;
                        while (1) {
                            if ((f | 0) >= (i | 0)) break;
                            if ((n[(a[p >> 2] | 0) + (f << 1) >> 1] | 0) == -1) break;
                            f = f + 1 | 0
                        }
                        e: do {
                            if ((f + d | 0) <= (i | 0)) {
                                u = (t & 2 | 0) == 0;
                                h = e + 131 | 0;
                                l = e + 5 | 0;
                                s = s + 280 | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (d | 0)) break;
                                    t = i + f | 0;
                                    o = sf(a[c >> 2] | 0, i) | 0;
                                    do {
                                        if (u) {
                                            if (!(r[h >> 0] | 0)) r[h >> 0] = 1;
                                            Vo(o);
                                            n[(a[p >> 2] | 0) + (t << 1) >> 1] = o;
                                            t = a[s >> 2] | 0;
                                            v = Zo(t) | 0;
                                            r[l >> 0] = 1;
                                            if (!v)
                                                if (!(tu(o, e) | 0)) {
                                                    t = 0;
                                                    break e
                                                } else break;
                                            t = a[t + 32 >> 2] | 0;
                                            if (!(Ko(t) | 0))
                                                if (!(tu(o, e) | 0)) {
                                                    t = 0;
                                                    break e
                                                } else break;
                                            else if (!(eu(t, o, e) | 0)) {
                                                t = 0;
                                                break e
                                            } else break
                                        } else {
                                            n[(a[p >> 2] | 0) + (t << 1) >> 1] = o;
                                            r[l >> 0] = 2
                                        }
                                    } while (0);
                                    i = i + 1 | 0
                                }
                                if (u & (d | 0) > 0 ? (wC(a[c >> 2] | 0) | 0) == 1 : 0) {
                                    mu(e, 0, 64);
                                    t = 1
                                } else t = 1
                            } else {
                                sE();
                                t = 0
                            }
                        } while (0);
                        return t | 0
                    }

                    function bC(e) {
                        e = e | 0;
                        return (cI(a[e + 60 >> 2] | 0) | 0) >>> 31 ^ 1 | 0
                    }

                    function gC(e) {
                        e = e | 0;
                        var t = 0;
                        t = e + 60 | 0;
                        if ((cI(a[t >> 2] | 0) | 0) <= -1) {
                            dI(t, 0);
                            hS(6672, e)
                        }
                        return
                    }

                    function yC(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        o = r[t + 124 >> 0] | 0;
                        if (o << 24 >> 24) {
                            l = e + 212 | 0;
                            s = a[l >> 2] | 0;
                            if (o << 24 >> 24 == 2 & (s | 0) == 0) {
                                s = Qd() | 0;
                                if (s | 0) AC(s, e);
                                s = a[l >> 2] | 0
                            }
                            if (s | 0 ? (u = e + 208 | 0, h = a[u >> 2] | 0, h | 0) : 0) {
                                o = t + 76 | 0;
                                a[o >> 2] = a[o >> 2] | 65536;
                                Ju(a[h + 120 >> 2] | 0, i);
                                if ((n | 0) == 1) {
                                    s = vu(a[(a[u >> 2] | 0) + 128 >> 2] | 0) | 0;
                                    if (s | 0) Su(a[s + 112 >> 2] | 0);
                                    l$[a[l >> 2] & 7](e, a[e + 216 >> 2] | 0, a[e + 200 >> 2] | 0)
                                }
                                r[t + 125 >> 0] = 1
                            }
                        }
                        return
                    }

                    function AC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 124 >> 2] = t;
                        __(t, e);
                        m_(t, e, 6);
                        v_(t, e, 21);
                        return
                    }

                    function wC(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        o = af(a[e + 684 >> 2] | 0) | 0;
                        u = Wo() | 0;
                        h = P;
                        e: do {
                            if (!(rf(0) | 0)) {
                                sE();
                                t = 0
                            } else {
                                l = (a[1687] | 0) + 12 | 0;
                                t = 0;
                                while (1) {
                                    if ((t | 0) >= (o | 0)) {
                                        t = 0;
                                        break
                                    }
                                    r = sf(e, t) | 0;
                                    i = a[l >> 2] | 0;
                                    r = r & 65535;
                                    s = n[i + (r * 84 | 0) + 42 >> 1] | 0;
                                    if (s << 16 >> 16 ? (r = kE(a[i + (r * 84 | 0) + 16 >> 2] | 0) | 0, r = sM(u | 0, h | 0, r | 0, P | 0) | 0, f = P, s = fM(s & 65535 | 0, 0, 1e3, 0) | 0, i = P, f >>> 0 < i >>> 0 | (f | 0) == (i | 0) & r >>> 0 < s >>> 0) : 0) {
                                        t = 1;
                                        break e
                                    }
                                    t = t + 1 | 0
                                }
                                while (1) {
                                    if ((t | 0) >= (o | 0)) {
                                        t = 0;
                                        break e
                                    }
                                    r = sf(e, t) | 0;
                                    i = a[l >> 2] | 0;
                                    r = r & 65535;
                                    if (n[i + (r * 84 | 0) + 42 >> 1] | 0) RE(u, h, a[i + (r * 84 | 0) + 16 >> 2] | 0);
                                    t = t + 1 | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function xC(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0;
                        r[e + 56 >> 0] = 1;
                        do {
                            if ((KE(a[e + 20 >> 2] | 0) | 0) >= 1 ? (p = kC(t) | 0, (p | 0) != 0) : 0) {
                                f = a[e + 12 >> 2] | 0;
                                ZE(f) | 0;
                                c = e + 36 | 0;
                                d = e + 80 | 0;
                                l = 0;
                                o = 0;
                                while (1) {
                                    if (!f) break;
                                    u = a[f >> 2] | 0;
                                    h = TC(c, u, t, a[d >> 2] | 0) | 0;
                                    if (h) {
                                        n[h + 10 >> 1] = l;
                                        r[h + 9 >> 0] = r[u + 78 >> 0] | 0;
                                        a[h + 20 >> 2] = a[u + 40 >> 2];
                                        EC(p, h);
                                        o = (o | 0) == 0 ? h : o
                                    }
                                    l = l + 1 << 16 >> 16;
                                    f = a[f + 4 >> 2] | 0
                                }
                                if (((KE(a[p + 20 >> 2] | 0) | 0) << 16 | 0) < 65536) {
                                    oh(p);
                                    o = -1;
                                    break
                                } else {
                                    SC(p, r[e + 59 >> 0] | 0);
                                    ih(p, i, s);
                                    r[p + 24 >> 0] = 1;
                                    tS(e + 24 | 0, p);
                                    p = PC(p) | 0;
                                    o = o + 12 | 0;
                                    IC(a[(a[o >> 2] | 0) + 4 >> 2] | 0, a[e + 64 >> 2] | 0, a[e + 68 >> 2] | 0);
                                    MC(a[(a[o >> 2] | 0) + 4 >> 2] | 0, a[e + 72 >> 2] | 0, a[e + 76 >> 2] | 0);
                                    a[e + 52 >> 2] = p;
                                    o = p;
                                    break
                                }
                            } else o = -1
                        } while (0);
                        return o | 0
                    }

                    function kC(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = p;
                        p = p + 16 | 0;
                        t = o + 4 | 0;
                        s = o;
                        rS(6764, t);
                        t = a[t >> 2] | 0;
                        if (!t) {
                            NE();
                            t = 0
                        } else {
                            t = a[t >> 2] | 0;
                            u = t + 8 | 0;
                            a[u >> 2] = (a[u >> 2] | 0) + 1 & 65535;
                            u = t + 24 | 0;
                            n = t + 32 | 0;
                            i = t + 56 | 0;
                            a[u >> 2] = 0;
                            r[u + 4 >> 0] = 0;
                            a[n >> 2] = 0;
                            a[n + 4 >> 2] = 0;
                            a[n + 8 >> 2] = 0;
                            a[n + 12 >> 2] = 0;
                            a[n + 16 >> 2] = 0;
                            a[n + 20 >> 2] = 0;
                            a[i >> 2] = -1;
                            n = t + 60 | 0;
                            a[n >> 2] = e;
                            if ((hD(a[e + 288 >> 2] | 0, s, 0) | 0) == 1) a[t + 52 >> 2] = a[s >> 2];
                            if ((vO(a[(a[n >> 2] | 0) + 288 >> 2] | 0, s, 0) | 0) == 1) a[i >> 2] = a[s >> 2];
                            i = t + 64 | 0;
                            n = i + 48 | 0;
                            do {
                                a[i >> 2] = 0;
                                i = i + 4 | 0
                            } while ((i | 0) < (n | 0))
                        }
                        p = o;
                        return t | 0
                    }

                    function TC(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        return CC(e, t, i, r) | 0
                    }

                    function EC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        tS(e + 12 | 0, t);
                        return
                    }

                    function SC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        r[e + 28 >> 0] = t;
                        return
                    }

                    function PC(e) {
                        e = e | 0;
                        if (!e) e = -1;
                        else e = ((e - (a[1665] | 0) | 0) / 112 | 0) << 16 | a[e + 8 >> 2] & 65535;
                        return e | 0
                    }

                    function IC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (e | 0) _h(a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function MC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (e | 0) bh(a[e + 4 >> 2] | 0, t, i);
                        return
                    }

                    function CC(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        rS(6776, s);
                        s = a[s >> 2] | 0;
                        if (s) {
                            s = a[s >> 2] | 0;
                            n = OC(e, t, i, n) | 0;
                            a[s + 12 >> 2] = n;
                            r[s + 8 >> 0] = 0;
                            a[s + 24 >> 2] = 2147483646;
                            if (!n) {
                                uh(s);
                                s = 0
                            }
                        } else {
                            NE();
                            s = 0
                        }
                        p = o;
                        return s | 0
                    }

                    function OC(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        A = p;
                        p = p + 32 | 0;
                        c = A + 16 | 0;
                        _ = A + 12 | 0;
                        b = A + 8 | 0;
                        g = A + 4 | 0;
                        y = A;
                        l = a[t + 36 >> 2] | 0;
                        do {
                            if ((l | 0) > -1) {
                                if ((l | 0) >= (a[1878] | 0)) {
                                    sE();
                                    o = 0;
                                    break
                                }
                                if ((a[(a[1879] | 0) + (l << 3) >> 2] | 0) < 1) {
                                    NE();
                                    o = 0
                                } else u = 6
                            } else u = 6
                        } while (0);
                        do {
                            if ((u | 0) == 6) {
                                o = RC(l) | 0;
                                d = r[t + 79 >> 0] | 0;
                                x = t + 8 | 0;
                                u = a[t + 44 >> 2] | 0;
                                w = t + 48 | 0;
                                v = a[t + 68 >> 2] | 0;
                                m = r[e + 8 >> 0] | 0;
                                a[o >> 2] = l;
                                f = o + 8 | 0;
                                a[f >> 2] = a[x >> 2];
                                a[f + 4 >> 2] = a[x + 4 >> 2];
                                a[f + 8 >> 2] = a[x + 8 >> 2];
                                a[f + 12 >> 2] = a[x + 12 >> 2];
                                a[f + 16 >> 2] = a[x + 16 >> 2];
                                a[f + 20 >> 2] = a[x + 20 >> 2];
                                a[f + 24 >> 2] = a[x + 24 >> 2];
                                a[o + 68 >> 2] = a[e + 4 >> 2];
                                f = o + 40 | 0;
                                a[f >> 2] = 0;
                                a[o + 44 >> 2] = u;
                                u = o + 48 | 0;
                                a[u >> 2] = a[w >> 2];
                                a[u + 4 >> 2] = a[w + 4 >> 2];
                                a[u + 8 >> 2] = a[w + 8 >> 2];
                                a[u + 12 >> 2] = a[w + 12 >> 2];
                                a[u + 16 >> 2] = a[w + 16 >> 2];
                                a[o + 500 >> 2] = -1;
                                r[o + 506 >> 0] = m;
                                r[o + 508 >> 0] = d;
                                r[o + 511 >> 0] = a[t + 52 >> 2];
                                a[o + 516 >> 2] = a[e >> 2];
                                r[o + 509 >> 0] = 0;
                                r[o + 510 >> 0] = 0;
                                e = o + 80 | 0;
                                a[e >> 2] = s;
                                r[o + 72 >> 0] = 0;
                                r[o + 73 >> 0] = 0;
                                r[o + 493 >> 0] = 0;
                                h[o + 128 >> 2] = 1.0;
                                a[o + 568 >> 2] = a[t + 40 >> 2];
                                a[o + 572 >> 2] = a[t + 72 >> 2];
                                n[o + 576 >> 1] = n[t + 76 >> 1] | 0;
                                a[o + 580 >> 2] = a[t + 80 >> 2];
                                a[o + 584 >> 2] = a[t + 84 >> 2];
                                s = o + 76 | 0;
                                a[s >> 2] = v | 0 ? v : i;
                                u = 0;
                                while (1) {
                                    if ((u | 0) == 8) break;
                                    n[o + 520 + (u << 1) >> 1] = -1;
                                    h[o + 536 + (u << 2) >> 2] = 0.0;
                                    u = u + 1 | 0
                                }
                                l = o + 84 | 0;
                                t = DC() | 0;
                                FC(a[s >> 2] | 0, c);
                                BC(a[s >> 2] | 0, c, a[e >> 2] | 0);
                                e = a[1880] | 0;
                                NC(o, e, c);
                                LC(e, l, f, 1) | 0;
                                u = UC(o, e) | 0;
                                do {
                                    if (!u) {
                                        x = a[e + 284 >> 2] | 0;
                                        if ((x | 0) != 0 ? (a[x + 24 >> 2] | 0) == 1 : 0) {
                                            if ((a[l >> 2] | 0) == 0 ? (VC(a[e + 364 >> 2] | 0) | 0) == 0 : 0) {
                                                sE();
                                                u = 3;
                                                break
                                            }
                                            if ((XC(a[o + 148 >> 2] | 0) | 0) == 1 ? (jC(a[e + 80 >> 2] | 0) | 0) == 0 : 0) {
                                                NE();
                                                u = 0
                                            } else u = 0
                                        } else u = 0
                                    }
                                } while (0);
                                a[_ >> 2] = 0;
                                a[b >> 2] = 0;
                                a[g >> 2] = 0;
                                a[y >> 2] = 0;
                                if ((GC(a[(a[s >> 2] | 0) + 312 >> 2] | 0, _) | 0) == 0 ? (a[s >> 2] | 0) == (v | 0) : 0) GC(a[i + 312 >> 2] | 0, _) | 0;
                                r[o + 505 >> 0] = a[_ >> 2];
                                if (!($C(a[(a[s >> 2] | 0) + 312 >> 2] | 0, b) | 0)) $C(a[e + 312 >> 2] | 0, b) | 0;
                                r[o + 504 >> 0] = a[b >> 2];
                                if (!(HC(a[(a[s >> 2] | 0) + 312 >> 2] | 0, y) | 0)) HC(a[e + 312 >> 2] | 0, y) | 0;
                                a[o + 36 >> 2] = a[y >> 2];
                                if (!(WC(a[(a[s >> 2] | 0) + 312 >> 2] | 0, g) | 0)) WC(a[(a[s >> 2] | 0) + 312 >> 2] | 0, g) | 0;
                                a[o + 56 >> 2] = a[g >> 2];
                                if (!u) {
                                    u = YC(o, t, d) | 0;
                                    if (u | 0) {
                                        zC(o, u);
                                        break
                                    }
                                    if (!(m << 24 >> 24)) {
                                        lh(o);
                                        o = 0
                                    }
                                }
                            }
                        } while (0);
                        p = A;
                        return o | 0
                    }

                    function RC(e) {
                        e = e | 0;
                        var t = 0;
                        t = uD() | 0;
                        r[t + 507 >> 0] = 1;
                        a[t >> 2] = e;
                        a[1675] = (a[1675] | 0) + 1;
                        e = t + 512 | 0;
                        a[e >> 2] = (a[e >> 2] | 0) + 1 & 65535;
                        return t | 0
                    }

                    function DC() {
                        var e = 0;
                        e = a[1928] | 0;
                        a[1928] = e + 1;
                        return e | 0
                    }

                    function FC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        w = p;
                        p = p + 80 | 0;
                        g = w;
                        b = w + 64 | 0;
                        r[b >> 0] = 0;
                        a[t >> 2] = 0;
                        y = t + 4 | 0;
                        r[y >> 0] = 0;
                        A = t + 5 | 0;
                        r[A >> 0] = 0;
                        m = t + 8 | 0;
                        a[m >> 2] = 0;
                        _ = t + 12 | 0;
                        a[_ >> 2] = 0;
                        c = 0;
                        d = 0;
                        o = e;
                        while (1) {
                            f = o + 40 | 0;
                            i = a[f >> 2] | 0;
                            if (!i) break;
                            a[i + 32 >> 2] = o;
                            u = r[o + 8 >> 0] | 0;
                            h = r[o + 9 >> 0] | 0;
                            l = o + 103 | 0;
                            o = o + 96 | 0;
                            i = 0;
                            while (1) {
                                if ((i | 0) >= (s[l >> 0] | 0 | 0)) break;
                                x = a[o >> 2] | 0;
                                nf(g, 16, b, n[x + (i << 2) >> 1] | 0, n[x + (i << 2) + 2 >> 1] | 0, 1) | 0;
                                i = i + 1 | 0
                            }
                            c = c | u & 255;
                            d = d | h & 255;
                            o = a[f >> 2] | 0
                        }
                        a[t >> 2] = o;
                        u = r[o + 8 >> 0] | 0;
                        l = r[o + 9 >> 0] | 0;
                        h = o + 103 | 0;
                        o = o + 96 | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (s[h >> 0] | 0 | 0)) break;
                            x = a[o >> 2] | 0;
                            nf(g, 16, b, n[x + (i << 2) >> 1] | 0, n[x + (i << 2) + 2 >> 1] | 0, 1) | 0;
                            i = i + 1 | 0
                        }
                        i = c | u & 255;
                        u = d | l & 255;
                        if ((a[e + 12 >> 2] | 0) != 6) {
                            o = a[e + 36 >> 2] | 0;
                            if (o) {
                                f = o;
                                v = 12
                            }
                        } else {
                            f = e;
                            v = 12
                        }
                        e: do {
                            if ((v | 0) == 12) {
                                a[e + 32 >> 2] = f;
                                e = r[f + 8 >> 0] | 0;
                                t = r[f + 9 >> 0] | 0;
                                h = f + 103 | 0;
                                l = f + 96 | 0;
                                o = 0;
                                while (1) {
                                    if ((o | 0) >= (s[h >> 0] | 0 | 0)) break;
                                    x = a[l >> 2] | 0;
                                    nf(g, 16, b, n[x + (o << 2) >> 1] | 0, n[x + (o << 2) + 2 >> 1] | 0, 0) | 0;
                                    o = o + 1 | 0
                                }
                                i = i | e & 255;
                                o = a[f + 80 >> 2] | 0;
                                if (o) {
                                    a[m >> 2] = o;
                                    i = aD(r[o + 152 >> 0] | 0) | 0 | i
                                }
                                o = a[f + 84 >> 2] | 0;
                                if (o) {
                                    a[_ >> 2] = o;
                                    i = sD(a[o + 152 >> 2] | 0) | 0 | i
                                }
                                h = s[f + 104 >> 0] | 0;
                                u = u | t & 255;
                                e = f;
                                o = 0;
                                while (1) {
                                    if ((o | 0) == (h | 0)) break e;
                                    x = a[f + 48 + (o << 2) >> 2] | 0;
                                    a[e + 32 >> 2] = x;
                                    u = u | (s[x + 9 >> 0] | 0);
                                    e = x;
                                    i = i | (s[x + 8 >> 0] | 0);
                                    o = o + 1 | 0
                                }
                            }
                        } while (0);
                        l = s[b >> 0] | 0;
                        h = 0;
                        while (1) {
                            if ((h | 0) == (l | 0)) break;
                            o = oD(n[g + (h << 2) >> 1] | 0) | 0;
                            if (!o) o = e;
                            else
                                while (1) {
                                    a[e + 32 >> 2] = o;
                                    e = i | (s[o + 8 >> 0] | 0);
                                    u = u | (s[o + 9 >> 0] | 0);
                                    i = a[o + 44 >> 2] | 0;
                                    if (!i) {
                                        i = e;
                                        break
                                    } else {
                                        x = o;
                                        o = i;
                                        i = e;
                                        e = x
                                    }
                                }
                            e = o;
                            h = h + 1 | 0
                        }
                        a[e + 32 >> 2] = 0;
                        r[y >> 0] = i;
                        r[A >> 0] = u;
                        p = w;
                        return
                    }

                    function BC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0.0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        x = p;
                        p = p + 16 | 0;
                        y = x + 4 | 0;
                        A = x + 8 | 0;
                        w = x;
                        while (1) {
                            c = a[t >> 2] | 0;
                            if (!c) break;
                            _ = c + 101 | 0;
                            b = c + 92 | 0;
                            g = c + 88 | 0;
                            f = 0;
                            while (1) {
                                if ((f | 0) >= (s[_ >> 0] | 0 | 0)) break;
                                d = n[(a[b >> 2] | 0) + (f << 1) >> 1] | 0;
                                v = a[(a[g >> 2] | 0) + (f << 2) >> 2] | 0;
                                h[y >> 2] = 0.0;
                                r = +nD(v, d);
                                e: do {
                                    if (!(r == 0.0)) {
                                        m = uR(v, d) | 0;
                                        OR(c, m & 65535, y) | 0;
                                        r = +yo(i, +h[y >> 2], r, 0.0, 1.0);
                                        u = (CR(v, d) | 0) & 65535;
                                        t = 0;
                                        while (1) {
                                            if ((t | 0) == (u | 0)) break e;
                                            n[A >> 1] = -1;
                                            l = RR(v, d, t & 65535) | 0;
                                            if (DR(l, A) | 0 ? (FR(v, d, m, l, r, w) | 0) == 1 : 0) BR(e, o[A >> 1] | 0, a[w >> 2] | 0);
                                            t = t + 1 | 0
                                        }
                                    }
                                } while (0);
                                f = f + 1 | 0
                            }
                            t = c + 32 | 0
                        }
                        p = x;
                        return
                    }

                    function NC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0.0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0.0,
                            k = 0.0,
                            T = 0,
                            E = 0.0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            G = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0,
                            Z = 0,
                            K = 0,
                            ee = 0,
                            te = 0,
                            ie = 0,
                            re = 0,
                            ne = 0,
                            ae = 0,
                            se = 0,
                            oe = 0,
                            ue = 0,
                            he = 0,
                            le = 0,
                            fe = 0,
                            ce = 0,
                            de = 0,
                            pe = 0,
                            ve = 0,
                            me = 0,
                            _e = 0,
                            be = 0,
                            ge = 0,
                            ye = 0,
                            Ae = 0,
                            we = 0,
                            xe = 0;
                        xe = p;
                        p = p + 848 | 0;
                        we = xe + 280 | 0;
                        l = xe + 368 | 0;
                        _ = xe + 272 | 0;
                        b = xe + 168 | 0;
                        g = xe + 132 | 0;
                        y = xe + 128 | 0;
                        w = xe + 112 | 0;
                        v = xe + 108 | 0;
                        m = xe + 104 | 0;
                        W = xe;
                        Y = xe + 176 | 0;
                        z = xe + 100 | 0;
                        q = xe + 96 | 0;
                        J = xe + 92 | 0;
                        Q = xe + 88 | 0;
                        Z = xe + 84 | 0;
                        K = xe + 80 | 0;
                        ee = xe + 76 | 0;
                        te = xe + 72 | 0;
                        ie = xe + 68 | 0;
                        re = xe + 64 | 0;
                        ne = xe + 60 | 0;
                        ae = xe + 56 | 0;
                        se = xe + 52 | 0;
                        oe = xe + 48 | 0;
                        ue = xe + 44 | 0;
                        he = xe + 40 | 0;
                        le = xe + 36 | 0;
                        fe = xe + 32 | 0;
                        ce = xe + 28 | 0;
                        de = xe + 24 | 0;
                        pe = xe + 20 | 0;
                        ve = xe + 16 | 0;
                        me = xe + 12 | 0;
                        _e = xe + 8 | 0;
                        be = xe + 136 | 0;
                        ge = xe + 116 | 0;
                        Vp(a[e + 516 >> 2] | 0);
                        ho(t);
                        gO(t, i);
                        yO(t);
                        ye = e + 496 | 0;
                        h[ye >> 2] = 0.0;
                        f = e + 224 | 0;
                        aE(f, 264);
                        aE(e + 84 | 0, 68);
                        aE(e + 152 | 0, 72);
                        j = AO(t) | 0;
                        G = t + 80 | 0;
                        H = ll(a[G >> 2] | 0) | 0;
                        a[we >> 2] = H;
                        $ = we + 4 | 0;
                        a[$ >> 2] = H;
                        H = we + 8 | 0;
                        aE(H, 68);
                        if ((j | 0) == 1) {
                            i = hl(t) | 0;
                            if ((i | 0) == 1) {
                                i = t + 84 | 0;
                                o = a[i >> 2] | 0;
                                u = a[$ >> 2] | 0;
                                if (!o) {
                                    o = cl(u) | 0;
                                    a[i >> 2] = o
                                }
                                d = wO(a[(a[G >> 2] | 0) + 128 >> 2] | 0, o) | 0;
                                o = xO(u, o) | 0;
                                do {
                                    if ((o | 0) != 1)
                                        if ((u | 0) != 0 ? (a[u + 320 >> 2] | 0) == 1 : 0) {
                                            u = a[we >> 2] | 0;
                                            l = 0;
                                            i = u;
                                            while (1) {
                                                i = a[i + 332 >> 2] | 0;
                                                if ((i | 0) == (u | 0)) break;
                                                else l = l + 1 | 0
                                            }
                                            if (!l) {
                                                a[f >> 2] = r[e + 511 >> 0];
                                                a[e + 228 >> 2] = 2;
                                                f = 0;
                                                l = 0;
                                                break
                                            } else {
                                                f = a[u + 332 >> 2] | 0;
                                                a[$ >> 2] = f;
                                                hp(t, f);
                                                f = 0;
                                                break
                                            }
                                        } else {
                                            f = 0;
                                            l = 1
                                        }
                                    else {
                                        f = cf(8, 0, 28, l, 480) | 0;
                                        l = kO(a[u + 128 >> 2] | 0) | 0
                                    }
                                } while (0);
                                i = a[e + 4 >> 2] | 0;
                                if ((i | 0) != 0 ? (A = a[i + 4 >> 2] | 0, (A | 0) != 0) : 0) {
                                    Wl(_, 3);
                                    TO(A, +h[_ >> 2]);
                                    Wl(b, 79);
                                    i = A + 236 | 0;
                                    EO(a[i >> 2] | 0, 2, 1, +h[b >> 2]);
                                    Wl(g, 80);
                                    EO(a[i >> 2] | 0, 2, 2, +h[g >> 2]);
                                    Wl(y, 82);
                                    EO(a[i >> 2] | 0, 1, 2, +h[y >> 2]);
                                    Wl(w, 83);
                                    EO(a[i >> 2] | 0, 1, 1, +h[w >> 2]);
                                    Wl(v, 84);
                                    EO(a[i >> 2] | 0, 1, 2, +h[v >> 2]);
                                    Wl(m, 133);
                                    EO(a[i >> 2] | 0, 14, 3, +h[m >> 2]);
                                    pp(t);
                                    i = 1;
                                    u = d
                                } else {
                                    i = 1;
                                    u = d
                                }
                            } else {
                                o = 0;
                                u = 0;
                                f = 0;
                                l = 1
                            }
                        } else {
                            i = 0;
                            o = 0;
                            u = 0;
                            f = 0;
                            l = 1
                        }
                        a[H >> 2] = i;
                        V = we + 76 | 0;
                        X = we + 80 | 0;
                        j = we + 84 | 0;
                        U = (i | 0) == 1;
                        M = (o | 0) == 1;
                        C = t + 84 | 0;
                        O = W + 4 | 0;
                        R = we + 12 | 0;
                        D = we + 52 | 0;
                        F = we + 40 | 0;
                        B = t + 308 | 0;
                        N = ge + 4 | 0;
                        L = ge + 8 | 0;
                        I = (u | 0) == 1;
                        P = t + 105 | 0;
                        S = 0;
                        while (1) {
                            if ((S | 0) >= (l | 0)) break;
                            T = W;
                            a[T >> 2] = 0;
                            a[T + 4 >> 2] = 1065353216;
                            h[V >> 2] = 0.0;
                            h[X >> 2] = 0.0;
                            h[j >> 2] = 0.0;
                            do {
                                if (U) {
                                    if (!M) {
                                        if (I) RO(t, H);
                                        CO(e, t, we);
                                        hp(t, a[$ >> 2] | 0);
                                        break
                                    }
                                    u = a[G >> 2] | 0;
                                    SO(a[a[u + 128 >> 2] >> 2] | 0, a[C >> 2] | 0, u, W);
                                    u = a[a[(a[G >> 2] | 0) + 128 >> 2] >> 2] | 0;
                                    hv(f);
                                    PO(f);
                                    o = u + 68 | 0;
                                    u = u + 64 | 0;
                                    i = 0;
                                    while (1) {
                                        if ((i | 0) >= (a[o >> 2] | 0)) break;
                                        ep(f, n[(a[u >> 2] | 0) + (i << 1) >> 1] | 0, 0) | 0;
                                        i = i + 1 | 0
                                    }
                                    IO(t, f);
                                    switch (a[W >> 2] | 0) {
                                        case 0:
                                            {
                                                MO(t, H);CO(e, t, we);
                                                break
                                            }
                                        case 1:
                                            {
                                                MO(t, H);E = +h[O >> 2];h[R >> 2] = E * +h[R >> 2];h[D >> 2] = E * +h[D >> 2];s = +h[F >> 2];CO(e, t, we);Hc(z, t, 3);i = a[z >> 2] | 0;
                                                if ((i | 0) == 2147483647) {
                                                    Wl(q, 3);
                                                    i = a[q >> 2] | 0
                                                }
                                                Hc(J, t, 79);o = a[J >> 2] | 0;
                                                if ((o | 0) == 2147483647) {
                                                    Wl(Q, 79);
                                                    o = a[Q >> 2] | 0
                                                }
                                                Hc(Z, t, 80);u = a[Z >> 2] | 0;
                                                if ((u | 0) == 2147483647) {
                                                    Wl(K, 80);
                                                    u = a[K >> 2] | 0
                                                }
                                                Hc(ee, t, 82);d = a[ee >> 2] | 0;
                                                if ((d | 0) == 2147483647) {
                                                    Wl(te, 82);
                                                    d = a[te >> 2] | 0
                                                }
                                                Hc(ie, t, 83);v = a[ie >> 2] | 0;
                                                if ((v | 0) == 2147483647) {
                                                    Wl(re, 83);
                                                    v = a[re >> 2] | 0
                                                }
                                                Hc(ne, t, 84);m = a[ne >> 2] | 0;
                                                if ((m | 0) == 2147483647) {
                                                    Wl(ae, 84);
                                                    m = a[ae >> 2] | 0
                                                }
                                                T = ru(r[P >> 0] | 0) | 0;_ = 0;
                                                while (1) {
                                                    if ((_ | 0) >= (T | 0)) break;
                                                    nu(t, _, Y + (_ * 12 | 0) | 0);
                                                    _ = _ + 1 | 0
                                                }
                                                _ = a[B >> 2] | 0;a[B >> 2] = 0;OO(t);co(t);a[B >> 2] = _;RO(t, H);DO(t);k = 1.0 - E;h[R >> 2] = +h[R >> 2] * k;h[D >> 2] = k * +h[D >> 2];h[F >> 2] = s + E * (s - +h[F >> 2]);CO(e, t, we);Hc(se, t, 3);_ = a[se >> 2] | 0;
                                                if ((_ | 0) == 2147483647) {
                                                    Wl(oe, 3);
                                                    _ = a[oe >> 2] | 0
                                                }
                                                Hc(ue, t, 79);b = a[ue >> 2] | 0;
                                                if ((b | 0) == 2147483647) {
                                                    Wl(he, 79);
                                                    b = a[he >> 2] | 0
                                                }
                                                Hc(le, t, 80);g = a[le >> 2] | 0;
                                                if ((g | 0) == 2147483647) {
                                                    Wl(fe, 80);
                                                    g = a[fe >> 2] | 0
                                                }
                                                Hc(ce, t, 82);y = a[ce >> 2] | 0;
                                                if ((y | 0) == 2147483647) {
                                                    Wl(de, 82);
                                                    y = a[de >> 2] | 0
                                                }
                                                Hc(pe, t, 83);A = a[pe >> 2] | 0;
                                                if ((A | 0) == 2147483647) {
                                                    Wl(ve, 83);
                                                    A = a[ve >> 2] | 0
                                                }
                                                Hc(me, t, 84);w = a[me >> 2] | 0;
                                                if ((w | 0) == 2147483647) {
                                                    Wl(_e, 84);
                                                    w = a[_e >> 2] | 0
                                                }
                                                x = (a[c >> 2] = i, +h[c >> 2]);s = (a[c >> 2] = _, +h[c >> 2]);go(t, 3, (x - s) * E + s);s = (a[c >> 2] = o, +h[c >> 2]);x = (a[c >> 2] = b, +h[c >> 2]);go(t, 79, (s - x) * E + x);x = (a[c >> 2] = u, +h[c >> 2]);s = (a[c >> 2] = g, +h[c >> 2]);go(t, 80, (x - s) * E + s);s = (a[c >> 2] = d, +h[c >> 2]);x = (a[c >> 2] = y, +h[c >> 2]);go(t, 82, (s - x) * E + x);x = (a[c >> 2] = v, +h[c >> 2]);s = (a[c >> 2] = A, +h[c >> 2]);go(t, 83, (x - s) * E + s);s = (a[c >> 2] = m, +h[c >> 2]);x = (a[c >> 2] = w, +h[c >> 2]);go(t, 84, (s - x) * E + x);a[be >> 2] = 0;a[be + 4 >> 2] = 0;a[be + 8 >> 2] = 0;a[be + 12 >> 2] = 0;a[be + 16 >> 2] = 0;a[be + 20 >> 2] = 0;a[be + 24 >> 2] = 0;a[be + 28 >> 2] = 0;u = ru(r[P >> 0] | 0) | 0;o = 0;
                                                while (1) {
                                                    if ((o | 0) >= (u | 0)) {
                                                        i = 0;
                                                        break
                                                    }
                                                    nu(t, o, ge);
                                                    s = +h[N >> 2] * k;
                                                    x = +h[L >> 2] * k;
                                                    d = n[ge >> 1] | 0;
                                                    i = 0;
                                                    while (1) {
                                                        if ((i | 0) >= (T | 0)) break;
                                                        if (d << 16 >> 16 == (n[Y + (i * 12 | 0) >> 1] | 0)) {
                                                            Ae = 58;
                                                            break
                                                        }
                                                        i = i + 1 | 0
                                                    }
                                                    if ((Ae | 0) == 58) {
                                                        Ae = 0;
                                                        s = s + E * +h[Y + (i * 12 | 0) + 4 >> 2];
                                                        x = x + E * +h[Y + (i * 12 | 0) + 8 >> 2];
                                                        a[be + (i << 2) >> 2] = 1
                                                    }
                                                    Oo(t, d, s) | 0;
                                                    Ll(t, d, x) | 0;
                                                    o = o + 1 | 0
                                                }
                                                while (1) {
                                                    if ((i | 0) >= (T | 0)) break;
                                                    if (!(a[be + (i << 2) >> 2] | 0)) {
                                                        k = E * +h[Y + (i * 12 | 0) + 8 >> 2];
                                                        w = n[Y + (i * 12 | 0) >> 1] | 0;
                                                        Oo(t, w, +h[Y + (i * 12 | 0) + 4 >> 2] * E) | 0;
                                                        Ll(t, w, k) | 0
                                                    }
                                                    i = i + 1 | 0
                                                }
                                                break
                                            }
                                        default:
                                            {
                                                RO(t, H);CO(e, t, we)
                                            }
                                    }
                                    DO(t)
                                } else CO(e, t, we)
                            } while (0);
                            S = S + 1 | 0
                        }
                        if (M) uo(f);
                        s = +h[V >> 2];
                        s = s < 1.0 ? s : 1.0;
                        h[e + 164 >> 2] = s;
                        k = +h[X >> 2];
                        k = k < 1.0 ? k : 1.0;
                        h[e + 176 >> 2] = k;
                        E = +h[j >> 2];
                        E = E < 1.0 ? E : 1.0;
                        h[e + 180 >> 2] = E;
                        if (!(!(s <= .0000152587890625) | (r[e + 492 >> 0] | 0) != 1) ? !(!(k <= .0000152587890625) | !(E <= .0000152587890625)) : 0) h[ye >> 2] = s * +h[ye >> 2];
                        i = e + 488 | 0;
                        a[i >> 2] = 1;
                        Ae = a[we >> 2] | 0;
                        if (Ae | 0 ? (a[Ae + 320 >> 2] | 0) == 1 : 0) a[i >> 2] = 0;
                        a[we >> 2] = 0;
                        if ((FO(a[t + 284 >> 2] | 0, we) | 0) == 1) r[e + 493 >> 0] = a[we >> 2];
                        r[e + 73 >> 0] = 1;
                        p = xe;
                        return
                    }

                    function LC(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        a[i >> 2] = 0;
                        n = a[e + 252 >> 2] | 0;
                        if ((n | 0) == 2147483647) {
                            e = 0;
                            n = 0
                        } else {
                            e = s[e + 276 >> 0] | 0 | r;
                            a[i >> 2] = n
                        }
                        if (!(a[t >> 2] | 0)) n = 0;
                        else {
                            a[i >> 2] = (a[t + 40 >> 2] | 0) + n;
                            n = a[t >> 2] | 0
                        }
                        return n | e | 0
                    }

                    function UC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0;
                        l = p;
                        p = p + 16 | 0;
                        u = l + 8 | 0;
                        i = l + 4 | 0;
                        o = l;
                        do {
                            if (r[e + 73 >> 0] | 0) {
                                s = e + 500 | 0;
                                if ((a[s >> 2] | 0) == -1 ? (vO(a[t + 288 >> 2] | 0, i, 1) | 0) == 1 : 0) a[s >> 2] = a[i >> 2];
                                a[o >> 2] = 0;
                                i = t + 284 | 0;
                                if (!(mO(a[i >> 2] | 0, o) | 0)) {
                                    i = 0;
                                    break
                                }
                                o = a[o >> 2] & 255;
                                r[e + 510 >> 0] = o;
                                if (o << 24 >> 24) {
                                    if (!((((r[e + 492 >> 0] | 0) == 1 ? (n = +h[e + 164 >> 2], n <= .0000152587890625) : 0) ? +h[e + 176 >> 2] <= .0000152587890625 : 0) ? +h[e + 180 >> 2] <= .0000152587890625 : 0)) n = 1.0;
                                    no(+h[t + 244 >> 2], a[i >> 2] | 0, u, 1) | 0;
                                    i = _O(e, n * +h[u >> 2]) | 0
                                } else i = 0
                            } else i = 0
                        } while (0);
                        p = l;
                        return i | 0
                    }

                    function VC(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function XC(e) {
                        e = e | 0;
                        return (e | 0) != 65535 | 0
                    }

                    function jC(e) {
                        e = e | 0;
                        if (!(+h[e + 24 >> 2] != 0.0) ? !(+h[e + 28 >> 2] != 0.0) : 0) e = +h[e + 32 >> 2] != 0.0 & 1;
                        else e = 1;
                        return e | 0
                    }

                    function GC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (i = a[e >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 16 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function $C(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (i = a[e + 4 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 17 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function HC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (i = a[e + 8 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 18 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function WC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[t >> 2] = 0;
                        if ((e | 0) != 0 ? (i = a[e + 12 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 19 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function YC(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = a[e >> 2] | 0;
                        if ((o | 0) > -1) {
                            r = a[(a[(a[e + 516 >> 2] | 0) + 60 >> 2] | 0) + 280 >> 2] | 0;
                            n = Zo(r) | 0;
                            do {
                                if (n) {
                                    n = JC(n, o) | 0;
                                    if (!n) {
                                        n = (a[1879] | 0) + (o << 3) | 0;
                                        r = 0;
                                        break
                                    } else break
                                } else {
                                    n = (a[1879] | 0) + (o << 3) | 0;
                                    r = 0
                                }
                            } while (0);
                            n = (a[n + 4 >> 2] | 0) >= (a[n >> 2] | 0) & 1
                        } else {
                            r = 0;
                            n = 0
                        }
                        s = a[e + 36 >> 2] | 0;
                        if ((a[e + 8 >> 2] | 0) == 8) r = eO(s, t, a[e + 44 >> 2] | 0, e + 12 | 0, a[e + 32 >> 2] | 0) | 0;
                        else r = ZC(s, n, o, r, a[e + 40 >> 2] | 0, t, i, a[e + 44 >> 2] | 0, e + 48 | 0, e) | 0;
                        if (!r) r = 0;
                        else {
                            o = r + 4 | 0;
                            i = a[o >> 2] | 0;
                            tO(i, Co(a[e + 516 >> 2] | 0) | 0);
                            dh(a[o >> 2] | 0)
                        }
                        return r | 0
                    }

                    function zC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        a[e + 4 >> 2] = t;
                        t = a[t + 4 >> 2] | 0;
                        a[t + 472 >> 2] = a[e + 568 >> 2];
                        a[t + 308 >> 2] = a[e + 572 >> 2];
                        n[t + 312 >> 1] = n[e + 576 >> 1] | 0;
                        t = a[e >> 2] | 0;
                        if ((t | 0) > -1 ? (i = qC(e, t) | 0, i | 0) : 0) {
                            i = i + 4 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + 1
                        }
                        return
                    }

                    function qC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if ((a[1878] | 0) > (t | 0))
                                if ((t | 0) >= 0) {
                                    if (!e) {
                                        e = (a[1879] | 0) + (t << 3) | 0;
                                        break
                                    }
                                    e = Zo(a[(a[(a[e + 516 >> 2] | 0) + 60 >> 2] | 0) + 280 >> 2] | 0) | 0;
                                    if (!e) {
                                        e = (a[1879] | 0) + (t << 3) | 0;
                                        break
                                    }
                                    e = JC(e, t) | 0;
                                    if (!e) e = (a[1879] | 0) + (t << 3) | 0
                                } else e = 6696;
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function JC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((t | 0) >= 0 ? (a[e + 28 >> 2] | 0) > (t | 0) : 0) {
                            e = a[e + 24 >> 2] | 0;
                            return ((e | 0) == 0 ? 0 : e + (t << 3) | 0) | 0
                        }
                        return 0
                    }

                    function QC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        sO(e);
                        return
                    }

                    function ZC(e, t, i, r, n, s, o, u, h, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 16 | 0;
                        c = v + 4 | 0;
                        d = v;
                        a[c >> 2] = 0;
                        if (t) {
                            t = oO(i, r, n, s, o, c) | 0;
                            if (!t) t = 0;
                            else f = 3
                        } else {
                            t = 0;
                            f = 3
                        }
                        do {
                            if ((f | 0) == 3) {
                                f = uO(e, u, h) | 0;
                                if (f | 0) {
                                    ph(t);
                                    rO(f, i, r, n, s, 22, l);
                                    t = f;
                                    break
                                }
                                if (t | 0 ? hO(a[c >> 2] | 0, e, u, h, d) | 0 : 0) {
                                    ph(t);
                                    rO(t, i, r, n, s, 22, l);
                                    break
                                }
                                f = lO(e, n, s, o, u, h) | 0;
                                if (!f) t = 0;
                                else {
                                    ph((f | 0) == (t | 0) ? 0 : t);
                                    ph(f);
                                    rO(f, i, r, n, s, 22, l);
                                    t = f
                                }
                            }
                        } while (0);
                        p = v;
                        return t | 0
                    }

                    function KC(e, t) {
                        e = e | 0;
                        t = t | 0;
                        sO(a[e + 32 >> 2] | 0);
                        return
                    }

                    function eO(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        e = iO(e, i, r) | 0;
                        if (!e) e = 0;
                        else {
                            rO(e, 0, 0, 0, t, 23, n);
                            Ur(a[e + 4 >> 2] | 0)
                        }
                        return e | 0
                    }

                    function tO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else a[e + 480 >> 2] = t;
                        return
                    }

                    function iO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        h = p;
                        p = p + 16 | 0;
                        u = h;
                        r = a[1661] | 0;
                        e: do {
                            if (ZE(r) | 0) {
                                o = r;
                                s = 0;
                                n = 0;
                                while (1) {
                                    if (!o) break;
                                    r = a[o >> 2] | 0;
                                    if (!(nO(r, e, t, i, u) | 0)) {
                                        l = a[u >> 2] | 0;
                                        r = s;
                                        n = n >>> 0 < l >>> 0 ? l : n
                                    } else {
                                        r = aO(r) | 0;
                                        if (r | 0) break e;
                                        r = s + 1 | 0
                                    }
                                    o = a[o + 4 >> 2] | 0;
                                    s = r
                                }
                                if ((s | 0) < 1) switch (n | 0) {
                                    case 0:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 1:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 2:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 3:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 5:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 6:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    default:
                                        {
                                            NE();r = 0;
                                            break e
                                        }
                                } else r = 0
                            } else {
                                NE();
                                r = 0
                            }
                        } while (0);
                        p = h;
                        return r | 0
                    }

                    function rO(e, t, i, r, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        a[e + 16 >> 2] = t;
                        a[e + 20 >> 2] = i;
                        a[e + 24 >> 2] = r;
                        a[e + 28 >> 2] = s;
                        a[e + 12 >> 2] = o;
                        a[e + 8 >> 2] = u;
                        u = (a[e >> 2] | 0) + 14 | 0;
                        n[u >> 1] = (n[u >> 1] | 0) + 1 << 16 >> 16;
                        return
                    }

                    function nO(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0;
                        do {
                            if ((a[e + 16 >> 2] | 0) == (t | 0))
                                if (a[e + 20 >> 2] & i) {
                                    t = a[e + 56 >> 2] | 0;
                                    if ((a[t + 8 >> 2] | 0) >= (a[r + 8 >> 2] | 0))
                                        if ((a[t + 12 >> 2] | 0) >= (a[r + 12 >> 2] | 0)) {
                                            i = a[r + 16 >> 2] | 0;
                                            if (i | 0 ? (a[t + 16 >> 2] | 0) != (i | 0) : 0) {
                                                e = 5;
                                                s = 9;
                                                break
                                            }
                                            e = a[r >> 2] | 0;
                                            if ((e | 0) != 0 ? (JI(a[t >> 2] | 0, e) | 0) == 0 : 0) e = 1;
                                            else {
                                                e = 6;
                                                s = 9
                                            }
                                        } else {
                                            e = 3;
                                            s = 9
                                        }
                                    else {
                                        e = 2;
                                        s = 9
                                    }
                                } else {
                                    e = 1;
                                    s = 9
                                }
                            else {
                                e = 0;
                                s = 9
                            }
                        } while (0);
                        if ((s | 0) == 9) {
                            a[n >> 2] = e;
                            e = 0
                        }
                        return e | 0
                    }

                    function aO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0;
                        t = n[e + 12 >> 1] | 0;
                        e: do {
                            if ((n[e + 14 >> 1] | 0) < t << 16 >> 16) {
                                o = t << 16 >> 16;
                                s = e + 44 | 0;
                                t = 0;
                                r = 0;
                                while (1) {
                                    if ((r | 0) >= (o | 0)) break e;
                                    i = a[s >> 2] | 0;
                                    e = i + (r << 5) | 0;
                                    if (!(a[i + (r << 5) + 8 >> 2] | 0)) switch (((a[(a[i + (r << 5) + 4 >> 2] | 0) + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                                        case 0:
                                        case 3:
                                            {
                                                t = e;
                                                break e
                                            }
                                        default:
                                            t = e
                                    }
                                    r = r + 1 | 0
                                }
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function sO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        a[e + 4 >> 2] = 0;
                        t = a[e >> 2] | 0;
                        if ((t | 0) > -1 ? (i = qC(e, t) | 0, i | 0) : 0) {
                            i = i + 4 | 0;
                            a[i >> 2] = (a[i >> 2] | 0) + -1
                        }
                        return
                    }

                    function oO(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        m = p;
                        p = p + 16 | 0;
                        v = m;
                        u = a[1661] | 0;
                        do {
                            if (ZE(u) | 0) {
                                l = 0;
                                o = 0;
                                h = 0;
                                while (1) {
                                    if (!u) break;
                                    d = a[u >> 2] | 0;
                                    c = pO(d, e, t, r, v) | 0;
                                    _ = (o | 0) == 0;
                                    f = a[v >> 2] | 0;
                                    h = _ ? d : h;
                                    o = _ ? c : o;
                                    l = _ ? f : l;
                                    if (c) {
                                        b = a[c + 24 >> 2] | 0;
                                        _ = a[o + 24 >> 2] | 0;
                                        _ = (b | 0) < (_ | 0) | f >>> 0 > l >>> 0 & (b | 0) == (_ | 0);
                                        l = _ ? f : l;
                                        o = _ ? c : o;
                                        h = _ ? d : h
                                    }
                                    u = a[u + 4 >> 2] | 0
                                }
                                if (o) {
                                    u = a[o + 24 >> 2] | 0;
                                    if (n << 24 >> 24 == 1) {
                                        if ((u | 0) >= (i | 0)) {
                                            o = 0;
                                            break
                                        }
                                    } else if ((u | 0) > (i | 0)) {
                                        o = 0;
                                        break
                                    }
                                    a[s >> 2] = h
                                } else o = 0
                            } else o = 0
                        } while (0);
                        p = m;
                        return o | 0
                    }

                    function uO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        l = p;
                        p = p + 32 | 0;
                        u = l;
                        h = l + 8 | 0;
                        r = a[1661] | 0;
                        e: do {
                            if (ZE(r) | 0) {
                                o = r;
                                s = 0;
                                n = 0;
                                while (1) {
                                    if (!o) break;
                                    r = a[o >> 2] | 0;
                                    if (!(hO(r, e, t, i, u) | 0)) {
                                        f = a[u >> 2] | 0;
                                        r = s;
                                        n = n >>> 0 < f >>> 0 ? f : n
                                    } else {
                                        r = cO(r) | 0;
                                        if (r | 0) break e;
                                        r = s + 1 | 0
                                    }
                                    o = a[o + 4 >> 2] | 0;
                                    s = r
                                }
                                if ((s | 0) < 1) switch (n | 0) {
                                    case 0:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 1:
                                        {
                                            dO(t, h);sE();r = 0;
                                            break e
                                        }
                                    case 2:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 3:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    case 4:
                                        {
                                            NE();r = 0;
                                            break e
                                        }
                                    case 5:
                                        {
                                            sE();r = 0;
                                            break e
                                        }
                                    default:
                                        {
                                            NE();r = 0;
                                            break e
                                        }
                                } else r = 0
                            } else {
                                NE();
                                r = 0
                            }
                        } while (0);
                        p = l;
                        return r | 0
                    }

                    function hO(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        do {
                            if ((a[e + 16 >> 2] | 0) == (t | 0)) {
                                if (!(a[e + 20 >> 2] & i)) {
                                    a[n >> 2] = 1;
                                    e = 0;
                                    break
                                }
                                if ((a[e + 28 >> 2] | 0) < (a[r + 4 >> 2] | 0)) {
                                    a[n >> 2] = 2;
                                    e = 0;
                                    break
                                }
                                if ((a[e + 36 >> 2] | 0) < (a[r + 12 >> 2] | 0)) {
                                    a[n >> 2] = 3;
                                    e = 0;
                                    break
                                }
                                if ((a[e + 24 >> 2] | 0) < (a[r >> 2] | 0)) {
                                    a[n >> 2] = 4;
                                    e = 0;
                                    break
                                }
                                r = a[r + 8 >> 2] | 0;
                                if ((r | 0) != 0 ? (a[e + 32 >> 2] | 0) != (r | 0) : 0) {
                                    a[n >> 2] = 5;
                                    e = 0
                                } else e = 1
                            } else {
                                a[n >> 2] = 0;
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function lO(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        m = p;
                        p = p + 16 | 0;
                        d = m + 4 | 0;
                        v = m;
                        u = a[1661] | 0;
                        do {
                            if (ZE(u) | 0) {
                                c = 0;
                                o = 0;
                                while (1) {
                                    if (!u) break;
                                    h = a[u >> 2] | 0;
                                    if (hO(h, e, n, s, v) | 0) {
                                        f = fO(h, i, d) | 0;
                                        h = (o | 0) == 0;
                                        l = a[d >> 2] | 0;
                                        o = h ? f : o;
                                        h = h ? l : c;
                                        if (f) {
                                            _ = a[f + 24 >> 2] | 0;
                                            c = a[o + 24 >> 2] | 0;
                                            c = (_ | 0) < (c | 0) | l >>> 0 > h >>> 0 & (_ | 0) == (c | 0);
                                            h = c ? l : h;
                                            o = c ? f : o
                                        }
                                    } else h = c;
                                    c = h;
                                    u = a[u + 4 >> 2] | 0
                                }
                                if (o) {
                                    u = a[o + 24 >> 2] | 0;
                                    if (r << 24 >> 24 == 1) {
                                        if ((u | 0) >= (t | 0)) {
                                            o = 0;
                                            break
                                        }
                                    } else if ((u | 0) > (t | 0)) {
                                        o = 0;
                                        break
                                    }
                                } else o = 0
                            } else o = 0
                        } while (0);
                        p = m;
                        return o | 0
                    }

                    function fO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = n[e + 12 >> 1] | 0;
                        f = e + 44 | 0;
                        c = t + 1 | 0;
                        o = 0;
                        l = 0;
                        r = 2147483647;
                        e = 0;
                        while (1) {
                            if ((l | 0) >= (d | 0)) break;
                            s = a[f >> 2] | 0;
                            h = s + (l << 5) | 0;
                            u = a[s + (l << 5) + 24 >> 2] | 0;
                            do {
                                if ((u | 0) < (r | 0)) {
                                    e = a[s + (l << 5) + 28 >> 2] | 0;
                                    if (e >>> 0 > t >>> 0) {
                                        s = c + ~e | 0;
                                        r = u;
                                        e = h;
                                        break
                                    } else {
                                        s = t - e | 0;
                                        r = u;
                                        e = h;
                                        break
                                    }
                                } else if ((u | 0) == (r | 0)) {
                                    s = a[s + (l << 5) + 28 >> 2] | 0;
                                    s = s >>> 0 > t >>> 0 ? c + ~s | 0 : t - s | 0;
                                    u = s >>> 0 < o >>> 0;
                                    s = u ? o : s;
                                    e = u ? e : h
                                } else s = o
                            } while (0);
                            o = s;
                            l = l + 1 | 0
                        }
                        a[i >> 2] = o;
                        return e | 0
                    }

                    function cO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0;
                        t = n[e + 12 >> 1] | 0;
                        e: do {
                            if ((n[e + 14 >> 1] | 0) < t << 16 >> 16) {
                                o = t << 16 >> 16;
                                s = e + 44 | 0;
                                t = 0;
                                r = 0;
                                while (1) {
                                    if ((r | 0) >= (o | 0)) break e;
                                    i = a[s >> 2] | 0;
                                    e = i + (r << 5) | 0;
                                    if (!(a[i + (r << 5) + 8 >> 2] | 0)) switch (((a[(a[i + (r << 5) + 4 >> 2] | 0) + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                                        case 0:
                                        case 3:
                                            {
                                                t = e;
                                                break e
                                            }
                                        default:
                                            t = e
                                    }
                                    r = r + 1 | 0
                                }
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function dO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e: do {
                            if ((e | 0) >= 64) {
                                if ((e | 0) < 4096) switch (e | 0) {
                                    case 128:
                                        {
                                            mS(t, 16, 4091);
                                            break e
                                        }
                                    case 64:
                                        {
                                            mS(t, 16, 4096);
                                            break e
                                        }
                                    case 512:
                                        {
                                            mS(t, 16, 4104);
                                            break e
                                        }
                                    default:
                                        {
                                            i = 13;
                                            break e
                                        }
                                }
                                if ((e | 0) < 65536) {
                                    switch (e | 0) {
                                        case 4096:
                                            break;
                                        default:
                                            {
                                                i = 13;
                                                break e
                                            }
                                    }
                                    mS(t, 16, 4116);
                                    break
                                }
                                if ((e | 0) < 131072) {
                                    switch (e | 0) {
                                        case 65536:
                                            break;
                                        default:
                                            {
                                                i = 13;
                                                break e
                                            }
                                    }
                                    mS(t, 16, 4127);
                                    break
                                } else {
                                    switch (e | 0) {
                                        case 131072:
                                            break;
                                        default:
                                            {
                                                i = 13;
                                                break e
                                            }
                                    }
                                    mS(t, 16, 4138);
                                    break
                                }
                            } else switch (e | 0) {
                                case 1:
                                    {
                                        mS(t, 16, 4067);
                                        break e
                                    }
                                case 4:
                                    {
                                        mS(t, 16, 4071);
                                        break e
                                    }
                                case 8:
                                    {
                                        mS(t, 16, 4075);
                                        break e
                                    }
                                case 16:
                                    {
                                        mS(t, 16, 4082);
                                        break e
                                    }
                                case 32:
                                    {
                                        mS(t, 16, 4086);
                                        break e
                                    }
                                default:
                                    {
                                        i = 13;
                                        break e
                                    }
                            }
                        } while (0);
                        if ((i | 0) == 13) mS(t, 16, 4149);
                        return
                    }

                    function pO(e, t, i, r, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0;
                        v = n[e + 12 >> 1] | 0;
                        d = e + 44 | 0;
                        p = r + 1 | 0;
                        h = 0;
                        c = 0;
                        o = 2147483647;
                        e = 0;
                        while (1) {
                            if ((c | 0) >= (v | 0)) break;
                            u = a[d >> 2] | 0;
                            f = u + (c << 5) | 0;
                            do {
                                if (((a[u + (c << 5) + 8 >> 2] | 0) != 0 ? (a[u + (c << 5) + 20 >> 2] | 0) == (i | 0) : 0) ? (a[u + (c << 5) + 16 >> 2] | 0) == (t | 0) : 0) {
                                    l = a[u + (c << 5) + 24 >> 2] | 0;
                                    if ((l | 0) >= (o | 0)) {
                                        if ((l | 0) != (o | 0)) {
                                            u = h;
                                            break
                                        }
                                        u = a[u + (c << 5) + 28 >> 2] | 0;
                                        u = u >>> 0 > r >>> 0 ? p + ~u | 0 : r - u | 0;
                                        l = u >>> 0 < h >>> 0;
                                        u = l ? h : u;
                                        e = l ? e : f;
                                        break
                                    }
                                    e = a[u + (c << 5) + 28 >> 2] | 0;
                                    if (e >>> 0 > r >>> 0) {
                                        u = p + ~e | 0;
                                        o = l;
                                        e = f;
                                        break
                                    } else {
                                        u = r - e | 0;
                                        o = l;
                                        e = f;
                                        break
                                    }
                                } else u = h
                            } while (0);
                            h = u;
                            c = c + 1 | 0
                        }
                        a[s >> 2] = h;
                        return e | 0
                    }

                    function vO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if ((e | 0) != 0 ? (r = a[e + 24 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 42 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function mO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((e | 0) != 0 ? (i = a[e + 12 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = 1
                        } else e = 0;
                        return e | 0
                    }

                    function _O(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0,
                            n = 0;
                        n = r[e + 510 >> 0] | 0;
                        i = n << 24 >> 24;
                        e: do {
                            if (!(n << 24 >> 24)) e = 0;
                            else {
                                t: do {
                                    if (t <= .0000152587890625) {
                                        switch (i | 0) {
                                            case 1:
                                                {
                                                    e = 12;
                                                    break e
                                                }
                                            case 3:
                                            case 2:
                                                break;
                                            default:
                                                break t
                                        }
                                        bO(e);
                                        e = 1;
                                        break e
                                    }
                                } while (0);r[e + 509 >> 0] = 0;e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function bO(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 4 >> 2] | 0;
                        if (t | 0) ch(t);
                        r[e + 509 >> 0] = 1;
                        return
                    }

                    function gO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 32 >> 2] = a[t >> 2];
                        r[e + 8 >> 0] = r[t + 4 >> 0] | 0;
                        r[e + 9 >> 0] = r[t + 5 >> 0] | 0;
                        a[e + 80 >> 2] = a[t + 8 >> 2];
                        a[e + 84 >> 2] = a[t + 12 >> 2];
                        return
                    }

                    function yO(e) {
                        e = e | 0;
                        var t = 0;
                        t = e;
                        while (1) {
                            t = a[t + 32 >> 2] | 0;
                            if (!t) break;
                            rD(e, t)
                        }
                        return
                    }

                    function AO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = e;
                        t = 0;
                        while (1) {
                            if (!r) break;
                            i = a[r + 284 >> 2] | 0;
                            if (i) {
                                i = a[i + 24 >> 2] | 0;
                                t = (i | 0) == 2147483647 ? t : i
                            }
                            r = a[r + 32 >> 2] | 0
                        }
                        if ((t | 0) == 2) t = PR(e) | 0;
                        return t | 0
                    }

                    function wO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) e = 1;
                        else e = (a[t + 144 >> 2] | 0) == (e | 0) & 1;
                        return e | 0
                    }

                    function xO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if (((!((e | 0) == 0 | (t | 0) == 0) ? (a[e + 320 >> 2] | 0) != 1 : 0) ? (i = a[e + 128 >> 2] | 0, (i | 0) != 0) : 0) ? (t = a[t + 144 >> 2] | 0, !((t | 0) == 0 | (i | 0) == (t | 0))) : 0) e = (a[i >> 2] | 0) != 0 & 1;
                        else e = 0;
                        return e | 0
                    }

                    function kO(e) {
                        e = e | 0;
                        if (!e) return 0;
                        else return (a[e >> 2] | 0) != 0 | 0;
                        return 0
                    }

                    function TO(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0;
                        if (!e) sE();
                        else {
                            i = a[e + 556 >> 2] | 0;
                            if (i | 0) f$[i & 7](a[e + 560 >> 2] | 0, e, 1, t);
                            h[e + 432 >> 2] = t
                        }
                        return
                    }

                    function EO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        iD(e, t, i, r);
                        return
                    }

                    function SO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0.0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0,
                            c = 0;
                        u = +h[e + 376 >> 2];
                        l = +h[e + 380 >> 2];
                        o = u + l;
                        a[r >> 2] = 0;
                        f = r + 4 | 0;
                        h[f >> 2] = 1.0;
                        c = e + 304 | 0;
                        e = t + 48 | 0;
                        n = +dl(t, c, +h[e >> 2]);
                        s = +tD(i, c, +h[e >> 2]);
                        do {
                            if (!(n <= u) & !(s <= u)) {
                                if (o < n & o < s) {
                                    a[r >> 2] = 0;
                                    h[f >> 2] = 1.0;
                                    break
                                }
                                do {
                                    if (!(l == 0.0)) {
                                        o = (n - u) / l;
                                        n = (s - u) / l;
                                        e = o <= 1.0;
                                        t = n <= 1.0;
                                        if (e & t) {
                                            n = o * n;
                                            break
                                        } else {
                                            n = e & n > 1.0 ? o : o > 1.0 & t ? n : 1.0;
                                            break
                                        }
                                    } else {
                                        a[r >> 2] = 0;
                                        n = 1.0
                                    }
                                } while (0);
                                h[f >> 2] = n;
                                a[r >> 2] = n == 1.0 ? 0 : n == 0.0 ? 2 : 1
                            } else {
                                a[r >> 2] = 2;
                                h[f >> 2] = 0.0
                            }
                        } while (0);
                        return
                    }

                    function PO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0;
                        l = e + 29 | 0;
                        t = r[l >> 0] | 0;
                        if (t << 24 >> 24) {
                            f = e + 16 | 0;
                            c = e + 20 | 0;
                            d = e + 24 | 0;
                            h = 0;
                            e: while (1) {
                                while (1) {
                                    if ((h | 0) >= (t & 255 | 0)) break e;
                                    i = a[f >> 2] | 0;
                                    u = i + (h << 1) | 0;
                                    if (!(Fl(o[u >> 1] | 0) | 0)) break;
                                    p = t + -1 & 255;
                                    n[u >> 1] = n[i + (p << 1) >> 1] | 0;
                                    u = a[c >> 2] | 0;
                                    a[u + (h << 2) >> 2] = a[u + (p << 2) >> 2];
                                    u = a[d >> 2] | 0;
                                    r[u + h >> 0] = r[u + p >> 0] | 0;
                                    u = (s[l >> 0] | 0) + 255 & 255;
                                    r[l >> 0] = u;
                                    t = u
                                }
                                h = h + 1 | 0
                            }
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function IO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            i = e + 32 | 0;
                            e = a[i >> 2] | 0;
                            if (!e) {
                                e = 0;
                                break
                            }
                        } while ((a[e + 12 >> 2] | 0) != 6);
                        a[i >> 2] = t;
                        a[t + 32 >> 2] = e;
                        return
                    }

                    function MO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = p;
                        p = p + 80 | 0;
                        r = i;
                        aE(r, 68);
                        BO(e, r, 2);
                        BO(e, t, 1);
                        n = t + 4 | 0;
                        h[n >> 2] = +h[r + 4 >> 2] * +h[n >> 2];
                        n = t + 44 | 0;
                        h[n >> 2] = +h[r + 44 >> 2] * +h[n >> 2];
                        a[t + 32 >> 2] = a[r + 32 >> 2];
                        if ((a[(a[e + 80 >> 2] | 0) + 56 >> 2] | 0) == 1) a[t + 40 >> 2] = ~~(+h[t + 36 >> 2] * -255.0);
                        p = i;
                        return
                    }

                    function CO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0;
                        v = p;
                        p = p + 352 | 0;
                        o = v + 272 | 0;
                        u = v + 8 | 0;
                        g = v;
                        h[g >> 2] = 0.0;
                        l = i + 4 | 0;
                        f = a[l >> 2] | 0;
                        c = a[i >> 2] | 0;
                        d = i + 8 | 0;
                        _ = i + 76 | 0;
                        m = i + 80 | 0;
                        s = i + 84 | 0;
                        aE(o, 72);
                        aE(u, 264);
                        a[u >> 2] = r[e + 511 >> 0];
                        a[u + 4 >> 2] = 2;
                        lR(t);
                        n = fR(t, d, o) | 0;
                        no(+h[t + 244 >> 2], a[t + 284 >> 2] | 0, g, 1) | 0;
                        b = e + 496 | 0;
                        h[b >> 2] = +h[g >> 2] + +h[b >> 2];
                        h[_ >> 2] = +h[o + 12 >> 2] + +h[_ >> 2];
                        h[m >> 2] = +h[o + 24 >> 2] + +h[m >> 2];
                        h[s >> 2] = +h[o + 28 >> 2] + +h[s >> 2];
                        s = n & 255;
                        if ((s | 0) == 1) r[e + 492 >> 0] = n;
                        b = cR(t) | 0;
                        g = dR(a[t + 320 >> 2] | 0) | 0;
                        e: do {
                            if ((vR(o + 4 | 0, s, b, g, pR(a[t + 324 >> 2] | 0) | 0, u) | 0) != 1) {
                                if (a[t + 304 >> 2] | 0) {
                                    a[e + 224 >> 2] = a[u >> 2];
                                    a[e + 228 >> 2] = 2
                                }
                            } else {
                                a[e + 224 >> 2] = a[u >> 2];
                                a[e + 228 >> 2] = 2;
                                n = 0;
                                while (1) {
                                    if ((n | 0) == 8) break e;
                                    else t = 0;
                                    while (1) {
                                        if ((t | 0) == 8) break;
                                        g = e + 232 + (n << 5) + (t << 2) | 0;
                                        h[g >> 2] = +h[u + 8 + (n << 5) + (t << 2) >> 2] + +h[g >> 2];
                                        t = t + 1 | 0
                                    }
                                    n = n + 1 | 0
                                }
                            }
                        } while (0);
                        if (!f) {
                            nE(e + 84 | 0, 68, d, 68);
                            nE(e + 152 | 0, 72, o, 72)
                        } else {
                            if (!((f | 0) != (a[c + 332 >> 2] | 0) ? !(+h[e + 120 >> 2] > +h[i + 44 >> 2]) : 0)) {
                                nE(e + 84 | 0, 68, d, 68);
                                nE(e + 152 | 0, 72, o, 72)
                            }
                            a[l >> 2] = a[f + 332 >> 2]
                        }
                        p = v;
                        return
                    }

                    function OO(e) {
                        e = e | 0;
                        r[e + 105 >> 0] = 0;
                        return
                    }

                    function RO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        BO(e, t, 0);
                        return
                    }

                    function DO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        while (1) {
                            t = e + 32 | 0;
                            e = a[t >> 2] | 0;
                            if (!e) break;
                            if ((a[e + 12 >> 2] | 0) == 28) {
                                i = 4;
                                break
                            }
                        }
                        if ((i | 0) == 4) a[t >> 2] = a[e + 32 >> 2];
                        return
                    }

                    function FO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((e | 0) != 0 ? (i = a[e + 16 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 40 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function BO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        A = p;
                        p = p + 128 | 0;
                        b = A + 72 | 0;
                        g = A;
                        y = t + 4 | 0;
                        switch (i | 0) {
                            case 2:
                                {
                                    u = a[e + 80 >> 2] | 0;l = (a[a[u + 128 >> 2] >> 2] | 0) + 304 | 0;NO(b);r = u + 260 | 0;o = u + 156 | 0;f = e;
                                    break
                                }
                            case 1:
                                {
                                    l = a[e + 84 >> 2] | 0;u = a[a[(a[e + 80 >> 2] | 0) + 128 >> 2] >> 2] | 0;o = u + 144 | 0;r = u + 248 | 0;f = e;
                                    while (1) {
                                        s = a[f + 32 >> 2] | 0;
                                        if (!s) break;
                                        if ((a[s + 12 >> 2] | 0) == 28) break;
                                        else f = s
                                    }
                                    LO(b);
                                    break
                                }
                            default:
                                {
                                    l = a[e + 84 >> 2] | 0;u = a[e + 80 >> 2] | 0;NO(b);r = u + 260 | 0;o = u + 156 | 0;f = e
                                }
                        }
                        UO(a[f + 308 >> 2] | 0, o, r, b);
                        s = VO(a[f + 256 >> 2] | 0, n[b + 40 >> 1] | 0) | 0;
                        c = t + 48 | 0;
                        a[c >> 2] = s;
                        d = t + 52 | 0;
                        a[d >> 2] = VO(a[f + 260 >> 2] | 0, n[b + 42 >> 1] | 0) | 0;
                        v = t + 56 | 0;
                        a[v >> 2] = VO(a[f + 264 >> 2] | 0, n[b + 44 >> 1] | 0) | 0;
                        m = t + 60 | 0;
                        a[m >> 2] = VO(a[f + 268 >> 2] | 0, n[b + 46 >> 1] | 0) | 0;
                        _ = t + 64 | 0;
                        a[_ >> 2] = VO(a[f + 272 >> 2] | 0, n[b + 48 >> 1] | 0) | 0;
                        o = b + 36 | 0;
                        a[o >> 2] = XO(e, a[o >> 2] | 0, s) | 0;
                        switch (i | 0) {
                            case 2:
                                {
                                    o = g;r = l;s = o + 72 | 0;do {
                                        a[o >> 2] = a[r >> 2];
                                        o = o + 4 | 0;
                                        r = r + 4 | 0
                                    } while ((o | 0) < (s | 0));h[g + 48 >> 2] = 1.0;GO(g, u, b, y);
                                    break
                                }
                            case 1:
                                {
                                    o = g;r = l;s = o + 72 | 0;do {
                                        a[o >> 2] = a[r >> 2];
                                        o = o + 4 | 0;
                                        r = r + 4 | 0
                                    } while ((o | 0) < (s | 0));h[g + 48 >> 2] = 0.0;GO(g, u, b, y);
                                    break
                                }
                            default:
                                jO(l, u, b, y)
                        }
                        r = a[c >> 2] | 0;
                        if ((r | 0) != 65535) $O(a[f + 32 >> 2] | 0, r, +h[t + 36 >> 2]);
                        r = a[d >> 2] | 0;
                        if ((r | 0) != 65535) HO(f, r, +h[t + 12 >> 2], +h[u + 48 >> 2]);
                        r = a[v >> 2] | 0;
                        if ((r | 0) != 65535) WO(f, r, +h[t + 16 >> 2], +h[u + 48 >> 2]);
                        r = a[m >> 2] | 0;
                        if ((r | 0) != 65535) YO(f, r, +h[t + 20 >> 2], +h[u + 48 >> 2]);
                        r = a[_ >> 2] | 0;
                        if ((r | 0) != 65535) WO(f, r, +h[t + 24 >> 2], +h[u + 48 >> 2]);
                        p = A;
                        return
                    }

                    function NO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 6832;
                        i = e + 52 | 0;
                        do {
                            a[e >> 2] = a[t >> 2];
                            e = e + 4 | 0;
                            t = t + 4 | 0
                        } while ((e | 0) < (i | 0));
                        return
                    }

                    function LO(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 7528;
                        i = e + 52 | 0;
                        do {
                            a[e >> 2] = a[t >> 2];
                            e = e + 4 | 0;
                            t = t + 4 | 0
                        } while ((e | 0) < (i | 0));
                        return
                    }

                    function UO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (e | 0) hR(r, e, 0);
                        hR(r, t, i);
                        if (!((a[t + 28 >> 2] | 0) != 2147483647 ? (a[t + 24 >> 2] | 0) != 2147483647 : 0)) {
                            h[r + 24 >> 2] = 0.0;
                            a[r + 28 >> 2] = a[r + 16 >> 2]
                        }
                        return
                    }

                    function VO(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (t << 16 >> 16 == -1) return ((e | 0) == 2147483647 ? 65535 : e + 1e3 | 0) | 0;
                        else return (t & 65535) + 1e3 | 0;
                        return 0
                    }

                    function XO(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (t)
                            if ((i | 0) == 65535) t = 2;
                            else {
                                t = (oR(e, i) | 0) == 1;
                                t = t ? 3 : 2
                            }
                        else t = 0;
                        return t | 0
                    }

                    function jO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0,
                            d = 0.0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0.0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0.0,
                            I = 0.0;
                        x = p;
                        p = p + 80 | 0;
                        A = x + 68 | 0;
                        E = x + 56 | 0;
                        v = x + 52 | 0;
                        n = x + 48 | 0;
                        m = x + 44 | 0;
                        b = x + 40 | 0;
                        g = x + 24 | 0;
                        y = x;
                        h[m >> 2] = 1.0;
                        h[b >> 2] = 1.0;
                        I = +h[e >> 2];
                        l = +h[e + 52 >> 2] - I;
                        S = e + 4 | 0;
                        P = +h[S >> 2];
                        u = +h[e + 56 >> 2] - P;
                        _ = e + 8 | 0;
                        d = +h[_ >> 2];
                        s = +h[e + 60 >> 2] - d;
                        f = +h[e + 64 >> 2];
                        I = I + l * f;
                        P = P + u * f;
                        f = d + s * f;
                        d = +h[t >> 2];
                        h[A >> 2] = d - I;
                        T = t + 4 | 0;
                        w = +h[T >> 2];
                        h[A + 4 >> 2] = w - P;
                        k = t + 8 | 0;
                        o = +h[k >> 2];
                        h[A + 8 >> 2] = o - f;
                        pl(I, P, f, d, w, o, v);
                        o = +h[e + 68 >> 2];
                        l = l * o + +h[e >> 2];
                        u = u * o + +h[S >> 2];
                        o = s * o + +h[_ >> 2];
                        s = +h[t >> 2];
                        h[E >> 2] = s - l;
                        w = +h[T >> 2];
                        T = E + 4 | 0;
                        h[T >> 2] = w - u;
                        d = +h[k >> 2];
                        k = E + 8 | 0;
                        h[k >> 2] = d - o;
                        pl(l, u, o, s, w, d, n);
                        d = +h[t + 52 >> 2];
                        w = d * +h[v >> 2];
                        h[v >> 2] = w;
                        d = d * +h[n >> 2];
                        h[n >> 2] = d;
                        h[r + 24 >> 2] = w;
                        a[g >> 2] = i;
                        a[g + 4 >> 2] = E;
                        n = t + 12 | 0;
                        a[g + 8 >> 2] = n;
                        v = t + 60 | 0;
                        a[g + 12 >> 2] = a[v >> 2];
                        tR(g, b);
                        iR(i, a[v >> 2] | 0, w, m, g);
                        v = r + 32 | 0;
                        a[v >> 2] = a[g >> 2];
                        rR(+h[E >> 2], +h[T >> 2], +h[k >> 2], +h[e + 12 >> 2], +h[e + 16 >> 2], +h[e + 20 >> 2], +h[e + 24 >> 2], +h[e + 28 >> 2], +h[e + 32 >> 2], g);
                        a[r + 8 >> 2] = a[g >> 2];
                        _ = g + 4 | 0;
                        a[r + 12 >> 2] = a[_ >> 2];
                        s = - +h[E >> 2];
                        o = - +h[T >> 2];
                        u = - +h[k >> 2];
                        l = +h[t + 24 >> 2];
                        f = +h[t + 28 >> 2];
                        if (l == 0.0 & f == 0.0 ? +h[t + 32 >> 2] == 0.0 : 0) {
                            nR(s, o, u, +h[n >> 2], +h[t + 16 >> 2], +h[t + 20 >> 2], g);
                            n = a[g >> 2] | 0
                        } else {
                            rR(s, o, u, +h[n >> 2], +h[t + 16 >> 2], +h[t + 20 >> 2], l, f, +h[t + 32 >> 2], g);
                            I = +M(+ +h[g >> 2]);
                            h[g >> 2] = I;
                            n = (h[c >> 2] = I, a[c >> 2] | 0)
                        }
                        a[r + 16 >> 2] = n;
                        a[r + 20 >> 2] = a[_ >> 2];
                        I = +h[m >> 2] * +h[b >> 2];
                        h[r >> 2] = I * +h[i >> 2];
                        aR(i, d, g);
                        a[r + 4 >> 2] = a[g >> 2];
                        h[r + 40 >> 2] = I;
                        if (!(a[t + 56 >> 2] | 0)) n = 0;
                        else n = ~~(+h[v >> 2] * -255.0);
                        a[r + 36 >> 2] = n;
                        a[y >> 2] = i;
                        a[y + 4 >> 2] = A;
                        a[y + 8 >> 2] = e + 36;
                        a[y + 12 >> 2] = t + 36;
                        h[y + 16 >> 2] = w;
                        a[y + 20 >> 2] = a[e + 48 >> 2];
                        eR(y, g);
                        a[r + 28 >> 2] = a[g >> 2];
                        p = x;
                        return
                    }

                    function GO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0.0,
                            w = 0.0,
                            x = 0.0,
                            k = 0.0,
                            T = 0.0;
                        m = p;
                        p = p + 80 | 0;
                        n = m + 44 | 0;
                        s = m + 32 | 0;
                        v = m + 28 | 0;
                        c = m + 24 | 0;
                        d = m;
                        T = +h[e >> 2];
                        o = +h[e + 52 >> 2] - T;
                        g = e + 4 | 0;
                        k = +h[g >> 2];
                        u = +h[e + 56 >> 2] - k;
                        _ = e + 8 | 0;
                        w = +h[_ >> 2];
                        f = +h[e + 60 >> 2] - w;
                        x = +h[e + 64 >> 2];
                        T = T + o * x;
                        k = k + u * x;
                        x = w + f * x;
                        w = +h[t >> 2];
                        h[s >> 2] = w - T;
                        y = t + 4 | 0;
                        A = +h[y >> 2];
                        h[s + 4 >> 2] = A - k;
                        b = t + 8 | 0;
                        l = +h[b >> 2];
                        h[s + 8 >> 2] = l - x;
                        pl(T, k, x, w, A, l, v);
                        l = +h[e + 68 >> 2];
                        o = +h[t >> 2] - (o * l + +h[e >> 2]);
                        u = +h[y >> 2] - (u * l + +h[g >> 2]);
                        l = +h[b >> 2] - (f * l + +h[_ >> 2]);
                        f = +h[t + 52 >> 2] * +h[v >> 2];
                        h[r + 24 >> 2] = f;
                        v = n;
                        _ = e;
                        b = v + 36 | 0;
                        do {
                            a[v >> 2] = a[_ >> 2];
                            v = v + 4 | 0;
                            _ = _ + 4 | 0
                        } while ((v | 0) < (b | 0));
                        h[n >> 2] = o;
                        h[n + 4 >> 2] = u;
                        h[n + 8 >> 2] = l;
                        KO(n, t, i, a[t + 60 >> 2] | 0, r);
                        a[d >> 2] = i;
                        a[d + 4 >> 2] = s;
                        a[d + 8 >> 2] = e + 36;
                        a[d + 12 >> 2] = t + 36;
                        h[d + 16 >> 2] = f;
                        a[d + 20 >> 2] = a[e + 48 >> 2];
                        eR(d, c);
                        a[r + 28 >> 2] = a[c >> 2];
                        p = m;
                        return
                    }

                    function $O(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        go(e, t & 65535, i);
                        return
                    }

                    function HO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        qO(e, t & 65535, +ZO(i), r);
                        return
                    }

                    function WO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        qO(e, t & 65535, +QO(i), r);
                        return
                    }

                    function YO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        qO(e, t & 65535, +zO(i), r);
                        return
                    }

                    function zO(e) {
                        e = +e;
                        return +(e / 180.0)
                    }

                    function qO(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        var n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        if (r < 1.0 ? (Hc(s, e, t), n = a[s >> 2] | 0, (n | 0) != 2147483647) : 0) i = +JO(i, (a[c >> 2] = n, +h[c >> 2]), r);
                        go(a[e + 32 >> 2] | 0, t, i);
                        p = o;
                        return
                    }

                    function JO(e, t, i) {
                        e = +e;
                        t = +t;
                        i = +i;
                        var r = 0.0;
                        r = e - t;
                        if (r != 0.0) {
                            if (!(r > .5))
                                if (r < -.5) e = r + 1.0;
                                else e = r;
                            else e = r + -1.0;
                            r = -i;
                            e = e > r ? e : r;
                            e = (e < i ? e : i) + t;
                            e = e > 1.0 ? e + -1.0 : e;
                            if (e < 0.0) e = e + 1.0
                        }
                        return +e
                    }

                    function QO(e) {
                        e = +e;
                        return +((e + 90.0) / 180.0)
                    }

                    function ZO(e) {
                        e = +e;
                        return +((e + 180.0) / 360.0)
                    }

                    function KO(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0.0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0;
                        y = p;
                        p = p + 32 | 0;
                        _ = y + 20 | 0;
                        b = y + 16 | 0;
                        g = y;
                        h[_ >> 2] = 1.0;
                        h[b >> 2] = 1.0;
                        a[g >> 2] = i;
                        a[g + 4 >> 2] = e;
                        v = t + 12 | 0;
                        a[g + 8 >> 2] = v;
                        a[g + 12 >> 2] = r;
                        tR(g, _);
                        m = n + 24 | 0;
                        iR(i, r, +h[m >> 2], b, n + 32 | 0);
                        rR(+h[e >> 2], +h[e + 4 >> 2], +h[e + 8 >> 2], +h[e + 12 >> 2], +h[e + 16 >> 2], +h[e + 20 >> 2], +h[e + 24 >> 2], +h[e + 28 >> 2], +h[e + 32 >> 2], g);
                        a[n + 8 >> 2] = a[g >> 2];
                        d = g + 4 | 0;
                        a[n + 12 >> 2] = a[d >> 2];
                        l = - +h[e >> 2];
                        f = - +h[e + 4 >> 2];
                        s = - +h[e + 8 >> 2];
                        o = +h[t + 24 >> 2];
                        u = +h[t + 28 >> 2];
                        if (o == 0.0 & u == 0.0 ? +h[t + 32 >> 2] == 0.0 : 0) {
                            nR(l, f, s, +h[v >> 2], +h[t + 16 >> 2], +h[t + 20 >> 2], g);
                            r = a[g >> 2] | 0
                        } else {
                            rR(l, f, s, +h[v >> 2], +h[t + 16 >> 2], +h[t + 20 >> 2], o, u, +h[t + 32 >> 2], g);
                            f = +M(+ +h[g >> 2]);
                            h[g >> 2] = f;
                            r = (h[c >> 2] = f, a[c >> 2] | 0)
                        }
                        a[n + 16 >> 2] = r;
                        a[n + 20 >> 2] = a[d >> 2];
                        f = +h[_ >> 2] * +h[b >> 2];
                        h[n >> 2] = f * +h[i >> 2];
                        aR(i, +h[m >> 2], g);
                        a[n + 4 >> 2] = a[g >> 2];
                        h[n + 40 >> 2] = f;
                        a[n + 36 >> 2] = 0;
                        p = y;
                        return
                    }

                    function eR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0.0,
                            r = 0.0,
                            n = 0.0,
                            s = 0,
                            o = 0.0,
                            u = 0.0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0.0,
                            p = 0.0;
                        c = a[e >> 2] | 0;
                        s = a[e + 4 >> 2] | 0;
                        l = a[e + 8 >> 2] | 0;
                        f = a[e + 12 >> 2] | 0;
                        n = +h[e + 16 >> 2];
                        i = +h[e + 20 >> 2];
                        h[t >> 2] = 1.0;
                        r = +h[c + 32 >> 2];
                        if (!(i == 0.0 | (n == 0.0 | r == 0.0)) ? (p = i * 340.0, d = +h[s >> 2], i = +h[s + 4 >> 2], u = +h[s + 8 >> 2], o = p + (+h[f >> 2] * d + +h[f + 4 >> 2] * i + +h[f + 8 >> 2] * u) / n, u = p + (d * +h[l >> 2] + i * +h[l + 4 >> 2] + u * +h[l + 8 >> 2]) / n, o > 0.0 & u > 0.0) : 0) h[t >> 2] = +uI(u / o, r);
                        return
                    }

                    function tR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0.0,
                            r = 0,
                            n = 0.0,
                            s = 0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0,
                            c = 0.0,
                            d = 0.0,
                            p = 0,
                            v = 0.0;
                        p = a[e >> 2] | 0;
                        r = a[e + 4 >> 2] | 0;
                        s = a[e + 8 >> 2] | 0;
                        do {
                            if ((a[e + 12 >> 2] | 0) == 1) {
                                c = +h[r >> 2];
                                d = +h[r + 4 >> 2];
                                o = +h[r + 8 >> 2];
                                u = +h[s >> 2];
                                l = +h[s + 4 >> 2];
                                i = +h[s + 8 >> 2];
                                n = (c * c + d * d + o * o) * (u * u + l * l + i * i);
                                if (!(n == 0.0) ? (v = +h[p + 4 >> 2], !(v >= 3.141592264175415)) : 0) {
                                    f = +h[p + 8 >> 2];
                                    n = +C(+n);
                                    i = (-(d * l) - c * u - o * i) / n;
                                    if (i <= +CS(f)) {
                                        a[t >> 2] = a[p + 12 >> 2];
                                        break
                                    }
                                    if (!(i >= +CS(v))) {
                                        v = (f - +B(+i)) / (f - v);
                                        d = +h[p + 12 >> 2];
                                        h[t >> 2] = d + (1.0 - d) * (v < 1.0 ? v : 1.0);
                                        break
                                    } else {
                                        h[t >> 2] = 1.0;
                                        break
                                    }
                                }
                                h[t >> 2] = 1.0
                            }
                        } while (0);
                        return
                    }

                    function iR(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = r | 0;
                        n = n | 0;
                        var s = 0.0,
                            o = 0.0;
                        s = +h[e + 16 >> 2];
                        do {
                            if (!(s >= i)) {
                                o = +h[e + 20 >> 2];
                                if (!(o <= i)) {
                                    i = (i - s) / (o - s);
                                    if ((t | 0) != 1) break;
                                    if ((a[e + 36 >> 2] | 0) != 2) break;
                                    h[r >> 2] = +hI(2.7182817459106445 - i * 5.436563491821289) / 15.15426254272461;
                                    break
                                } else {
                                    if ((t | 0) != 1) {
                                        i = 1.0;
                                        break
                                    }
                                    if ((a[e + 36 >> 2] | 0) != 2) {
                                        i = 1.0;
                                        break
                                    }
                                    h[r >> 2] = 0.0;
                                    i = 1.0;
                                    break
                                }
                            } else i = 0.0
                        } while (0);
                        h[n >> 2] = i;
                        return
                    }

                    function rR(e, t, i, r, n, s, o, u, l, f) {
                        e = +e;
                        t = +t;
                        i = +i;
                        r = +r;
                        n = +n;
                        s = +s;
                        o = +o;
                        u = +u;
                        l = +l;
                        f = f | 0;
                        var c = 0.0;
                        c = e * r + t * n + i * s;
                        r = (n * o - r * u) * i + ((s * u - n * l) * e + (r * l - s * o) * t);
                        if (e * e + t * t + i * i == 0.0) {
                            h[f + 4 >> 2] = 0.0;
                            h[f >> 2] = 0.0
                        } else {
                            s = +U(+r, +c);
                            h[f >> 2] = +sR((a[1881] | 0) == 1 ? -s : s);
                            r = +sR(+U(+(e * o + t * u + i * l), + +C(+(c * c + r * r))));
                            if (!(r > 90.0)) {
                                if (r < -90.0) r = -180.0 - r
                            } else r = 180.0 - r;
                            h[f + 4 >> 2] = r
                        }
                        return
                    }

                    function nR(e, t, i, r, n, a, s) {
                        e = +e;
                        t = +t;
                        i = +i;
                        r = +r;
                        n = +n;
                        a = +a;
                        s = s | 0;
                        var o = 0.0;
                        o = (e * e + t * t + i * i) * (r * r + n * n + a * a);
                        if (o == 0.0) e = 0.0;
                        else e = +B(+((e * r + t * n + i * a) * (1.0 / +C(+o))));
                        h[s >> 2] = +sR(e);
                        h[s + 4 >> 2] = 0.0;
                        return
                    }

                    function aR(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = i | 0;
                        var r = 0.0,
                            n = 0,
                            a = 0.0;
                        n = e + 24 | 0;
                        if (+h[n >> 2] < 0.0) sE();
                        e = e + 28 | 0;
                        if (+h[e >> 2] < 0.0) sE();
                        r = +h[n >> 2];
                        if (!(r >= t))
                            if (r < t ? (a = +h[e >> 2], r + a >= t) : 0) r = (t - r) / a;
                            else r = 1.0;
                        else r = 0.0;
                        h[i >> 2] = r;
                        return
                    }

                    function sR(e) {
                        e = +e;
                        return +(e * 360.0 / 6.2831854820251465)
                    }

                    function oR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            o = 0,
                            u = 0;
                        e: while (1) {
                            if (!e) {
                                e = 0;
                                break
                            }
                            r = e + 101 | 0;
                            o = e + 92 | 0;
                            u = e + 88 | 0;
                            i = 0;
                            while (1) {
                                if ((i | 0) >= (s[r >> 0] | 0 | 0)) break;
                                if (((uR(a[(a[u >> 2] | 0) + (i << 2) >> 2] | 0, n[(a[o >> 2] | 0) + (i << 1) >> 1] | 0) | 0) & 65535 | 0) == (t | 0)) {
                                    e = 1;
                                    break e
                                } else i = i + 1 | 0
                            }
                            e = a[e + 32 >> 2] | 0
                        }
                        return e | 0
                    }

                    function uR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 32 | 0;
                        i = r;
                        if ((t & 65535) > 16383)
                            if ((Jf(t, i) | 0) == 1) e = n[i + 4 >> 1] | 0;
                            else e = -1;
                        else if ((qf(e + 1808 | 0, t, i) | 0) == 1) e = n[i + 4 >> 1] | 0;
                        else e = -1;
                        p = r;
                        return e | 0
                    }

                    function hR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[t >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e >> 2] = r;
                        r = a[t + 4 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 4 >> 2] = r;
                        r = a[t + 8 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 8 >> 2] = r;
                        r = a[t + 12 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 12 >> 2] = r;
                        r = a[t + 16 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 16 >> 2] = r;
                        r = a[t + 20 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 20 >> 2] = r;
                        r = a[t + 24 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 24 >> 2] = r;
                        r = a[t + 28 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 28 >> 2] = r;
                        r = a[t + 32 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 32 >> 2] = r;
                        r = a[t + 36 >> 2] | 0;
                        if ((r | 0) != 2147483647) a[e + 36 >> 2] = r;
                        if (i | 0) {
                            r = a[i >> 2] | 0;
                            if ((r | 0) != 2147483647) n[e + 40 >> 1] = r;
                            r = a[i + 4 >> 2] | 0;
                            if ((r | 0) != 2147483647) n[e + 42 >> 1] = r;
                            r = a[i + 8 >> 2] | 0;
                            if ((r | 0) != 2147483647) n[e + 44 >> 1] = r;
                            r = a[i + 12 >> 2] | 0;
                            if ((r | 0) != 2147483647) n[e + 46 >> 1] = r;
                            r = a[i + 16 >> 2] | 0;
                            if ((r | 0) != 2147483647) n[e + 48 >> 1] = r
                        }
                        return
                    }

                    function lR(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0;
                        t = e;
                        while (1) {
                            t = a[t + 32 >> 2] | 0;
                            if (!t) break;
                            IR(e, t);
                            MR(e, t)
                        }
                        u = e + 300 | 0;
                        t = a[u >> 2] | 0;
                        do {
                            if (t | 0) {
                                o = e + 296 | 0;
                                i = a[o >> 2] | 0;
                                if (!i) {
                                    t = Dl() | 0;
                                    a[o >> 2] = t;
                                    if (!t) break;
                                    u = a[u >> 2] | 0;
                                    a[t >> 2] = a[u >> 2];
                                    a[t + 4 >> 2] = a[u + 4 >> 2];
                                    a[t + 8 >> 2] = a[u + 8 >> 2];
                                    a[t + 12 >> 2] = a[u + 12 >> 2];
                                    a[t + 16 >> 2] = a[u + 16 >> 2];
                                    a[t + 20 >> 2] = a[u + 20 >> 2];
                                    a[t + 24 >> 2] = a[u + 24 >> 2];
                                    a[t + 28 >> 2] = a[u + 28 >> 2];
                                    break
                                }
                                e = a[t >> 2] | 0;
                                n = (a[c >> 2] = e, +h[c >> 2]);
                                if ((e | 0) != 2147483647) {
                                    t = a[i >> 2] | 0;
                                    if ((t | 0) == 2147483647) a[i >> 2] = e;
                                    else h[i >> 2] = 1.0 - (1.0 - n) * (1.0 - (a[c >> 2] = t, +h[c >> 2]));
                                    t = a[u >> 2] | 0;
                                    i = a[o >> 2] | 0;
                                    s = i + 24 | 0;
                                    r[s >> 0] = r[s >> 0] | r[t + 24 >> 0]
                                }
                                s = a[t + 4 >> 2] | 0;
                                n = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) != 2147483647) {
                                    t = i + 4 | 0;
                                    e = a[t >> 2] | 0;
                                    if ((e | 0) == 2147483647) a[t >> 2] = s;
                                    else h[t >> 2] = n * (a[c >> 2] = e, +h[c >> 2]);
                                    t = a[u >> 2] | 0;
                                    i = a[o >> 2] | 0;
                                    s = i + 25 | 0;
                                    r[s >> 0] = r[s >> 0] | r[t + 25 >> 0]
                                }
                                e = a[t + 8 >> 2] | 0;
                                if ((e | 0) != 2147483647) {
                                    a[i + 8 >> 2] = e;
                                    t = a[u >> 2] | 0;
                                    i = a[o >> 2] | 0;
                                    s = i + 26 | 0;
                                    r[s >> 0] = r[s >> 0] | r[t + 26 >> 0]
                                }
                                s = a[t + 12 >> 2] | 0;
                                n = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) != 2147483647) {
                                    t = i + 12 | 0;
                                    e = a[t >> 2] | 0;
                                    if ((e | 0) == 2147483647) a[t >> 2] = s;
                                    else h[t >> 2] = n + (a[c >> 2] = e, +h[c >> 2]);
                                    t = a[u >> 2] | 0;
                                    i = a[o >> 2] | 0;
                                    s = i + 27 | 0;
                                    r[s >> 0] = r[s >> 0] | r[t + 27 >> 0]
                                }
                                s = a[t + 16 >> 2] | 0;
                                n = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) != 2147483647) {
                                    t = i + 16 | 0;
                                    e = a[t >> 2] | 0;
                                    if ((e | 0) == 2147483647) a[t >> 2] = s;
                                    else h[t >> 2] = n + (a[c >> 2] = e, +h[c >> 2]);
                                    t = a[u >> 2] | 0;
                                    i = a[o >> 2] | 0;
                                    s = i + 28 | 0;
                                    r[s >> 0] = r[s >> 0] | r[t + 28 >> 0]
                                }
                                s = a[t + 20 >> 2] | 0;
                                n = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) != 2147483647) {
                                    t = i + 20 | 0;
                                    e = a[t >> 2] | 0;
                                    if ((e | 0) == 2147483647) a[t >> 2] = s;
                                    else h[t >> 2] = n * (a[c >> 2] = e, +h[c >> 2]);
                                    o = (a[o >> 2] | 0) + 29 | 0;
                                    r[o >> 0] = r[o >> 0] | r[(a[u >> 2] | 0) + 29 >> 0]
                                }
                            }
                        } while (0);
                        return
                    }

                    function fR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0.0;
                        r = i + 4 | 0;
                        switch (ER(e) | 0) {
                            case 1:
                                {
                                    if ((a[t >> 2] | 0) == 1) {
                                        SR(r, a[e + 304 >> 2] | 0) | 0;
                                        a[r >> 2] = a[t + 12 >> 2];
                                        a[i + 8 >> 2] = a[t + 8 >> 2];
                                        a[i + 12 >> 2] = a[t + 4 >> 2];
                                        n = i + 28 | 0;
                                        s = +h[t + 44 >> 2] * +h[n >> 2];
                                        h[n >> 2] = s;
                                        a[i + 64 >> 2] = a[t + 32 >> 2];
                                        a[i + 68 >> 2] = a[t + 40 >> 2];
                                        r = i + 24 | 0;
                                        h[r >> 2] = +h[i + 32 >> 2] + +h[r >> 2];
                                        h[n >> 2] = s + +h[i + 36 >> 2];
                                        a[i >> 2] = 1;
                                        n = 5
                                    } else e = 0;
                                    break
                                }
                            case 0:
                                {
                                    t = e + 304 | 0;a[i >> 2] = SR(r, a[t >> 2] | 0) | 0;h[i + 64 >> 2] = 1.0;a[i + 68 >> 2] = 0;r = i + 24 | 0;h[r >> 2] = +h[i + 32 >> 2] + +h[r >> 2];r = i + 28 | 0;h[r >> 2] = +h[i + 36 >> 2] + +h[r >> 2];
                                    if (!(a[t >> 2] | 0)) e = 0;
                                    else n = 5;
                                    break
                                }
                            default:
                                n = 5
                        }
                        if ((n | 0) == 5) e = 1;
                        return e | 0
                    }

                    function cR(e) {
                        e = e | 0;
                        return e + 332 | 0
                    }

                    function dR(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function pR(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function vR(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        return mR(e, t, i, r, n, a) | 0
                    }

                    function mR(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            l = 0.0,
                            f = 0.0,
                            d = 0,
                            p = 0,
                            v = 0;
                        aE(s + 8 | 0, 256);
                        v = s + 4 | 0;
                        o = 0;
                        d = 0;
                        while (1) {
                            if ((d | 0) == 8) break;
                            u = a[i + (d << 2) >> 2] | 0;
                            e: do {
                                if (u) {
                                    o = 0;
                                    while (1) {
                                        if ((o | 0) == 8) {
                                            o = 1;
                                            break e
                                        }
                                        if (((d | 0) < (a[s >> 2] | 0) ? (o | 0) < (a[v >> 2] | 0) : 0) ? (p = a[u + (o << 2) >> 2] | 0, (p | 0) != 2147483647) : 0) a[s + 8 + (d << 5) + (o << 2) >> 2] = p;
                                        o = o + 1 | 0
                                    }
                                }
                            } while (0);
                            d = d + 1 | 0
                        }
                        e: do {
                            if ((o | 0) != 1) {
                                if ((e | 0) != 0 & (t | 0) == 1) {
                                    _R(s, e);
                                    if ((r | 0) == 0 & (n | 0) == 0) {
                                        bR(s, e);
                                        o = 1
                                    } else o = 1
                                }
                                e = (r | 0) != 0;
                                t = (n | 0) != 0;
                                t: do {
                                    if (e | t) {
                                        d = 0;
                                        while (1) {
                                            if ((d | 0) >= (a[v >> 2] | 0)) break t;
                                            if (e) {
                                                u = a[r + (d << 2) >> 2] | 0;
                                                f = (u | 0) == 2147483647 ? 0.0 : (a[c >> 2] = u, +h[c >> 2])
                                            } else f = 0.0;
                                            if (t) {
                                                u = a[n + (d << 2) >> 2] | 0;
                                                l = (u | 0) == 2147483647 ? 0.0 : (a[c >> 2] = u, +h[c >> 2])
                                            } else l = 0.0;
                                            if (f != 0.0 | l != 0.0) {
                                                u = gR(a[s >> 2] | 0) | 0;
                                                if (!u) break t;
                                                i = a[u + (d << 2) >> 2] | 0;
                                                u = s + 8 + (i << 5) + (d << 2) | 0;
                                                if ((i | 0) != -1) {
                                                    h[u >> 2] = f + l + +h[u >> 2];
                                                    o = 1
                                                }
                                            }
                                            d = d + 1 | 0
                                        }
                                    }
                                } while (0);
                                if (!o) {
                                    o = 0;
                                    while (1) {
                                        if ((o | 0) >= (a[s >> 2] | 0)) {
                                            o = 0;
                                            break e
                                        }
                                        if ((o | 0) >= (a[v >> 2] | 0)) {
                                            o = 0;
                                            break e
                                        }
                                        h[s + 8 + (o << 5) + (o << 2) >> 2] = 1.0;
                                        o = o + 1 | 0
                                    }
                                } else o = 1
                            } else o = 1
                        } while (0);
                        return o | 0
                    }

                    function _R(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0.0,
                            n = 0,
                            s = 0,
                            o = 0.0,
                            u = 0.0,
                            l = 0,
                            f = 0,
                            d = 0,
                            v = 0.0,
                            m = 0,
                            _ = 0,
                            b = 0.0,
                            g = 0.0,
                            y = 0,
                            A = 0.0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0.0,
                            S = 0.0;
                        T = p;
                        p = p + 528 | 0;
                        d = T + 264 | 0;
                        _ = T;
                        i = a[e >> 2] | 0;
                        w = AR(i) | 0;
                        k = wR(i, a[e + 4 >> 2] | 0, a[t + 36 >> 2] | 0) | 0;
                        y = a[k + 4 >> 2] | 0;
                        m = t + 4 | 0;
                        A = +h[m >> 2];
                        A = A < 0.0 ? -A : A;
                        A = A < 1.0 ? A : 1.0;
                        x = a[k >> 2] | 0;
                        u = +(x | 0);
                        b = +C(+(1.0 / u));
                        v = 1.0 - A;
                        l = a[t + 44 >> 2] | 0;
                        r = (a[c >> 2] = l, +h[c >> 2]);
                        if ((l | 0) != 2147483647)
                            if (!(r < 0.0))
                                if (r > 1.0) g = 1.0;
                                else g = r;
                        else g = 0.0;
                        else g = 1.0;
                        e: do {
                            switch (a[t + 40 >> 2] | 0) {
                                case 0:
                                    {
                                        d = t + 8 | 0;o = b * v;f = 0;
                                        while (1) {
                                            if ((f | 0) >= (x | 0)) break e;
                                            l = a[k + 8 + (f * 12 | 0) + 4 >> 2] | 0;
                                            t: do {
                                                if ((l | 0) != -1) {
                                                    s = 0;
                                                    while (1) {
                                                        if ((s | 0) >= (i | 0)) break t;
                                                        n = a[w + (s << 2) >> 2] | 0;
                                                        if ((n | 0) != -1) {
                                                            r = +h[t >> 2] + g * +h[y + (n << 2) >> 2];
                                                            r = +h[m >> 2] < 0.0 ? r + 180.0 : r;
                                                            while (1) {
                                                                if (!(r > 180.0)) break;
                                                                r = r + -360.0
                                                            }
                                                            while (1) {
                                                                if (!(r < -180.0)) break;
                                                                r = r + 360.0
                                                            }
                                                            b = +xR(r, k, f);
                                                            i = e + 8 + (s << 5) + (l << 2) | 0;
                                                            h[i >> 2] = +h[i >> 2] + +h[d >> 2] * (o + A * b);
                                                            i = a[e >> 2] | 0
                                                        }
                                                        s = s + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            f = f + 1 | 0
                                        }
                                    }
                                case 2:
                                    {
                                        d = t + 8 | 0;r = b * v;f = 0;
                                        while (1) {
                                            if ((f | 0) >= (x | 0)) break e;
                                            l = a[k + 8 + (f * 12 | 0) + 4 >> 2] | 0;
                                            t: do {
                                                if ((l | 0) != -1) {
                                                    s = 0;
                                                    while (1) {
                                                        if ((s | 0) >= (i | 0)) break t;
                                                        n = a[w + (s << 2) >> 2] | 0;
                                                        if ((n | 0) != -1) {
                                                            b = +xR(+kR(+h[y + (n << 2) >> 2], +h[t >> 2], g), k, f);
                                                            i = e + 8 + (s << 5) + (l << 2) | 0;
                                                            h[i >> 2] = +h[i >> 2] + +h[d >> 2] * (r + A * b);
                                                            i = a[e >> 2] | 0
                                                        }
                                                        s = s + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            f = f + 1 | 0
                                        }
                                    }
                                case 3:
                                    {
                                        o = +TR(+h[t >> 2]);r = 0.0;f = 0;
                                        while (1) {
                                            if ((f | 0) >= (x | 0)) break;
                                            l = a[k + 8 + (f * 12 | 0) + 4 >> 2] | 0;
                                            t: do {
                                                if ((l | 0) != -1) {
                                                    s = 0;
                                                    while (1) {
                                                        if ((s | 0) >= (i | 0)) break t;
                                                        n = a[w + (s << 2) >> 2] | 0;
                                                        if ((n | 0) != -1) {
                                                            S = +xR(+h[y + (n << 2) >> 2], k, f);
                                                            h[d + 8 + (s << 5) + (l << 2) >> 2] = S;
                                                            E = +xR(o, k, f);
                                                            h[_ + 8 + (s << 5) + (l << 2) >> 2] = E;
                                                            r = r + S * E
                                                        }
                                                        s = s + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            f = f + 1 | 0
                                        }
                                        if (!(g >= .5)) {
                                            o = 1.0;
                                            u = 0.0
                                        } else {
                                            S = (g + -.5) * 2.0;
                                            o = S * S;
                                            o = (+IS(u * u * (1.0 - o) + r * (o * r)) - S * r) / u;
                                            u = S
                                        }
                                        f = t + 8 | 0;r = b * v;l = 0;
                                        while (1) {
                                            if ((l | 0) >= (x | 0)) break;
                                            s = a[k + 8 + (l * 12 | 0) + 4 >> 2] | 0;
                                            t: do {
                                                if ((s | 0) != -1) {
                                                    n = 0;
                                                    while (1) {
                                                        if ((n | 0) >= (i | 0)) break t;
                                                        if ((a[w + (n << 2) >> 2] | 0) != -1) {
                                                            i = e + 8 + (n << 5) + (s << 2) | 0;
                                                            h[i >> 2] = +h[i >> 2] + +h[f >> 2] * (r + A * (u * +h[d + 8 + (n << 5) + (s << 2) >> 2] + o * +h[_ + 8 + (n << 5) + (s << 2) >> 2]));
                                                            i = a[e >> 2] | 0
                                                        }
                                                        n = n + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            l = l + 1 | 0
                                        }
                                        break
                                    }
                                case 4:
                                    {
                                        d = t + 8 | 0;f = 0;
                                        while (1) {
                                            if ((f | 0) >= (x | 0)) break e;
                                            l = a[k + 8 + (f * 12 | 0) + 4 >> 2] | 0;
                                            t: do {
                                                if ((l | 0) != -1) {
                                                    s = 0;
                                                    while (1) {
                                                        if ((s | 0) >= (i | 0)) break t;
                                                        n = a[w + (s << 2) >> 2] | 0;
                                                        if ((n | 0) != -1) {
                                                            S = +h[y + (n << 2) >> 2];
                                                            r = +h[t >> 2];
                                                            o = +kR(S, r, g);
                                                            u = +xR(o, k, f);
                                                            o = +TR(o - r);
                                                            r = +TR(S - r);
                                                            r = r < 0.0 ? -r : r;
                                                            o = +CS((r * .5 - (o < 0.0 ? -o : o)) * 3.1415927410125732 / 180.0);
                                                            if (!(o <= 0.0)) r = +CS(r * 3.1415927410125732 / 360.0) / o;
                                                            else r = 1.0;
                                                            i = e + 8 + (s << 5) + (l << 2) | 0;
                                                            h[i >> 2] = +h[i >> 2] + +h[d >> 2] * (u * r + b * (1.0 - r));
                                                            i = a[e >> 2] | 0
                                                        }
                                                        s = s + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            f = f + 1 | 0
                                        }
                                    }
                                default:
                                    {
                                        l = t + 8 | 0;o = b * v;n = 0;
                                        while (1) {
                                            if ((n | 0) >= (x | 0)) break e;
                                            i = gR(a[e >> 2] | 0) | 0;
                                            if (!i) break e;
                                            s = a[k + 8 + (n * 12 | 0) + 4 >> 2] | 0;
                                            if ((s | 0) != -1 ? (f = a[i + (s << 2) >> 2] | 0, (f | 0) != -1) : 0) {
                                                r = +h[t >> 2];
                                                r = +h[m >> 2] < 0.0 ? r + 180.0 : r;
                                                while (1) {
                                                    if (!(r > 180.0)) break;
                                                    r = r + -360.0
                                                }
                                                while (1) {
                                                    if (!(r < -180.0)) break;
                                                    r = r + 360.0
                                                }
                                                S = +xR(r, k, n);
                                                w = e + 8 + (f << 5) + (s << 2) | 0;
                                                h[w >> 2] = +h[w >> 2] + +h[l >> 2] * (o + A * S)
                                            }
                                            n = n + 1 | 0
                                        }
                                    }
                            }
                        } while (0);
                        p = T;
                        return
                    }

                    function bR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0.0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0;
                        i = a[e >> 2] | 0;
                        switch (i | 0) {
                            case 4:
                            case 2:
                            case 1:
                                {
                                    o = +h[t + 20 >> 2] + +h[t + 12 >> 2];s = +h[t + 24 >> 2] + +h[t + 16 >> 2];
                                    break
                                }
                            default:
                                {
                                    o = +h[t + 20 >> 2];s = +h[t + 24 >> 2]
                                }
                        }
                        e: do {
                            switch (i | 0) {
                                case 1:
                                    {
                                        t = a[e + 4 >> 2] | 0;
                                        if ((t | 0) == 2) {
                                            if (!(o != 0.0)) break e;
                                            o = o * .7079457640647888;
                                            r = e + 8 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            e = e + 12 | 0;
                                            h[e >> 2] = o + +h[e >> 2];
                                            break e
                                        }
                                        if (o != 0.0 & (t | 0) > 2) {
                                            r = e + 16 | 0;
                                            h[r >> 2] = o + +h[r >> 2]
                                        }
                                        if (s != 0.0 & (t | 0) > 3) {
                                            e = e + 20 | 0;
                                            h[e >> 2] = s + +h[e >> 2]
                                        }
                                        break
                                    }
                                case 2:
                                    {
                                        t = a[e + 4 >> 2] | 0;
                                        if ((t | 0) == 2) {
                                            if (!(o != 0.0)) break e;
                                            o = o * .5011872053146362;
                                            r = e + 8 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            r = e + 12 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            r = e + 40 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            e = e + 44 | 0;
                                            h[e >> 2] = o + +h[e >> 2];
                                            break e
                                        }
                                        if (o != 0.0 & (t | 0) > 2) {
                                            o = o * .7079457640647888;
                                            r = e + 16 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            r = e + 48 | 0;
                                            h[r >> 2] = o + +h[r >> 2]
                                        }
                                        if (s != 0.0 & (t | 0) > 3) {
                                            o = s * .7079457640647888;
                                            r = e + 20 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            e = e + 52 | 0;
                                            h[e >> 2] = o + +h[e >> 2]
                                        }
                                        break
                                    }
                                case 4:
                                    {
                                        t = a[e + 4 >> 2] | 0;
                                        if (o != 0.0 & (t | 0) > 2) {
                                            n = o * .7079457640647888;
                                            r = e + 16 | 0;
                                            h[r >> 2] = n + +h[r >> 2];
                                            r = e + 48 | 0;
                                            h[r >> 2] = n + +h[r >> 2];
                                            o = o * .5011872053146362;
                                            r = e + 80 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            r = e + 112 | 0;
                                            h[r >> 2] = o + +h[r >> 2]
                                        }
                                        if (s != 0.0 & (t | 0) > 3) {
                                            o = s * .7079457640647888;
                                            r = e + 20 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            r = e + 52 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            o = s * .5011872053146362;
                                            r = e + 84 | 0;
                                            h[r >> 2] = o + +h[r >> 2];
                                            e = e + 116 | 0;
                                            h[e >> 2] = o + +h[e >> 2]
                                        }
                                        break
                                    }
                                case 5:
                                    switch (yR(5) | 0) {
                                        case 0:
                                            {
                                                t = a[e + 4 >> 2] | 0;
                                                if ((t | 0) <= 2) break e;r = e + 80 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (o != 0.0) {
                                                    n = o * .7079457640647888;
                                                    r = e + 16 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    r = e + 48 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    o = o * .5011872053146362;
                                                    r = e + 112 | 0;
                                                    h[r >> 2] = o + +h[r >> 2];
                                                    r = e + 144 | 0;
                                                    h[r >> 2] = o + +h[r >> 2]
                                                }
                                                if (!(s != 0.0 & (t | 0) > 3)) break e;o = s * .7079457640647888;r = e + 20 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 52 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 84 | 0;h[r >> 2] = o + +h[r >> 2];o = s * .5011872053146362;r = e + 116 | 0;h[r >> 2] = o + +h[r >> 2];e = e + 148 | 0;h[e >> 2] = o + +h[e >> 2];
                                                break e
                                            }
                                        case 1:
                                            {
                                                t = a[e + 4 >> 2] | 0;
                                                if (o != 0.0 & (t | 0) > 2) {
                                                    n = o * .7079457640647888;
                                                    r = e + 16 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    r = e + 48 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    o = o * .5011872053146362;
                                                    r = e + 112 | 0;
                                                    h[r >> 2] = o + +h[r >> 2];
                                                    r = e + 144 | 0;
                                                    h[r >> 2] = o + +h[r >> 2]
                                                }
                                                if ((t | 0) <= 3) break e;r = e + 84 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (!(s != 0.0)) break e;o = s * .7079457640647888;r = e + 20 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 52 | 0;h[r >> 2] = o + +h[r >> 2];o = s * .5011872053146362;r = e + 116 | 0;h[r >> 2] = o + +h[r >> 2];e = e + 148 | 0;h[e >> 2] = o + +h[e >> 2];
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                case 6:
                                    switch (yR(6) | 0) {
                                        case 0:
                                            {
                                                t = a[e + 4 >> 2] | 0;
                                                if ((t | 0) <= 2) break e;r = e + 80 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (o != 0.0) {
                                                    n = o * .7079457640647888;
                                                    r = e + 16 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    r = e + 48 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    o = o * .5011872053146362;
                                                    r = e + 144 | 0;
                                                    h[r >> 2] = o + +h[r >> 2];
                                                    r = e + 176 | 0;
                                                    h[r >> 2] = o + +h[r >> 2]
                                                }
                                                if ((t | 0) <= 3) break e;r = e + 116 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (!(s != 0.0)) break e;o = s * .7079457640647888;r = e + 20 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 52 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 84 | 0;h[r >> 2] = o + +h[r >> 2];o = s * .5011872053146362;r = e + 148 | 0;h[r >> 2] = o + +h[r >> 2];e = e + 180 | 0;h[e >> 2] = o + +h[e >> 2];
                                                break e
                                            }
                                        case 1:
                                            {
                                                t = a[e + 4 >> 2] | 0;
                                                if ((t | 0) <= 2) break e;r = e + 48 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (o != 0.0) {
                                                    n = o * .7079457640647888;
                                                    r = e + 16 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    r = e + 80 | 0;
                                                    h[r >> 2] = n + +h[r >> 2];
                                                    o = o * .5011872053146362;
                                                    r = e + 112 | 0;
                                                    h[r >> 2] = o + +h[r >> 2];
                                                    r = e + 144 | 0;
                                                    h[r >> 2] = o + +h[r >> 2]
                                                }
                                                if ((t | 0) <= 3) break e;r = e + 180 | 0;h[r >> 2] = +h[r >> 2] + 1.0;
                                                if (!(s != 0.0)) break e;o = s * .7079457640647888;r = e + 20 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 52 | 0;h[r >> 2] = o + +h[r >> 2];r = e + 84 | 0;h[r >> 2] = o + +h[r >> 2];o = s * .5011872053146362;r = e + 116 | 0;h[r >> 2] = o + +h[r >> 2];e = e + 148 | 0;h[e >> 2] = o + +h[e >> 2];
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                case 8:
                                    {
                                        t = a[e + 4 >> 2] | 0;
                                        if ((t | 0) > 2) {
                                            i = e + 80 | 0;
                                            h[i >> 2] = +h[i >> 2] + 1.0;
                                            if (o != 0.0) {
                                                u = o * .7079457640647888;
                                                i = e + 16 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                i = e + 48 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                u = o * .5011872053146362;
                                                i = e + 144 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                i = e + 176 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                o = o * .3548133969306946;
                                                i = e + 208 | 0;
                                                h[i >> 2] = o + +h[i >> 2];
                                                i = e + 240 | 0;
                                                h[i >> 2] = o + +h[i >> 2]
                                            }
                                            if ((t | 0) > 3 ? (r = e + 116 | 0, n = +h[r >> 2] + 1.0, h[r >> 2] = n, s != 0.0) : 0) {
                                                u = s * .7079457640647888;
                                                i = e + 20 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                i = e + 52 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                i = e + 84 | 0;
                                                h[i >> 2] = u + +h[i >> 2];
                                                u = s * .5011872053146362;
                                                h[r >> 2] = u + n;
                                                r = e + 148 | 0;
                                                h[r >> 2] = u + +h[r >> 2];
                                                u = s * .3548133969306946;
                                                r = e + 212 | 0;
                                                h[r >> 2] = u + +h[r >> 2];
                                                e = e + 244 | 0;
                                                h[e >> 2] = u + +h[e >> 2]
                                            }
                                        }
                                        break
                                    }
                                default:
                                    {}
                            }
                        } while (0);
                        return
                    }

                    function gR(e) {
                        e = e | 0;
                        var t = 0;
                        t = yR(e) | 0;
                        e: do {
                            if (t >>> 0 > 1) e = 0;
                            else {
                                switch (e | 0) {
                                    case 8:
                                    case 6:
                                    case 5:
                                    case 4:
                                    case 2:
                                    case 1:
                                        break;
                                    default:
                                        {
                                            e = 0;
                                            break e
                                        }
                                }
                                e = 496 + (t << 8) + (e + -1 << 5) | 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function yR(e) {
                        e = e | 0;
                        return 0
                    }

                    function AR(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 1:
                                {
                                    e = 2032;
                                    break
                                }
                            case 2:
                                {
                                    e = 2e3;
                                    break
                                }
                            case 4:
                                {
                                    e = 1968;
                                    break
                                }
                            case 5:
                                {
                                    e = 1936;
                                    break
                                }
                            case 6:
                                {
                                    e = yR(6) | 0;e = (e | 0) == 0 ? 1872 : (e | 0) == 1 ? 1840 : 0;
                                    break
                                }
                            case 8:
                                {
                                    e = 1904;
                                    break
                                }
                            default:
                                e = 0
                        }
                        return e | 0
                    }

                    function wR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        switch (i | 0) {
                            case 0:
                                return ((e | 0) > 6 & (t | 0) > 7 ? 1216 : (t | 0) > 3 ? 1008 : 1112) | 0;
                            case 1:
                                return ((e | 0) > 6 & (t | 0) > 6 ? 1632 : (t | 0) > 4 ? 1320 : (t | 0) == 4 ? 1008 : 1112) | 0;
                            case 2:
                                {
                                    i = (t | 0) > 7 ? 1528 : (t | 0) > 3 ? 1216 : 1424;
                                    break
                                }
                            case 3:
                                {
                                    i = (t | 0) > 7 ? 1736 : (t | 0) > 5 ? 1632 : (t | 0) > 3 ? 1216 : 1424;
                                    break
                                }
                            default:
                                i = 1112
                        }
                        return i | 0
                    }

                    function xR(e, t, i) {
                        e = +e;
                        t = t | 0;
                        i = i | 0;
                        var r = 0.0,
                            n = 0.0,
                            s = 0.0,
                            o = 0,
                            u = 0,
                            l = 0;
                        l = a[t + 4 >> 2] | 0;
                        s = +h[l + (a[t + 8 + (i * 12 | 0) >> 2] << 2) >> 2];
                        u = a[t >> 2] | 0;
                        r = +h[l + (a[t + 8 + ((((i | 0) < 1 ? u : i) + -1 | 0) * 12 | 0) >> 2] << 2) >> 2];
                        o = r > s;
                        n = o & r < e ? e + -360.0 : e;
                        r = o ? r + -360.0 : r;
                        o = i + 1 | 0;
                        e = +h[l + (a[t + 8 + (((o | 0) >= (u | 0) ? 0 : o) * 12 | 0) >> 2] << 2) >> 2];
                        o = e < s;
                        n = o & n < e ? n + 360.0 : n;
                        e = o ? e + 360.0 : e;
                        if (!(r < n) | !(n <= s))
                            if (s <= n & n < e) {
                                e = e - s;
                                e = +CS((n - s) / (e == 0.0 ? 9.999999974752427e-07 : e) * 1.5707963705062866);
                                if (e > 1.0) e = 1.0
                            } else e = 0.0;
                        else {
                            e = s - r;
                            e = +MS((n - r) / (e == 0.0 ? 9.999999974752427e-07 : e) * 1.5707963705062866);
                            if (e > 1.0) e = 1.0
                        }
                        return +(e * +h[t + 8 + (i * 12 | 0) + 8 >> 2])
                    }

                    function kR(e, t, i) {
                        e = +e;
                        t = +t;
                        i = +i;
                        return + +TR(+TR(e - t) * i + t)
                    }

                    function TR(e) {
                        e = +e;
                        while (1) {
                            if (!(e > 180.0)) break;
                            e = e + -360.0
                        }
                        while (1) {
                            if (!(e <= -180.0)) break;
                            e = e + 360.0
                        }
                        return +e
                    }

                    function ER(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 284 >> 2] | 0;
                        e: do {
                            if (!t) t = 0;
                            else {
                                t = a[t + 24 >> 2] | 0;
                                t: do {
                                    if ((t | 0) < 2147483647) {
                                        switch (t | 0) {
                                            case 2:
                                                break;
                                            default:
                                                break t
                                        }
                                        t = PR(e) | 0;
                                        break e
                                    } else switch (t | 0) {
                                        case 2147483647:
                                            {
                                                t = 0;
                                                break e
                                            }
                                        default:
                                            {}
                                    }
                                } while (0)
                            }
                        } while (0);
                        return t | 0
                    }

                    function SR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        h[e >> 2] = 0.0;
                        n = e + 4 | 0;
                        h[n >> 2] = 1.0;
                        o = e + 8 | 0;
                        h[o >> 2] = 1.0;
                        u = e + 12 | 0;
                        l = e + 36 | 0;
                        f = e + 40 | 0;
                        c = e + 44 | 0;
                        a[u >> 2] = 0;
                        a[u + 4 >> 2] = 0;
                        a[u + 8 >> 2] = 0;
                        a[u + 12 >> 2] = 0;
                        a[u + 16 >> 2] = 0;
                        a[u + 20 >> 2] = 0;
                        a[u + 24 >> 2] = 0;
                        a[u + 28 >> 2] = 0;
                        h[c >> 2] = 1.0;
                        if (t) {
                            i = a[t >> 2] | 0;
                            if ((i | 0) == 2147483647) i = 0;
                            else {
                                a[e >> 2] = i;
                                i = s[t + 48 >> 0] | 0
                            }
                            r = a[t + 4 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[n >> 2] = r;
                                i = i | (s[t + 49 >> 0] | 0)
                            }
                            r = a[t + 8 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[o >> 2] = r;
                                i = i | (s[t + 50 >> 0] | 0)
                            }
                            r = a[t + 12 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[u >> 2] = r;
                                i = i | (s[t + 51 >> 0] | 0)
                            }
                            r = a[t + 16 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[e + 16 >> 2] = r;
                                i = i | (s[t + 52 >> 0] | 0)
                            }
                            r = a[t + 20 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[e + 20 >> 2] = r;
                                i = i | (s[t + 53 >> 0] | 0)
                            }
                            r = a[t + 24 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[e + 24 >> 2] = r;
                                i = i | (s[t + 54 >> 0] | 0)
                            }
                            r = a[t + 28 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[e + 28 >> 2] = r;
                                i = i | (s[t + 55 >> 0] | 0)
                            }
                            r = a[t + 32 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[e + 32 >> 2] = r;
                                i = i | (s[t + 56 >> 0] | 0)
                            }
                            r = a[t + 36 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[l >> 2] = r;
                                i = i | (s[t + 57 >> 0] | 0)
                            }
                            r = a[t + 40 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[f >> 2] = r;
                                i = i | (s[t + 58 >> 0] | 0)
                            }
                            r = a[t + 44 >> 2] | 0;
                            if ((r | 0) != 2147483647) {
                                a[c >> 2] = r;
                                i = i | (s[t + 59 >> 0] | 0)
                            }
                        } else i = 0;
                        return i | 0
                    }

                    function PR(e) {
                        e = e | 0;
                        var t = 0;
                        t = (a[e + 80 >> 2] | 0) != 0;
                        do {
                            if ((a[1927] | 0) == 1) e = t & 1;
                            else {
                                if (t ? a[e + 84 >> 2] | 0 : 0) {
                                    e = 1;
                                    break
                                }
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function IR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0.0,
                            u = 0,
                            l = 0,
                            f = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0;
                        f = e + 244 | 0;
                        h[f >> 2] = +h[t + 244 >> 2] * +h[f >> 2];
                        f = e + 248 | 0;
                        a[f >> 2] = (a[f >> 2] | 0) + (a[t + 248 >> 2] | 0);
                        f = t + 284 | 0;
                        i = a[f >> 2] | 0;
                        do {
                            if (i) {
                                l = e + 284 | 0;
                                n = a[l >> 2] | 0;
                                if (!n) {
                                    i = Dl() | 0;
                                    a[l >> 2] = i;
                                    if (!i) break;
                                    n = a[f >> 2] | 0;
                                    s = i + 48 | 0;
                                    do {
                                        a[i >> 2] = a[n >> 2];
                                        i = i + 4 | 0;
                                        n = n + 4 | 0
                                    } while ((i | 0) < (s | 0));
                                    d = 32;
                                    break
                                }
                                s = a[i >> 2] | 0;
                                o = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) != 2147483647) {
                                    i = a[n >> 2] | 0;
                                    if ((i | 0) == 2147483647) a[n >> 2] = s;
                                    else h[n >> 2] = o * (a[c >> 2] = i, +h[c >> 2]);
                                    i = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    u = n + 36 | 0;
                                    r[u >> 0] = r[u >> 0] | r[i + 36 >> 0]
                                }
                                s = a[i + 4 >> 2] | 0;
                                o = (a[c >> 2] = s, +h[c >> 2]);
                                if ((s | 0) == 2147483647) s = i;
                                else {
                                    i = n + 4 | 0;
                                    n = a[i >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[i >> 2] = s;
                                    else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                    s = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    u = n + 37 | 0;
                                    r[u >> 0] = r[u >> 0] | r[s + 37 >> 0]
                                }
                                i = a[s + 8 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[n + 8 >> 2] = i;
                                    s = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    u = n + 38 | 0;
                                    r[u >> 0] = r[u >> 0] | r[s + 38 >> 0]
                                }
                                i = a[s + 12 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[n + 12 >> 2] = i;
                                    s = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    u = n + 39 | 0;
                                    r[u >> 0] = r[u >> 0] | r[s + 39 >> 0]
                                }
                                i = a[s + 16 >> 2] | 0;
                                if ((i | 0) == 2147483647) i = s;
                                else {
                                    u = n + 16 | 0;
                                    if ((a[u >> 2] | 0) != 2147483647)
                                        if ((i | 0) == 1) {
                                            i = 1;
                                            d = 22
                                        } else i = s;
                                    else d = 22;
                                    if ((d | 0) == 22) {
                                        a[u >> 2] = i;
                                        i = a[f >> 2] | 0;
                                        n = a[l >> 2] | 0
                                    }
                                    d = n + 40 | 0;
                                    r[d >> 0] = r[d >> 0] | r[i + 40 >> 0]
                                }
                                s = a[i + 20 >> 2] | 0;
                                if ((s | 0) == 2147483647) s = i;
                                else {
                                    a[n + 20 >> 2] = s;
                                    s = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    d = n + 41 | 0;
                                    r[d >> 0] = r[d >> 0] | r[s + 41 >> 0]
                                }
                                i = a[s + 24 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[n + 24 >> 2] = i;
                                    s = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    d = n + 42 | 0;
                                    r[d >> 0] = r[d >> 0] | r[s + 42 >> 0]
                                }
                                i = a[s + 28 >> 2] | 0;
                                if ((i | 0) == 2147483647) i = s;
                                else {
                                    a[n + 28 >> 2] = i;
                                    i = a[f >> 2] | 0;
                                    n = a[l >> 2] | 0;
                                    d = n + 43 | 0;
                                    r[d >> 0] = r[d >> 0] | r[i + 43 >> 0]
                                }
                                i = a[i + 32 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[n + 32 >> 2] = i;
                                    d = (a[l >> 2] | 0) + 44 | 0;
                                    r[d >> 0] = r[d >> 0] | r[(a[f >> 2] | 0) + 44 >> 0];
                                    d = 32
                                } else d = 32
                            } else d = 32
                        } while (0);
                        e: do {
                            if ((d | 0) == 32) {
                                f = t + 288 | 0;
                                i = a[f >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 288 | 0;
                                        n = a[l >> 2] | 0;
                                        if (!n) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 48 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        }
                                        s = a[i >> 2] | 0;
                                        o = (a[c >> 2] = s, +h[c >> 2]);
                                        if ((s | 0) != 2147483647) {
                                            i = a[n >> 2] | 0;
                                            if ((i | 0) == 2147483647) a[n >> 2] = s;
                                            else h[n >> 2] = o + (a[c >> 2] = i, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            u = n + 36 | 0;
                                            r[u >> 0] = r[u >> 0] | r[i + 36 >> 0]
                                        }
                                        s = a[i + 4 >> 2] | 0;
                                        o = (a[c >> 2] = s, +h[c >> 2]);
                                        if ((s | 0) != 2147483647) {
                                            i = n + 4 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = s;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            u = n + 37 | 0;
                                            r[u >> 0] = r[u >> 0] | r[i + 37 >> 0]
                                        }
                                        s = a[i + 8 >> 2] | 0;
                                        o = (a[c >> 2] = s, +h[c >> 2]);
                                        if ((s | 0) != 2147483647) {
                                            i = n + 8 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = s;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            u = n + 38 | 0;
                                            r[u >> 0] = r[u >> 0] | r[i + 38 >> 0]
                                        }
                                        s = a[i + 12 >> 2] | 0;
                                        o = (a[c >> 2] = s, +h[c >> 2]);
                                        if ((s | 0) != 2147483647) {
                                            i = n + 12 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = s;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            u = n + 39 | 0;
                                            r[u >> 0] = r[u >> 0] | r[i + 39 >> 0]
                                        }
                                        s = a[i + 16 >> 2] | 0;
                                        if ((s | 0) != 2147483647) {
                                            u = n + 16 | 0;
                                            if ((a[u >> 2] | 0) != 2147483647) {
                                                if ((s | 0) == 1) {
                                                    i = 1;
                                                    d = 59
                                                }
                                            } else {
                                                i = s;
                                                d = 59
                                            }
                                            if ((d | 0) == 59) {
                                                a[u >> 2] = i;
                                                i = a[f >> 2] | 0;
                                                n = a[l >> 2] | 0
                                            }
                                            d = n + 40 | 0;
                                            r[d >> 0] = r[d >> 0] | r[i + 40 >> 0]
                                        }
                                        s = a[i + 20 >> 2] | 0;
                                        if ((s | 0) != 2147483647 ? (p = n + 20 | 0, (a[p >> 2] | 0) == 2147483647) : 0) {
                                            a[p >> 2] = s;
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            p = n + 41 | 0;
                                            r[p >> 0] = r[p >> 0] | r[i + 41 >> 0]
                                        }
                                        s = a[i + 24 >> 2] | 0;
                                        if ((s | 0) != 2147483647 ? (v = n + 24 | 0, (a[v >> 2] | 0) == 2147483647) : 0) {
                                            a[v >> 2] = s;
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            v = n + 42 | 0;
                                            r[v >> 0] = r[v >> 0] | r[i + 42 >> 0]
                                        }
                                        s = a[i + 28 >> 2] | 0;
                                        if ((s | 0) != 2147483647 ? (m = n + 28 | 0, (a[m >> 2] | 0) == 2147483647) : 0) {
                                            a[m >> 2] = s;
                                            i = a[f >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            m = n + 43 | 0;
                                            r[m >> 0] = r[m >> 0] | r[i + 43 >> 0]
                                        }
                                        i = a[i + 32 >> 2] | 0;
                                        if ((i | 0) != 2147483647 ? (_ = n + 32 | 0, (a[_ >> 2] | 0) == 2147483647) : 0) {
                                            a[_ >> 2] = i;
                                            _ = (a[l >> 2] | 0) + 44 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[(a[f >> 2] | 0) + 44 >> 0]
                                        }
                                    }
                                } while (0);
                                f = t + 304 | 0;
                                i = a[f >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 304 | 0;
                                        s = a[l >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 60 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        }
                                        n = a[i >> 2] | 0;
                                        o = (a[c >> 2] = n, +h[c >> 2]);
                                        if ((n | 0) != 2147483647) {
                                            i = a[s >> 2] | 0;
                                            if ((i | 0) == 2147483647) a[s >> 2] = n;
                                            else h[s >> 2] = o + (a[c >> 2] = i, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 48 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 48 >> 0]
                                        }
                                        u = a[i + 4 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 4 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 49 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 49 >> 0]
                                        }
                                        u = a[i + 8 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 8 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 50 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 50 >> 0]
                                        }
                                        u = a[i + 12 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 12 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 51 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 51 >> 0]
                                        }
                                        u = a[i + 16 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 16 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 52 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 52 >> 0]
                                        }
                                        u = a[i + 20 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 20 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 53 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 53 >> 0]
                                        }
                                        u = a[i + 24 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 24 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 54 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 54 >> 0]
                                        }
                                        u = a[i + 28 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 28 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 55 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 55 >> 0]
                                        }
                                        u = a[i + 32 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) == 2147483647) n = i;
                                        else {
                                            i = s + 32 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 56 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[n + 56 >> 0]
                                        }
                                        i = a[n + 36 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[s + 36 >> 2] = i;
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 57 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[n + 57 >> 0]
                                        }
                                        i = a[n + 40 >> 2] | 0;
                                        if ((i | 0) == 2147483647) i = n;
                                        else {
                                            a[s + 40 >> 2] = i;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 58 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 58 >> 0]
                                        }
                                        u = a[i + 44 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 44 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            _ = (a[l >> 2] | 0) + 59 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[(a[f >> 2] | 0) + 59 >> 0]
                                        }
                                    }
                                } while (0);
                                l = t + 296 | 0;
                                i = a[l >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        f = e + 296 | 0;
                                        s = a[f >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[f >> 2] = i;
                                            if (!i) break e;
                                            _ = a[l >> 2] | 0;
                                            a[i >> 2] = a[_ >> 2];
                                            a[i + 4 >> 2] = a[_ + 4 >> 2];
                                            a[i + 8 >> 2] = a[_ + 8 >> 2];
                                            a[i + 12 >> 2] = a[_ + 12 >> 2];
                                            a[i + 16 >> 2] = a[_ + 16 >> 2];
                                            a[i + 20 >> 2] = a[_ + 20 >> 2];
                                            a[i + 24 >> 2] = a[_ + 24 >> 2];
                                            a[i + 28 >> 2] = a[_ + 28 >> 2];
                                            if (a[(a[l >> 2] | 0) + 8 >> 2] | 0) break;
                                            a[(a[f >> 2] | 0) + 12 >> 2] = 2147483647;
                                            a[(a[f >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[f >> 2] | 0) + 20 >> 2] = 2147483647;
                                            break
                                        }
                                        n = a[i >> 2] | 0;
                                        o = (a[c >> 2] = n, +h[c >> 2]);
                                        if ((n | 0) != 2147483647) {
                                            i = a[s >> 2] | 0;
                                            if ((i | 0) == 2147483647) a[s >> 2] = n;
                                            else h[s >> 2] = 1.0 - (1.0 - o) * (1.0 - (a[c >> 2] = i, +h[c >> 2]));
                                            i = a[l >> 2] | 0;
                                            s = a[f >> 2] | 0;
                                            _ = s + 24 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 24 >> 0]
                                        }
                                        u = a[i + 4 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) == 2147483647) n = i;
                                        else {
                                            i = s + 4 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            n = a[l >> 2] | 0;
                                            s = a[f >> 2] | 0;
                                            _ = s + 25 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[n + 25 >> 0]
                                        }
                                        i = a[n + 8 >> 2] | 0;
                                        if ((i | 0) == 2147483647) i = n;
                                        else {
                                            a[s + 8 >> 2] = i;
                                            i = a[l >> 2] | 0;
                                            s = a[f >> 2] | 0;
                                            _ = s + 26 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 26 >> 0]
                                        }
                                        u = a[i + 12 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 12 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[l >> 2] | 0;
                                            s = a[f >> 2] | 0;
                                            _ = s + 27 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 27 >> 0]
                                        }
                                        u = a[i + 16 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 16 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[l >> 2] | 0;
                                            s = a[f >> 2] | 0;
                                            _ = s + 28 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 28 >> 0]
                                        }
                                        u = a[i + 20 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 20 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            _ = (a[f >> 2] | 0) + 29 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[(a[l >> 2] | 0) + 29 >> 0]
                                        }
                                    }
                                } while (0);
                                u = t + 300 | 0;
                                i = a[u >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 300 | 0;
                                        s = a[l >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            _ = a[u >> 2] | 0;
                                            a[i >> 2] = a[_ >> 2];
                                            a[i + 4 >> 2] = a[_ + 4 >> 2];
                                            a[i + 8 >> 2] = a[_ + 8 >> 2];
                                            a[i + 12 >> 2] = a[_ + 12 >> 2];
                                            a[i + 16 >> 2] = a[_ + 16 >> 2];
                                            a[i + 20 >> 2] = a[_ + 20 >> 2];
                                            a[i + 24 >> 2] = a[_ + 24 >> 2];
                                            a[i + 28 >> 2] = a[_ + 28 >> 2];
                                            i = a[l >> 2] | 0;
                                            if (a[i + 8 >> 2] | 0) break;
                                            a[i + 12 >> 2] = 2147483647;
                                            a[(a[l >> 2] | 0) + 16 >> 2] = 2147483647;
                                            a[(a[l >> 2] | 0) + 20 >> 2] = 2147483647;
                                            break
                                        }
                                        n = a[i >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 24 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 24 >> 0]
                                        }
                                        n = a[i + 4 >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s + 4 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 25 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 25 >> 0]
                                        }
                                        n = a[i + 8 >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s + 8 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 26 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 26 >> 0]
                                        }
                                        n = a[i + 12 >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s + 12 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 27 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 27 >> 0]
                                        }
                                        n = a[i + 16 >> 2] | 0;
                                        if ((n | 0) == 2147483647) n = s;
                                        else {
                                            a[s + 16 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            _ = n + 28 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 28 >> 0]
                                        }
                                        i = a[i + 20 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[n + 20 >> 2] = i;
                                            _ = (a[l >> 2] | 0) + 29 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[(a[u >> 2] | 0) + 29 >> 0]
                                        }
                                    }
                                } while (0);
                                f = t + 292 | 0;
                                i = a[f >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 292 | 0;
                                        s = a[l >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 56 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        }
                                        n = a[i >> 2] | 0;
                                        u = (n | 0) != 2147483647;
                                        if ((a[t + 12 >> 2] | 0) == 6) {
                                            if (u) {
                                                a[s >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 44 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 44 >> 0]
                                            }
                                            n = a[i + 4 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 4 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 45 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 45 >> 0]
                                            }
                                            n = a[i + 8 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 8 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 46 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 46 >> 0]
                                            }
                                            n = a[i + 12 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 12 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 47 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 47 >> 0]
                                            }
                                            n = a[i + 16 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 16 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 48 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 48 >> 0]
                                            }
                                            n = a[i + 20 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 20 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 49 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 49 >> 0]
                                            }
                                            n = a[i + 24 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 24 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 50 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 50 >> 0]
                                            }
                                            n = a[i + 28 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 28 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 51 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 51 >> 0]
                                            }
                                            n = a[i + 32 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 32 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 52 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 52 >> 0]
                                            }
                                            n = a[i + 36 >> 2] | 0;
                                            if ((n | 0) != 2147483647) {
                                                a[s + 36 >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 53 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 53 >> 0]
                                            }
                                            i = a[i + 40 >> 2] | 0;
                                            if ((i | 0) == 2147483647) break;
                                            a[s + 40 >> 2] = i;
                                            k = (a[l >> 2] | 0) + 54 | 0;
                                            r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 54 >> 0];
                                            break
                                        }
                                        if (u ? (a[s >> 2] | 0) == 2147483647 : 0) {
                                            a[s >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            _ = s + 44 | 0;
                                            r[_ >> 0] = r[_ >> 0] | r[i + 44 >> 0]
                                        }
                                        n = a[i + 4 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (b = s + 4 | 0, (a[b >> 2] | 0) == 2147483647) : 0) {
                                            a[b >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            b = s + 45 | 0;
                                            r[b >> 0] = r[b >> 0] | r[i + 45 >> 0]
                                        }
                                        n = a[i + 8 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (g = s + 8 | 0, (a[g >> 2] | 0) == 2147483647) : 0) {
                                            a[g >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            g = s + 46 | 0;
                                            r[g >> 0] = r[g >> 0] | r[i + 46 >> 0]
                                        }
                                        n = a[i + 12 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (y = s + 12 | 0, (a[y >> 2] | 0) == 2147483647) : 0) {
                                            a[y >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            y = s + 47 | 0;
                                            r[y >> 0] = r[y >> 0] | r[i + 47 >> 0]
                                        }
                                        n = a[i + 16 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (A = s + 16 | 0, (a[A >> 2] | 0) == 2147483647) : 0) {
                                            a[A >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            A = s + 48 | 0;
                                            r[A >> 0] = r[A >> 0] | r[i + 48 >> 0]
                                        }
                                        n = a[i + 20 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (w = s + 20 | 0, (a[w >> 2] | 0) == 2147483647) : 0) {
                                            a[w >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            w = s + 49 | 0;
                                            r[w >> 0] = r[w >> 0] | r[i + 49 >> 0]
                                        }
                                        n = a[i + 24 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (x = s + 24 | 0, (a[x >> 2] | 0) == 2147483647) : 0) {
                                            a[x >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            x = s + 50 | 0;
                                            r[x >> 0] = r[x >> 0] | r[i + 50 >> 0]
                                        }
                                        n = a[i + 28 >> 2] | 0;
                                        if ((n | 0) != 2147483647 ? (k = s + 28 | 0, (a[k >> 2] | 0) == 2147483647) : 0) {
                                            a[k >> 2] = n;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 51 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 51 >> 0]
                                        }
                                        n = a[i + 32 >> 2] | 0;
                                        do {
                                            if ((n | 0) != 2147483647) {
                                                u = s + 32 | 0;
                                                if ((a[u >> 2] | 0) != 2147483647) break;
                                                a[u >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 52 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 52 >> 0]
                                            }
                                        } while (0);
                                        n = a[i + 36 >> 2] | 0;
                                        do {
                                            if ((n | 0) != 2147483647) {
                                                u = s + 36 | 0;
                                                if ((a[u >> 2] | 0) != 2147483647) break;
                                                a[u >> 2] = n;
                                                i = a[f >> 2] | 0;
                                                s = a[l >> 2] | 0;
                                                k = s + 53 | 0;
                                                r[k >> 0] = r[k >> 0] | r[i + 53 >> 0]
                                            }
                                        } while (0);
                                        n = a[i + 40 >> 2] | 0;
                                        if ((n | 0) == 2147483647) break;
                                        i = s + 40 | 0;
                                        if ((a[i >> 2] | 0) != 2147483647) break;
                                        a[i >> 2] = n;
                                        k = (a[l >> 2] | 0) + 54 | 0;
                                        r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 54 >> 0]
                                    }
                                } while (0);
                                f = t + 308 | 0;
                                i = a[f >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 308 | 0;
                                        s = a[l >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 52 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        }
                                        u = a[i + 4 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 4 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 41 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 41 >> 0]
                                        }
                                        u = a[i + 8 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 8 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 42 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 42 >> 0]
                                        }
                                        u = a[i + 12 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) == 2147483647) n = i;
                                        else {
                                            i = s + 12 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 43 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 43 >> 0]
                                        }
                                        i = a[n + 16 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[s + 16 >> 2] = i;
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 44 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 44 >> 0]
                                        }
                                        i = a[n + 20 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[s + 20 >> 2] = i;
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 45 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 45 >> 0]
                                        }
                                        i = a[n + 24 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[s + 24 >> 2] = i;
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 46 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 46 >> 0]
                                        }
                                        i = a[n + 28 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[s + 28 >> 2] = i;
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 47 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 47 >> 0]
                                        }
                                        u = a[n + 32 >> 2] | 0;
                                        o = (a[c >> 2] = u, +h[c >> 2]);
                                        if ((u | 0) != 2147483647) {
                                            i = s + 32 | 0;
                                            n = a[i >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[i >> 2] = u;
                                            else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            n = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 48 | 0;
                                            r[k >> 0] = r[k >> 0] | r[n + 48 >> 0]
                                        }
                                        i = a[n + 36 >> 2] | 0;
                                        if ((i | 0) == 2147483647) i = n;
                                        else {
                                            a[s + 36 >> 2] = i;
                                            i = a[f >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 49 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 49 >> 0]
                                        }
                                        i = a[i >> 2] | 0;
                                        o = (a[c >> 2] = i, +h[c >> 2]);
                                        if ((i | 0) != 2147483647) {
                                            n = a[s >> 2] | 0;
                                            if ((n | 0) == 2147483647) a[s >> 2] = i;
                                            else h[s >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                            k = (a[l >> 2] | 0) + 40 | 0;
                                            r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 40 >> 0]
                                        }
                                    }
                                } while (0);
                                i = a[t + 256 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[e + 256 >> 2] = i;
                                    k = e + 277 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 277 >> 0]
                                }
                                i = a[t + 260 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[e + 260 >> 2] = i;
                                    k = e + 278 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 278 >> 0]
                                }
                                i = a[t + 264 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[e + 264 >> 2] = i;
                                    k = e + 279 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 279 >> 0]
                                }
                                i = a[t + 268 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[e + 268 >> 2] = i;
                                    k = e + 280 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 280 >> 0]
                                }
                                i = a[t + 272 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[e + 272 >> 2] = i;
                                    k = e + 281 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 281 >> 0]
                                }
                                u = t + 312 | 0;
                                i = a[u >> 2] | 0;
                                do {
                                    if (i | 0) {
                                        l = e + 312 | 0;
                                        s = a[l >> 2] | 0;
                                        if (!s) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            k = a[u >> 2] | 0;
                                            a[i >> 2] = a[k >> 2];
                                            a[i + 4 >> 2] = a[k + 4 >> 2];
                                            a[i + 8 >> 2] = a[k + 8 >> 2];
                                            a[i + 12 >> 2] = a[k + 12 >> 2];
                                            a[i + 16 >> 2] = a[k + 16 >> 2];
                                            break
                                        }
                                        n = a[i >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 16 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 16 >> 0]
                                        }
                                        n = a[i + 4 >> 2] | 0;
                                        if ((n | 0) != 2147483647) {
                                            a[s + 4 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            s = a[l >> 2] | 0;
                                            k = s + 17 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 17 >> 0]
                                        }
                                        n = a[i + 8 >> 2] | 0;
                                        if ((n | 0) == 2147483647) n = s;
                                        else {
                                            a[s + 8 >> 2] = n;
                                            i = a[u >> 2] | 0;
                                            n = a[l >> 2] | 0;
                                            k = n + 18 | 0;
                                            r[k >> 0] = r[k >> 0] | r[i + 18 >> 0]
                                        }
                                        i = a[i + 12 >> 2] | 0;
                                        if ((i | 0) != 2147483647) {
                                            a[n + 12 >> 2] = i;
                                            k = (a[l >> 2] | 0) + 19 | 0;
                                            r[k >> 0] = r[k >> 0] | r[(a[u >> 2] | 0) + 19 >> 0]
                                        }
                                    }
                                } while (0);
                                i = a[t + 252 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    k = e + 252 | 0;
                                    x = a[k >> 2] | 0;
                                    a[k >> 2] = ((x | 0) == 2147483647 ? 0 : x) + i;
                                    k = e + 276 | 0;
                                    r[k >> 0] = r[k >> 0] | r[t + 276 >> 0]
                                }
                                t: do {
                                    if (a[t + 364 >> 2] | 0) {
                                        p = e + 364 | 0;
                                        d = 0;
                                        while (1) {
                                            if ((d | 0) >= 8) break t;
                                            f = t + 332 + (d << 2) | 0;
                                            i: do {
                                                if (a[f >> 2] | 0) {
                                                    n = e + 332 + (d << 2) | 0;
                                                    if (!(a[n >> 2] | 0)) {
                                                        k = Dl() | 0;
                                                        a[n >> 2] = k;
                                                        if (!k) break e;
                                                        a[p >> 2] = 1;
                                                        i = a[n >> 2] | 0;
                                                        n = a[f >> 2] | 0;
                                                        s = i + 40 | 0;
                                                        do {
                                                            a[i >> 2] = a[n >> 2];
                                                            i = i + 4 | 0;
                                                            n = n + 4 | 0
                                                        } while ((i | 0) < (s | 0));
                                                        break
                                                    } else i = 0;
                                                    while (1) {
                                                        if ((i | 0) == 8) break i;
                                                        s = a[(a[f >> 2] | 0) + (i << 2) >> 2] | 0;
                                                        o = (a[c >> 2] = s, +h[c >> 2]);
                                                        if ((s | 0) != 2147483647) {
                                                            u = (a[n >> 2] | 0) + (i << 2) | 0;
                                                            l = a[u >> 2] | 0;
                                                            if ((l | 0) == 2147483647) a[u >> 2] = s;
                                                            else h[u >> 2] = o * (a[c >> 2] = l, +h[c >> 2]);
                                                            k = (a[n >> 2] | 0) + 32 + i | 0;
                                                            r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 32 + i >> 0]
                                                        }
                                                        i = i + 1 | 0
                                                    }
                                                }
                                            } while (0);
                                            d = d + 1 | 0
                                        }
                                    }
                                } while (0);
                                ZR(e, t);
                                f = t + 316 | 0;
                                t: do {
                                    if (a[f >> 2] | 0) {
                                        l = e + 316 | 0;
                                        if (!(a[l >> 2] | 0)) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 40 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        } else i = 0;
                                        while (1) {
                                            if ((i | 0) == 8) break t;
                                            n = a[(a[f >> 2] | 0) + (i << 2) >> 2] | 0;
                                            o = (a[c >> 2] = n, +h[c >> 2]);
                                            if ((n | 0) != 2147483647) {
                                                s = (a[l >> 2] | 0) + (i << 2) | 0;
                                                u = a[s >> 2] | 0;
                                                if ((u | 0) == 2147483647) a[s >> 2] = n;
                                                else h[s >> 2] = o * (a[c >> 2] = u, +h[c >> 2]);
                                                k = (a[l >> 2] | 0) + 32 + i | 0;
                                                r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 32 + i >> 0]
                                            }
                                            i = i + 1 | 0
                                        }
                                    }
                                } while (0);
                                f = t + 328 | 0;
                                t: do {
                                    if (a[f >> 2] | 0) {
                                        l = e + 328 | 0;
                                        if (!(a[l >> 2] | 0)) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 40 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        } else i = 0;
                                        while (1) {
                                            if ((i | 0) == 8) break t;
                                            n = a[(a[f >> 2] | 0) + (i << 2) >> 2] | 0;
                                            o = (a[c >> 2] = n, +h[c >> 2]);
                                            if ((n | 0) != 2147483647) {
                                                s = (a[l >> 2] | 0) + (i << 2) | 0;
                                                u = a[s >> 2] | 0;
                                                if ((u | 0) == 2147483647) a[s >> 2] = n;
                                                else h[s >> 2] = o * (a[c >> 2] = u, +h[c >> 2]);
                                                k = (a[l >> 2] | 0) + 32 + i | 0;
                                                r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 32 + i >> 0]
                                            }
                                            i = i + 1 | 0
                                        }
                                    }
                                } while (0);
                                f = t + 320 | 0;
                                t: do {
                                    if (a[f >> 2] | 0) {
                                        l = e + 320 | 0;
                                        if (!(a[l >> 2] | 0)) {
                                            i = Dl() | 0;
                                            a[l >> 2] = i;
                                            if (!i) break e;
                                            n = a[f >> 2] | 0;
                                            s = i + 40 | 0;
                                            do {
                                                a[i >> 2] = a[n >> 2];
                                                i = i + 4 | 0;
                                                n = n + 4 | 0
                                            } while ((i | 0) < (s | 0));
                                            break
                                        } else i = 0;
                                        while (1) {
                                            if ((i | 0) == 8) break t;
                                            n = a[(a[f >> 2] | 0) + (i << 2) >> 2] | 0;
                                            o = (a[c >> 2] = n, +h[c >> 2]);
                                            if ((n | 0) != 2147483647) {
                                                s = (a[l >> 2] | 0) + (i << 2) | 0;
                                                u = a[s >> 2] | 0;
                                                if ((u | 0) == 2147483647) a[s >> 2] = n;
                                                else h[s >> 2] = o * (a[c >> 2] = u, +h[c >> 2]);
                                                k = (a[l >> 2] | 0) + 32 + i | 0;
                                                r[k >> 0] = r[k >> 0] | r[(a[f >> 2] | 0) + 32 + i >> 0]
                                            }
                                            i = i + 1 | 0
                                        }
                                    }
                                } while (0);
                                f = t + 324 | 0;
                                if (a[f >> 2] | 0) {
                                    l = e + 324 | 0;
                                    if (!(a[l >> 2] | 0)) {
                                        i = Dl() | 0;
                                        a[l >> 2] = i;
                                        if (!i) break;
                                        n = a[f >> 2] | 0;
                                        s = i + 40 | 0;
                                        do {
                                            a[i >> 2] = a[n >> 2];
                                            i = i + 4 | 0;
                                            n = n + 4 | 0
                                        } while ((i | 0) < (s | 0));
                                        break
                                    } else i = 0;
                                    while (1) {
                                        if ((i | 0) == 8) break e;
                                        n = a[(a[f >> 2] | 0) + (i << 2) >> 2] | 0;
                                        o = (a[c >> 2] = n, +h[c >> 2]);
                                        if ((n | 0) != 2147483647) {
                                            s = (a[l >> 2] | 0) + (i << 2) | 0;
                                            u = a[s >> 2] | 0;
                                            if ((u | 0) == 2147483647) a[s >> 2] = n;
                                            else h[s >> 2] = o + (a[c >> 2] = u, +h[c >> 2]);
                                            e = (a[l >> 2] | 0) + 32 + i | 0;
                                            r[e >> 0] = r[e >> 0] | r[(a[f >> 2] | 0) + 32 + i >> 0]
                                        }
                                        i = i + 1 | 0
                                    }
                                }
                            }
                        } while (0);
                        return
                    }

                    function MR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0.0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        A = p;
                        p = p + 16 | 0;
                        m = A + 8 | 0;
                        _ = A + 4 | 0;
                        b = A;
                        g = t + 101 | 0;
                        y = t + 92 | 0;
                        v = t + 88 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (s[g >> 0] | 0 | 0)) break;
                            r = n[(a[y >> 2] | 0) + (t << 1) >> 1] | 0;
                            u = a[(a[v >> 2] | 0) + (t << 2) >> 2] | 0;
                            l = (CR(u, r) | 0) & 65535;
                            f = uR(u, r) | 0;
                            e: do {
                                if ((OR(e, f & 65535, _) | 0) == 1) {
                                    c = +h[_ >> 2];
                                    i = 0;
                                    while (1) {
                                        if ((i | 0) == (l | 0)) break e;
                                        d = RR(u, r, i & 65535) | 0;
                                        do {
                                            if ((DR(d, m) | 0) == 1 ? (FR(u, r, f, d, c, b) | 0) == 1 : 0)
                                                if ((d + -7 | 0) >>> 0 < 8) {
                                                    d = hs(d) | 0;
                                                    Vl(e, d, 1, 1, +h[b >> 2], 0, 0.0) | 0;
                                                    break
                                                } else {
                                                    BR(e, o[m >> 1] | 0, a[b >> 2] | 0);
                                                    break
                                                }
                                        } while (0);
                                        i = i + 1 | 0
                                    }
                                }
                            } while (0);
                            t = t + 1 | 0
                        }
                        p = A;
                        return
                    }

                    function CR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s + 4 | 0;
                        r = s;
                        n = t & 65535;
                        if (!(n & 49152)) {
                            t = a[e + 1808 >> 2] | 0;
                            n = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, n) | 0) | 0;
                            n = n + (o[(a[t + 36 >> 2] | 0) + 10 >> 1] | 0) | 0;
                            e = xE(n + 4 | 0) | 0;
                            a[r >> 2] = e;
                            r = a[t + 16 >> 2] | 0;
                            a[i >> 2] = r + (xE(n) | 0)
                        } else {
                            Qf(t, i, r);
                            e = a[r >> 2] | 0
                        }
                        p = s;
                        return e >>> 1 & 65535 | 0
                    }

                    function OR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        b = p;
                        p = p + 16 | 0;
                        o = b + 4 | 0;
                        _ = b;
                        if (e) {
                            r = OR(a[e + 32 >> 2] | 0, t, i) | 0;
                            if (!r) {
                                r = Hl(e, t) | 0;
                                e: do {
                                    if ((r | 0) == -1) {
                                        QR(t & 65535, o);
                                        c = e + 101 | 0;
                                        d = e + 88 | 0;
                                        v = e + 92 | 0;
                                        o = a[o >> 2] | 0;
                                        r = 0;
                                        t: while (1) {
                                            if ((r | 0) >= (s[c >> 0] | 0 | 0)) {
                                                r = 0;
                                                break e
                                            }
                                            u = a[(a[d >> 2] | 0) + (r << 2) >> 2] | 0;
                                            l = n[(a[v >> 2] | 0) + (r << 1) >> 1] | 0;
                                            f = CR(u, l) | 0;
                                            t = 0;
                                            while (1) {
                                                if ((t & 65535) >= (f & 65535)) break;
                                                if ((o | 0) == (RR(u, l, t) | 0) ? (m = uR(u, l) | 0, h[_ >> 2] = 0.0, (OR(e, m & 65535, _) | 0) == 1) : 0) break t;
                                                t = t + 1 << 16 >> 16
                                            }
                                            r = r + 1 | 0
                                        }
                                        r = FR(u, l, m, o, +h[_ >> 2], i) | 0;
                                        if (!r) {
                                            sE();
                                            h[i >> 2] = 0.0
                                        }
                                    } else {
                                        a[i >> 2] = a[(a[e + 20 >> 2] | 0) + (r << 2) >> 2];
                                        r = 1
                                    }
                                } while (0)
                            }
                        } else r = 0;
                        p = b;
                        return r | 0
                    }

                    function RR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        r = u + 4 | 0;
                        n = u;
                        s = t & 65535;
                        if (!(s & 49152)) {
                            t = a[e + 1808 >> 2] | 0;
                            s = (a[t + 8 >> 2] | 0) + (G(a[t + 20 >> 2] | 0, s) | 0) | 0;
                            s = s + (o[(a[t + 36 >> 2] | 0) + 10 >> 1] | 0) | 0;
                            a[r >> 2] = xE(s + 4 | 0) | 0;
                            r = a[t + 16 >> 2] | 0;
                            s = r + (xE(s) | 0) | 0;
                            a[n >> 2] = s;
                            s = wE(s + ((i & 65535) << 1) | 0) | 0;
                            e = JR(a[e + 1920 >> 2] | 0, s) | 0
                        } else {
                            Qf(t, n, r);
                            e = ec(wE((a[n >> 2] | 0) + ((i & 65535) << 1) | 0) | 0) | 0
                        }
                        p = u;
                        return e & 65535 | 0
                    }

                    function DR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            switch (e | 0) {
                                case 1:
                                    {
                                        i = 1;e = 0;
                                        break
                                    }
                                case 2:
                                    {
                                        i = 1;e = 3;
                                        break
                                    }
                                case 3:
                                    {
                                        i = 1;e = 80;
                                        break
                                    }
                                case 4:
                                    {
                                        i = 1;e = 79;
                                        break
                                    }
                                case 5:
                                    {
                                        i = 1;e = 82;
                                        break
                                    }
                                case 6:
                                    {
                                        i = 1;e = 83;
                                        break
                                    }
                                case 38:
                                    {
                                        i = 1;e = 84;
                                        break
                                    }
                                case 7:
                                    {
                                        i = 1;e = 104;
                                        break
                                    }
                                case 8:
                                    {
                                        i = 1;e = 105;
                                        break
                                    }
                                case 9:
                                    {
                                        i = 1;e = 106;
                                        break
                                    }
                                case 10:
                                    {
                                        i = 1;e = 107;
                                        break
                                    }
                                case 11:
                                    {
                                        i = 1;e = 108;
                                        break
                                    }
                                case 12:
                                    {
                                        i = 1;e = 109;
                                        break
                                    }
                                case 13:
                                    {
                                        i = 1;e = 110;
                                        break
                                    }
                                case 14:
                                    {
                                        i = 1;e = 111;
                                        break
                                    }
                                case 15:
                                    {
                                        i = 1;e = 5;
                                        break
                                    }
                                case 16:
                                    {
                                        i = 1;e = 7;
                                        break
                                    }
                                case 17:
                                    {
                                        i = 1;e = 6;
                                        break
                                    }
                                case 18:
                                    {
                                        i = 1;e = 9;
                                        break
                                    }
                                case 19:
                                    {
                                        i = 1;e = 10;
                                        break
                                    }
                                case 39:
                                    {
                                        i = 1;e = 11;
                                        break
                                    }
                                case 40:
                                    {
                                        i = 1;e = 12;
                                        break
                                    }
                                case 35:
                                case 34:
                                case 33:
                                case 32:
                                case 31:
                                case 30:
                                case 29:
                                case 28:
                                case 27:
                                case 26:
                                case 25:
                                case 24:
                                case 23:
                                case 22:
                                case 21:
                                case 20:
                                    {
                                        i = 1;e = e + 980 & 65535;
                                        break
                                    }
                                case 36:
                                    {
                                        i = 1;e = 145;
                                        break
                                    }
                                case 37:
                                    {
                                        i = 1;e = 144;
                                        break
                                    }
                                case 41:
                                    {
                                        i = 1;e = 125;
                                        break
                                    }
                                case 42:
                                    {
                                        i = 1;e = 133;
                                        break
                                    }
                                case 43:
                                    {
                                        i = 1;e = 160;
                                        break
                                    }
                                case 44:
                                    {
                                        i = 1;e = 169;
                                        break
                                    }
                                case 45:
                                    {
                                        i = 1;e = 170;
                                        break
                                    }
                                case 46:
                                    {
                                        i = 1;e = 171;
                                        break
                                    }
                                case 47:
                                    {
                                        i = 1;e = 172;
                                        break
                                    }
                                case 48:
                                    {
                                        i = 1;e = 173;
                                        break
                                    }
                                case 49:
                                    {
                                        i = 1;e = 174;
                                        break
                                    }
                                case 50:
                                    {
                                        i = 1;e = 175;
                                        break
                                    }
                                case 51:
                                    {
                                        i = 1;e = 176;
                                        break
                                    }
                                case 52:
                                    {
                                        i = 1;e = 103;
                                        break
                                    }
                                default:
                                    {
                                        i = 0;e = -1
                                    }
                            }
                        } while (0);
                        n[t >> 1] = e;
                        return i | 0
                    }

                    function FR(e, t, i, r, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = +s;
                        o = o | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 32 | 0;
                        l = f;
                        if ((t & 65535) <= 16383)
                            if (!(qf(e + 1808 | 0, t, l) | 0)) {
                                NE();
                                t = 0
                            } else {
                                h = 0;
                                u = 5
                            }
                        else {
                            Jf(t, l) | 0;
                            h = 1;
                            u = 5
                        }
                        e: do {
                            if ((u | 0) == 5)
                                if ((n[l + 4 >> 1] | 0) == i << 16 >> 16) {
                                    u = (a[l + 16 >> 2] | 0) >>> 1;
                                    i = 0;
                                    t = a[l + 8 >> 2] | 0;
                                    while (1) {
                                        if (u >>> 0 <= (i & 65535) >>> 0) {
                                            t = 0;
                                            break e
                                        }
                                        if (HR(e, wE(t) | 0, r, s, o, h) | 0) {
                                            t = 1;
                                            break e
                                        }
                                        i = i + 1 << 16 >> 16;
                                        t = t + 2 | 0
                                    }
                                } else t = 0
                        } while (0);
                        p = f;
                        return t | 0
                    }

                    function BR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!(Fl(t) | 0)) NR(e, t, i);
                        else Bl(e, t, (a[c >> 2] = i, +h[c >> 2]), 1) | 0;
                        return
                    }

                    function NR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 16 | 0;
                        s = f + 12 | 0;
                        l = f + 8 | 0;
                        n = f + 4 | 0;
                        o = f;
                        do {
                            if (Ul(e, t, s, l) | 0) {
                                u = a[s >> 2] | 0;
                                s = a[u >> 2] | 0;
                                if ((s | 0) == 2147483647) {
                                    if (!(LR(t) | 0)) break;
                                    UR(n, t, (a[c >> 2] = i, +h[c >> 2]))
                                } else {
                                    VR(o, t & 65535, s, i);
                                    n = o
                                }
                                a[u >> 2] = a[n >> 2];
                                r[a[l >> 2] >> 0] = 1;
                                r[e + 8 >> 0] = 1
                            }
                        } while (0);
                        p = f;
                        return
                    }

                    function LR(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 111:
                            case 110:
                            case 109:
                            case 108:
                            case 107:
                            case 106:
                            case 105:
                            case 12:
                            case 11:
                            case 10:
                            case 9:
                                {
                                    e = 0;
                                    break
                                }
                            default:
                                e = 1
                        }
                        return e | 0
                    }

                    function UR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        switch (XR(t) | 0) {
                            case 0:
                                {
                                    jR(e, ~~+OS(i));
                                    break
                                }
                            case 1:
                                {
                                    GR(e, ~~+OS(i) >>> 0);
                                    break
                                }
                            default:
                                $R(e, i)
                        }
                        return
                    }

                    function VR(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o + 8 | 0;
                        a[s >> 2] = r;
                        n = o;
                        a[n >> 2] = i;
                        switch (t << 16 >> 16) {
                            case 36:
                            case 35:
                            case 34:
                            case 33:
                            case 32:
                            case 31:
                            case 30:
                            case 29:
                            case 28:
                            case 27:
                            case 26:
                            case 25:
                            case 24:
                            case 23:
                            case 22:
                            case 21:
                            case 20:
                            case 19:
                            case 18:
                            case 17:
                            case 16:
                            case 15:
                            case 168:
                            case 167:
                            case 166:
                            case 165:
                            case 164:
                            case 163:
                            case 162:
                            case 161:
                            case 159:
                            case 158:
                            case 157:
                            case 156:
                            case 155:
                            case 154:
                            case 153:
                            case 111:
                            case 110:
                            case 109:
                            case 108:
                            case 107:
                            case 106:
                            case 105:
                            case 104:
                            case 98:
                            case 92:
                            case 87:
                            case 103:
                            case 12:
                            case 11:
                            case 10:
                            case 9:
                            case 7:
                            case 6:
                            case 84:
                            case 80:
                            case 160:
                            case 178:
                            case 146:
                            case 0:
                            case 37:
                            case 38:
                            case 39:
                            case 40:
                            case 41:
                            case 42:
                            case 43:
                            case 44:
                            case 45:
                            case 46:
                            case 47:
                            case 48:
                            case 49:
                            case 50:
                            case 51:
                            case 52:
                            case 53:
                            case 54:
                            case 55:
                            case 56:
                            case 57:
                            case 58:
                            case 59:
                            case 60:
                            case 61:
                            case 62:
                            case 63:
                            case 64:
                            case 65:
                            case 66:
                            case 67:
                            case 68:
                            case 69:
                            case 70:
                            case 71:
                            case 72:
                            case 73:
                            case 74:
                            case 75:
                            case 76:
                            case 77:
                            case 78:
                                {
                                    r = (h[c >> 2] = (a[c >> 2] = i, +h[c >> 2]) * (a[c >> 2] = r, +h[c >> 2]), a[c >> 2] | 0);
                                    break
                                }
                            case 123:
                            case 122:
                            case 121:
                            case 120:
                                {
                                    r = (i | 0) == 2147483647 ? a[s >> 2] | 0 : a[n >> 2] | 0;
                                    break
                                }
                            case 176:
                            case 175:
                            case 174:
                            case 173:
                            case 172:
                            case 171:
                            case 170:
                            case 169:
                            case 119:
                            case 118:
                            case 117:
                            case 116:
                            case 115:
                            case 114:
                            case 113:
                            case 112:
                            case 86:
                            case 85:
                            case 83:
                            case 82:
                            case 14:
                            case 13:
                            case 5:
                            case 144:
                            case 3:
                                {
                                    r = (h[c >> 2] = (a[c >> 2] = i, +h[c >> 2]) + (a[c >> 2] = r, +h[c >> 2]), a[c >> 2] | 0);
                                    break
                                }
                            case 145:
                                {
                                    r = ~~+OS((a[c >> 2] = r, +h[c >> 2]) + +(i | 0));
                                    break
                                }
                            case 79:
                                {
                                    r = (h[c >> 2] = 1.0 - (1.0 - (a[c >> 2] = i, +h[c >> 2])) * (1.0 - (a[c >> 2] = r, +h[c >> 2])), a[c >> 2] | 0);
                                    break
                                }
                            default:
                                {}
                        }
                        a[e >> 2] = r;
                        p = o;
                        return
                    }

                    function XR(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 182:
                            case 180:
                            case 179:
                            case 145:
                                {
                                    e = 0;
                                    break
                                }
                            case 181:
                            case 151:
                            case 150:
                            case 149:
                            case 152:
                            case 177:
                            case 148:
                            case 147:
                            case 123:
                            case 122:
                            case 121:
                            case 120:
                            case 102:
                            case 101:
                            case 100:
                            case 97:
                            case 96:
                            case 95:
                            case 94:
                            case 93:
                            case 81:
                                {
                                    e = 1;
                                    break
                                }
                            default:
                                e = 2
                        }
                        return e | 0
                    }

                    function jR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e >> 2] = t;
                        return
                    }

                    function GR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e >> 2] = t;
                        return
                    }

                    function $R(e, t) {
                        e = e | 0;
                        t = +t;
                        h[e >> 2] = t;
                        return
                    }

                    function HR(e, t, i, r, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        s = s | 0;
                        o = o | 0;
                        var u = 0.0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = p;
                        p = p + 48 | 0;
                        f = c;
                        l = (o | 0) != 0;
                        if (l) Zf(t, f);
                        else WR(e, t, f);
                        o = n[f >> 1] | 0;
                        do {
                            if ((o & 65535 | 0) == (i | 0)) {
                                switch (o << 16 >> 16) {
                                    case 42:
                                    case 41:
                                    case 37:
                                    case 36:
                                    case 2:
                                        {
                                            u = 1.0;
                                            break
                                        }
                                    case 38:
                                        {
                                            u = 1.0e3;
                                            break
                                        }
                                    case 51:
                                    case 50:
                                    case 49:
                                    case 48:
                                    case 47:
                                    case 46:
                                    case 45:
                                    case 44:
                                    case 43:
                                    case 6:
                                        {
                                            u = 100.0;
                                            break
                                        }
                                    case 15:
                                        {
                                            u = 10.0;
                                            break
                                        }
                                    default:
                                        u = 1.0e4
                                }
                                o = f + 28 | 0;
                                if (!(+h[o >> 2] != r)) {
                                    a[s >> 2] = a[f + 32 >> 2];
                                    o = 1;
                                    break
                                }
                                u = +YR(a[f + 4 >> 2] | 0, a[f + 12 >> 2] | 0, a[f + 24 >> 2] | 0 ? a[f + 20 >> 2] | 0 : 0, (a[f + 8 >> 2] | 0) >>> 2 & 65535, r, u);
                                h[s >> 2] = u;
                                h[o >> 2] = r;
                                h[f + 32 >> 2] = u;
                                if (l) {
                                    tc(t, f);
                                    o = 1;
                                    break
                                } else {
                                    zR(e, t, f);
                                    o = 1;
                                    break
                                }
                            } else o = 0
                        } while (0);
                        p = c;
                        return o | 0
                    }

                    function WR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Kf(e + 1920 | 0, t, i);
                        return
                    }

                    function YR(e, t, i, r, n, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = +n;
                        o = +o;
                        var u = 0.0,
                            l = 0.0,
                            f = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0.0,
                            b = 0.0,
                            g = 0;
                        f = r & 65535;
                        d = f + -1 | 0;
                        p = (i | 0) == 0;
                        m = 0;
                        _ = 0.0;
                        b = 0.0;
                        v = i;
                        r = 0;
                        while (1) {
                            if (r >>> 0 >= f >>> 0) {
                                l = b;
                                break
                            }
                            g = xE(e) | 0;
                            l = (a[c >> 2] = g, +h[c >> 2]);
                            if (l >= n) break;
                            _ = +((wE(t) | 0) << 16 >> 16) / o;
                            e = e + 4 | 0;
                            m = 1;
                            b = l;
                            v = p ? v : v + 2 | 0;
                            t = (d | 0) > (r | 0) ? t + 2 | 0 : t;
                            r = r + 1 | 0
                        }
                        o = +((wE(t) | 0) << 16 >> 16) / o;
                        e = (i | 0) != 0;
                        if (e) {
                            u = +(s[v + 1 >> 0] | 0) / 100.0;
                            r = s[v >> 0] | 0
                        } else {
                            u = 1.0;
                            r = 0
                        }
                        do {
                            if (!((m | 0) == 0 | !(l > n)))
                                if (e) {
                                    o = _ + (n - b) * ((o - _) / (l - b));
                                    break
                                } else {
                                    o = _ + (o - _) * +qR(r, (n - b) / (l - b), u);
                                    break
                                }
                        } while (0);
                        return +o
                    }

                    function zR(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        ic(e + 1920 | 0, t, i);
                        return
                    }

                    function qR(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        return + +DS(Th(e) | 0, t, i)
                    }

                    function JR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = n[a[e + 40 >> 2] >> 1] | 0;
                        if (!(i << 16 >> 16)) {
                            i = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) | 0;
                            e = i + (o[a[e + 36 >> 2] >> 1] | 0) | 0
                        } else e = (a[e + 4 >> 2] | 0) + (i & 65535) | 0;
                        return wE(e) | 0
                    }

                    function QR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        do {
                            switch (e << 16 >> 16) {
                                case 0:
                                    {
                                        e = 1;
                                        break
                                    }
                                case 3:
                                    {
                                        e = 2;
                                        break
                                    }
                                case 80:
                                    {
                                        e = 3;
                                        break
                                    }
                                case 79:
                                    {
                                        e = 4;
                                        break
                                    }
                                case 82:
                                    {
                                        e = 5;
                                        break
                                    }
                                case 83:
                                    {
                                        e = 6;
                                        break
                                    }
                                case 84:
                                    {
                                        e = 38;
                                        break
                                    }
                                case 104:
                                    {
                                        e = 7;
                                        break
                                    }
                                case 105:
                                    {
                                        e = 8;
                                        break
                                    }
                                case 106:
                                    {
                                        e = 9;
                                        break
                                    }
                                case 107:
                                    {
                                        e = 10;
                                        break
                                    }
                                case 108:
                                    {
                                        e = 11;
                                        break
                                    }
                                case 109:
                                    {
                                        e = 12;
                                        break
                                    }
                                case 110:
                                    {
                                        e = 13;
                                        break
                                    }
                                case 111:
                                    {
                                        e = 14;
                                        break
                                    }
                                case 5:
                                    {
                                        e = 15;
                                        break
                                    }
                                case 7:
                                    {
                                        e = 16;
                                        break
                                    }
                                case 6:
                                    {
                                        e = 17;
                                        break
                                    }
                                case 9:
                                    {
                                        e = 18;
                                        break
                                    }
                                case 10:
                                    {
                                        e = 19;
                                        break
                                    }
                                case 11:
                                    {
                                        e = 39;
                                        break
                                    }
                                case 12:
                                    {
                                        e = 40;
                                        break
                                    }
                                case 145:
                                    {
                                        e = 36;
                                        break
                                    }
                                case 144:
                                    {
                                        e = 37;
                                        break
                                    }
                                case 125:
                                    {
                                        e = 41;
                                        break
                                    }
                                case 133:
                                    {
                                        e = 42;
                                        break
                                    }
                                case 160:
                                    {
                                        e = 43;
                                        break
                                    }
                                case 169:
                                    {
                                        e = 44;
                                        break
                                    }
                                case 170:
                                    {
                                        e = 45;
                                        break
                                    }
                                case 171:
                                    {
                                        e = 46;
                                        break
                                    }
                                case 172:
                                    {
                                        e = 47;
                                        break
                                    }
                                case 173:
                                    {
                                        e = 48;
                                        break
                                    }
                                case 174:
                                    {
                                        e = 49;
                                        break
                                    }
                                case 175:
                                    {
                                        e = 50;
                                        break
                                    }
                                case 176:
                                    {
                                        e = 51;
                                        break
                                    }
                                case 103:
                                    {
                                        e = 52;
                                        break
                                    }
                                default:
                                    {
                                        i = ((e & 65535) << 16) + -65536e3 | 0;e = (e & 65535) > 999 & (i | 0) < 1048576 ? (i >> 16) + 20 | 0 : 0
                                    }
                            }
                        } while (0);
                        a[t >> 2] = e;
                        return
                    }

                    function ZR(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0.0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0;
                        k = p;
                        p = p + 96 | 0;
                        w = k;
                        A = t + 105 | 0;
                        x = r[A >> 0] | 0;
                        i = x & 255;
                        do {
                            if (x << 24 >> 24) {
                                x = e + 105 | 0;
                                if (!(r[x >> 0] | 0)) {
                                    nE(e + 108 | 0, 96, t + 108 | 0, i * 12 | 0);
                                    r[x >> 0] = r[A >> 0] | 0;
                                    break
                                }
                                aE(w, 96);
                                g = r[x >> 0] | 0;
                                i = 0;
                                o = 0;
                                y = 0;
                                while (1) {
                                    b = i & 255;
                                    if ((i & 255) >= (g & 255)) {
                                        _ = 27;
                                        break
                                    }
                                    if ((o & 255) >= (s[A >> 0] | 0)) {
                                        _ = 27;
                                        break
                                    }
                                    m = o & 255;
                                    l = e + 108 + (b * 12 | 0) | 0;
                                    c = n[l >> 1] | 0;
                                    d = t + 108 + (m * 12 | 0) | 0;
                                    if (y >>> 0 > 7) {
                                        _ = 26;
                                        break
                                    }
                                    v = n[d >> 1] | 0;
                                    do {
                                        if (c << 16 >> 16 != v << 16 >> 16) {
                                            u = w + (y * 12 | 0) | 0;
                                            if ((c & 65535) < (v & 65535)) {
                                                a[u >> 2] = a[l >> 2];
                                                a[u + 4 >> 2] = a[l + 4 >> 2];
                                                a[u + 8 >> 2] = a[l + 8 >> 2];
                                                i = i + 1 << 24 >> 24;
                                                break
                                            } else {
                                                a[u >> 2] = a[d >> 2];
                                                a[u + 4 >> 2] = a[d + 4 >> 2];
                                                a[u + 8 >> 2] = a[d + 8 >> 2];
                                                o = o + 1 << 24 >> 24;
                                                break
                                            }
                                        } else {
                                            n[w + (y * 12 | 0) >> 1] = c;
                                            r[w + (y * 12 | 0) + 2 >> 0] = r[t + 108 + (m * 12 | 0) + 2 >> 0] | r[e + 108 + (b * 12 | 0) + 2 >> 0];
                                            l = r[e + 108 + (b * 12 | 0) + 3 >> 0] | 0;
                                            c = r[t + 108 + (m * 12 | 0) + 3 >> 0] | 0;
                                            r[w + (y * 12 | 0) + 3 >> 0] = c | l;
                                            v = (KR(l) | 0) == 0;
                                            u = (KR(c) | 0) != 0;
                                            if (v) {
                                                if (u) {
                                                    f = +h[t + 108 + (m * 12 | 0) + 4 >> 2];
                                                    _ = 14
                                                }
                                            } else {
                                                f = +h[e + 108 + (b * 12 | 0) + 4 >> 2];
                                                if (u) {
                                                    f = f * +h[t + 108 + (m * 12 | 0) + 4 >> 2];
                                                    _ = 14
                                                } else _ = 14
                                            }
                                            if ((_ | 0) == 14) {
                                                _ = 0;
                                                h[w + (y * 12 | 0) + 4 >> 2] = f
                                            }
                                            v = (eD(l) | 0) == 0;
                                            u = (eD(c) | 0) != 0;
                                            if (v) {
                                                if (u) {
                                                    f = +h[t + 108 + (m * 12 | 0) + 8 >> 2];
                                                    _ = 20
                                                }
                                            } else {
                                                f = +h[e + 108 + (b * 12 | 0) + 8 >> 2];
                                                if (u) {
                                                    f = f * +h[t + 108 + (m * 12 | 0) + 8 >> 2];
                                                    _ = 20
                                                } else _ = 20
                                            }
                                            if ((_ | 0) == 20) {
                                                _ = 0;
                                                h[w + (y * 12 | 0) + 8 >> 2] = f
                                            }
                                            i = i + 1 << 24 >> 24;
                                            o = o + 1 << 24 >> 24
                                        }
                                    } while (0);
                                    y = y + 1 | 0
                                }
                                do {
                                    if ((_ | 0) == 26) sE();
                                    else if ((_ | 0) == 27) {
                                        c = y & 255;
                                        if (g << 24 >> 24 == i << 24 >> 24) {
                                            l = o & 255;
                                            u = y & 255;
                                            i = (s[A >> 0] | 0) - l & 255;
                                            o = i + u | 0;
                                            if (o >>> 0 > 8) {
                                                sE();
                                                break
                                            } else {
                                                A = u * 12 | 0;
                                                nE(e + 108 | 0, 96, w, A);
                                                nE(e + 108 + (u * 12 | 0) | 0, 96 - A | 0, t + 108 + (l * 12 | 0) | 0, i * 12 | 0);
                                                r[x >> 0] = o;
                                                break
                                            }
                                        }
                                        l = y & 255;
                                        o = (g & 255) - b & 255;
                                        u = o + l | 0;
                                        if (u >>> 0 > 8) {
                                            sE();
                                            break
                                        }
                                        e: do {
                                            if ((i & 255) < (c & 255) & (o | 0) != 0)
                                                while (1) {
                                                    i = o + -1 | 0;
                                                    if ((o | 0) <= 0) break e;
                                                    o = e + 108 + ((i + l | 0) * 12 | 0) | 0;
                                                    t = e + 108 + ((i + b | 0) * 12 | 0) | 0;
                                                    a[o >> 2] = a[t >> 2];
                                                    a[o + 4 >> 2] = a[t + 4 >> 2];
                                                    a[o + 8 >> 2] = a[t + 8 >> 2];
                                                    o = i
                                                }
                                        } while (0);
                                        nE(e + 108 | 0, 96, w, l * 12 | 0);
                                        r[x >> 0] = u
                                    }
                                } while (0)
                            }
                        } while (0);
                        p = k;
                        return
                    }

                    function KR(e) {
                        e = e | 0;
                        return e & 1 | 0
                    }

                    function eD(e) {
                        e = e | 0;
                        return (e & 255) >>> 1 & 1 | 0
                    }

                    function tD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        pl(+h[e >> 2], +h[e + 4 >> 2], +h[e + 8 >> 2], +h[t >> 2], +h[t + 4 >> 2], +h[t + 8 >> 2], r);
                        p = n;
                        return +(+h[r >> 2] * i)
                    }

                    function iD(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        Kr();
                        e = a[e >> 2] | 0;
                        f$[a[(a[e >> 2] | 0) + 92 >> 2] & 7](a[e + 4 >> 2] | 0, t, i, r);
                        en();
                        return
                    }

                    function rD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0.0,
                            u = 0,
                            l = 0,
                            f = 0;
                        f = t + 308 | 0;
                        n = a[f >> 2] | 0;
                        do {
                            if (n) {
                                l = e + 308 | 0;
                                s = a[l >> 2] | 0;
                                if (!s) {
                                    i = Dl() | 0;
                                    a[l >> 2] = i;
                                    if (!i) break;
                                    s = i;
                                    i = a[f >> 2] | 0;
                                    n = s + 52 | 0;
                                    do {
                                        a[s >> 2] = a[i >> 2];
                                        s = s + 4 | 0;
                                        i = i + 4 | 0
                                    } while ((s | 0) < (n | 0));
                                    u = 40;
                                    break
                                }
                                u = a[n + 4 >> 2] | 0;
                                o = (a[c >> 2] = u, +h[c >> 2]);
                                if ((u | 0) != 2147483647) {
                                    i = s + 4 | 0;
                                    n = a[i >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[i >> 2] = u;
                                    else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 41 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 41 >> 0]
                                }
                                u = a[n + 8 >> 2] | 0;
                                o = (a[c >> 2] = u, +h[c >> 2]);
                                if ((u | 0) != 2147483647) {
                                    i = s + 8 | 0;
                                    n = a[i >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[i >> 2] = u;
                                    else h[i >> 2] = o + (a[c >> 2] = n, +h[c >> 2]);
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 42 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 42 >> 0]
                                }
                                u = a[n + 12 >> 2] | 0;
                                o = (a[c >> 2] = u, +h[c >> 2]);
                                if ((u | 0) != 2147483647) {
                                    i = s + 12 | 0;
                                    n = a[i >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[i >> 2] = u;
                                    else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 43 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 43 >> 0]
                                }
                                i = a[n + 16 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[s + 16 >> 2] = i;
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 44 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 44 >> 0]
                                }
                                i = a[n + 20 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[s + 20 >> 2] = i;
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 45 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 45 >> 0]
                                }
                                i = a[n + 24 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[s + 24 >> 2] = i;
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 46 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 46 >> 0]
                                }
                                i = a[n + 28 >> 2] | 0;
                                if ((i | 0) != 2147483647) {
                                    a[s + 28 >> 2] = i;
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 47 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 47 >> 0]
                                }
                                u = a[n + 32 >> 2] | 0;
                                o = (a[c >> 2] = u, +h[c >> 2]);
                                if ((u | 0) != 2147483647) {
                                    i = s + 32 | 0;
                                    n = a[i >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[i >> 2] = u;
                                    else h[i >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                    n = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 48 | 0;
                                    r[u >> 0] = r[u >> 0] | r[n + 48 >> 0]
                                }
                                i = a[n + 36 >> 2] | 0;
                                if ((i | 0) == 2147483647) i = n;
                                else {
                                    a[s + 36 >> 2] = i;
                                    i = a[f >> 2] | 0;
                                    s = a[l >> 2] | 0;
                                    u = s + 49 | 0;
                                    r[u >> 0] = r[u >> 0] | r[i + 49 >> 0]
                                }
                                i = a[i >> 2] | 0;
                                o = (a[c >> 2] = i, +h[c >> 2]);
                                if ((i | 0) != 2147483647) {
                                    n = a[s >> 2] | 0;
                                    if ((n | 0) == 2147483647) a[s >> 2] = i;
                                    else h[s >> 2] = o * (a[c >> 2] = n, +h[c >> 2]);
                                    u = (a[l >> 2] | 0) + 40 | 0;
                                    r[u >> 0] = r[u >> 0] | r[(a[f >> 2] | 0) + 40 >> 0];
                                    u = 40
                                } else u = 40
                            } else u = 40
                        } while (0);
                        if ((u | 0) == 40) {
                            i = a[t + 256 >> 2] | 0;
                            if ((i | 0) != 2147483647) {
                                a[e + 256 >> 2] = i;
                                f = e + 277 | 0;
                                r[f >> 0] = r[f >> 0] | r[t + 277 >> 0]
                            }
                            i = a[t + 260 >> 2] | 0;
                            if ((i | 0) != 2147483647) {
                                a[e + 260 >> 2] = i;
                                f = e + 278 | 0;
                                r[f >> 0] = r[f >> 0] | r[t + 278 >> 0]
                            }
                            i = a[t + 264 >> 2] | 0;
                            if ((i | 0) != 2147483647) {
                                a[e + 264 >> 2] = i;
                                f = e + 279 | 0;
                                r[f >> 0] = r[f >> 0] | r[t + 279 >> 0]
                            }
                            i = a[t + 268 >> 2] | 0;
                            if ((i | 0) != 2147483647) {
                                a[e + 268 >> 2] = i;
                                f = e + 280 | 0;
                                r[f >> 0] = r[f >> 0] | r[t + 280 >> 0]
                            }
                            i = a[t + 272 >> 2] | 0;
                            if ((i | 0) != 2147483647) {
                                a[e + 272 >> 2] = i;
                                e = e + 281 | 0;
                                r[e >> 0] = r[e >> 0] | r[t + 281 >> 0]
                            }
                        }
                        return
                    }

                    function nD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 32 | 0;
                        i = r;
                        if ((t & 65535) <= 16383) {
                            if (!(qf(e + 1808 | 0, t, i) | 0)) {
                                NE();
                                h[i + 20 >> 2] = 0.0
                            }
                        } else Jf(t, i) | 0;
                        p = r;
                        return + +h[i + 20 >> 2]
                    }

                    function aD(e) {
                        e = e | 0;
                        return e & 255 | 0
                    }

                    function sD(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function oD(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (rf(0) | 0) {
                            t = e << 16 >> 16;
                            if (e << 16 >> 16 >= 0 ? (i = a[1687] | 0, (a[i + 52 >> 2] | 0) > (t | 0)) : 0) e = a[(a[i + 12 >> 2] | 0) + (t * 84 | 0) + 12 >> 2] | 0;
                            else e = 0
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function uD() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        i = a[1697] | 0;
                        s = a[1674] | 0;
                        o = a[1673] | 0;
                        e = i;
                        while (1) {
                            if ((e | 0) >= (s | 0)) {
                                e = 0;
                                n = 4;
                                break
                            }
                            t = e + 1 | 0;
                            if (!(r[o + (e * 588 | 0) + 507 >> 0] | 0)) {
                                n = 6;
                                break
                            } else e = t
                        }
                        e: do {
                            if ((n | 0) == 4)
                                while (1) {
                                    n = 0;
                                    if ((e | 0) >= (i | 0)) {
                                        e = 0;
                                        break e
                                    }
                                    t = e + 1 | 0;
                                    if (!(r[o + (e * 588 | 0) + 507 >> 0] | 0)) {
                                        n = 6;
                                        break
                                    } else {
                                        e = t;
                                        n = 4
                                    }
                                }
                        } while (0);
                        if ((n | 0) == 6) {
                            a[1697] = (t | 0) % (s | 0) | 0;
                            e = o + (e * 588 | 0) | 0
                        }
                        return e | 0
                    }

                    function hD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        if ((e | 0) != 0 ? (r = a[e + 20 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 41 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function lD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = PD(e) | 0;
                        if (!r) e = -1;
                        else {
                            a[r + 8 >> 2] = 1;
                            a[r + 12 >> 2] = t;
                            a[r + 16 >> 2] = i;
                            a[r + 48 >> 2] = 0;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function fD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = PD(e) | 0;
                        if (!r) e = -1;
                        else {
                            a[r + 8 >> 2] = 2;
                            a[r + 12 >> 2] = t;
                            a[r + 16 >> 2] = i;
                            a[r + 48 >> 2] = 1;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function cD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = PD(e) | 0;
                        if (!r) e = -1;
                        else {
                            a[r + 8 >> 2] = 3;
                            a[r + 12 >> 2] = t;
                            a[r + 16 >> 2] = i;
                            a[r + 48 >> 2] = 1;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function dD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = PD(e) | 0;
                        if (!r) e = -1;
                        else {
                            a[r + 8 >> 2] = 4;
                            a[r + 12 >> 2] = t;
                            a[r + 16 >> 2] = i;
                            a[r + 48 >> 2] = (gn(t) | 0) != 1 & 1;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function pD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = PD(e) | 0;
                        if (!i) e = -1;
                        else {
                            a[i + 8 >> 2] = 6;
                            a[i + 12 >> 2] = t;
                            a[i + 48 >> 2] = 0;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function vD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = PD(e) | 0;
                        if (!i) e = -1;
                        else {
                            a[i + 8 >> 2] = 7;
                            n = t;
                            r = a[n + 4 >> 2] | 0;
                            t = i + 12 | 0;
                            a[t >> 2] = a[n >> 2];
                            a[t + 4 >> 2] = r;
                            a[i + 48 >> 2] = 0;
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function mD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0;
                        n = a[e + 104 >> 2] | 0;
                        s = a[e + 120 >> 2] | 0;
                        i = a[e + 128 >> 2] | 0;
                        _D(n, t, a[e + 108 >> 2] | 0);
                        bD(n, t, s);
                        gD(n, t, i);
                        yD(n, t, a[e + 112 >> 2] | 0);
                        AD(n, t, r[e + 136 >> 0] & 1);
                        i = e + 137 | 0;
                        wD(n, t, r[i >> 0] | 0);
                        xD(a[e + 192 >> 2] | 0, 182, r[i >> 0] | 0);
                        return
                    }

                    function _D(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 44 >> 2] = i;
                        return
                    }

                    function bD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 52 >> 2] = i;
                        return
                    }

                    function gD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 60 >> 2] = i;
                        return
                    }

                    function yD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 36 >> 2] = i;
                        return
                    }

                    function AD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) r[e + 79 >> 0] = i;
                        return
                    }

                    function wD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 56 >> 2] = i;
                        return
                    }

                    function xD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        kD(e, t, i);
                        return
                    }

                    function kD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = TD(e, t) | 0;
                        if (e | 0) a[e + 4 >> 2] = i;
                        return
                    }

                    function TD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        i = ED(e, t) | 0;
                        do {
                            if (!i) {
                                i = e + 676 | 0;
                                r = a[i >> 2] | 0;
                                if ((r | 0) < 64) {
                                    s = e + (r << 3) | 0;
                                    n[s >> 1] = t;
                                    a[e + (r << 3) + 4 >> 2] = 2147483647;
                                    a[i >> 2] = (a[i >> 2] | 0) + 1;
                                    i = s;
                                    break
                                } else {
                                    sE();
                                    i = 0;
                                    break
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function ED(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        s = a[e + 676 >> 2] | 0;
                        r = 0;
                        while (1) {
                            if ((r | 0) >= (s | 0)) {
                                i = 0;
                                break
                            }
                            i = e + (r << 3) | 0;
                            if ((n[i >> 1] | 0) == t << 16 >> 16) break;
                            else r = r + 1 | 0
                        }
                        return i | 0
                    }

                    function SD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((t | 0) > -1 & (KE(a[e + 20 >> 2] | 0) | 0) > (t | 0)) {
                            e = a[e + 12 >> 2] | 0;
                            ZE(e) | 0;
                            i = 0;
                            while (1) {
                                if ((i | 0) == (t | 0)) break;
                                e = a[e + 4 >> 2] | 0;
                                i = i + 1 | 0
                            }
                            e = a[e >> 2] | 0
                        } else e = 0;
                        return e | 0
                    }

                    function PD(e) {
                        e = e | 0;
                        var t = 0;
                        t = ID() | 0;
                        if (t | 0) tS(e + 12 | 0, t);
                        return t | 0
                    }

                    function ID() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS(7444, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else {
                            e = a[e >> 2] | 0;
                            gS(e + 8 | 0, 0, 28) | 0;
                            a[e + 36 >> 2] = -1;
                            r[e + 79 >> 0] = 0;
                            h[e + 40 >> 2] = 0.0;
                            a[e + 44 >> 2] = 1;
                            a[e + 52 >> 2] = 1;
                            a[e + 60 >> 2] = 24e3;
                            a[e + 48 >> 2] = 0;
                            a[e + 56 >> 2] = 0;
                            a[e + 64 >> 2] = 0;
                            a[e + 68 >> 2] = 0
                        }
                        p = t;
                        return e | 0
                    }

                    function MD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return jD(e, t) | 0
                    }

                    function CD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return XD(e, t) | 0
                    }

                    function OD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return VD(e, t) | 0
                    }

                    function RD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return BD(e, t) | 0
                    }

                    function DD(e) {
                        e = e | 0;
                        return FD(e) | 0
                    }

                    function FD(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        i = a[(a[e + 60 >> 2] | 0) + 104 >> 2] | 0;
                        r = Au(i) | 0;
                        n = (a[e + 76 >> 2] | 0) == 0;
                        i = i + 36 | 0;
                        a[i >> 2] = e;
                        t = a[e + 68 >> 2] | 0;
                        if (n) t = mC(r, t) | 0;
                        else t = vC(r, t) | 0;
                        a[i >> 2] = 0;
                        Hm(r);
                        do {
                            if ((t | 0) != -1) {
                                i = dC() | 0;
                                if (!i) {
                                    ah(r, t);
                                    t = -1;
                                    break
                                } else {
                                    a[i >> 2] = t;
                                    tS(e + 36 | 0, i);
                                    break
                                }
                            } else t = -1
                        } while (0);
                        return t | 0
                    }

                    function BD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0;
                        s = (a[e + 32 >> 2] & 1 | 0) == 0;
                        i = a[e + 60 >> 2] | 0;
                        o = Au(a[i + 104 >> 2] | 0) | 0;
                        if (s | (i | 0) == 0) i = -1;
                        else i = a[i + 112 >> 2] | 0;
                        s = ND(o, a[t + 48 >> 2] | 0) | 0;
                        if ((s | 0) > -1) LD(o, s, r[t + 2 >> 0] | 0);
                        if ((i | 0) == -1) {
                            i = n[t + 6 >> 1] | 0;
                            if (i << 16 >> 16 != -1) yD(o, s, i & 65535)
                        } else yD(o, s, i);
                        i = r[e + 128 >> 0] | 0;
                        if ((i & 255) > 1) AD(o, s, r[t >> 0] | 0);
                        else AD(o, s, i);
                        i = a[t + 24 >> 2] | 0;
                        if (i | 0) UD(o, s, i);
                        _D(o, s, 4096);
                        a[t + 20 >> 2] = o;
                        return s | 0
                    }

                    function ND(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = PD(e) | 0;
                        if (!i) e = -1;
                        else {
                            a[i + 8 >> 2] = 8;
                            r = i + 12 | 0;
                            a[r >> 2] = a[t >> 2];
                            a[r + 4 >> 2] = a[t + 4 >> 2];
                            a[r + 8 >> 2] = a[t + 8 >> 2];
                            a[r + 12 >> 2] = a[t + 12 >> 2];
                            a[r + 16 >> 2] = a[t + 16 >> 2];
                            a[i + 32 >> 2] = a[t + 20 >> 2];
                            e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                        }
                        return e | 0
                    }

                    function LD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) r[e + 78 >> 0] = i;
                        return
                    }

                    function UD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) a[e + 68 >> 2] = i;
                        return
                    }

                    function VD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0;
                        s = (a[e + 32 >> 2] & 1 | 0) == 0;
                        i = a[e + 60 >> 2] | 0;
                        o = Au(a[i + 104 >> 2] | 0) | 0;
                        if (s | (i | 0) == 0) i = -1;
                        else i = a[i + 112 >> 2] | 0;
                        s = vD(o, t + 40 | 0) | 0;
                        if ((s | 0) > -1) LD(o, s, r[t + 2 >> 0] | 0);
                        if ((i | 0) == -1) {
                            i = n[t + 6 >> 1] | 0;
                            if (i << 16 >> 16 != -1) yD(o, s, i & 65535)
                        } else yD(o, s, i);
                        i = r[e + 128 >> 0] | 0;
                        if ((i & 255) > 1) AD(o, s, r[t >> 0] | 0);
                        else AD(o, s, i);
                        i = a[t + 24 >> 2] | 0;
                        if (i | 0) UD(o, s, i);
                        _D(o, s, 1024);
                        a[t + 20 >> 2] = o;
                        return s | 0
                    }

                    function XD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0;
                        s = (a[e + 32 >> 2] & 1 | 0) == 0;
                        i = a[e + 60 >> 2] | 0;
                        o = Au(a[i + 104 >> 2] | 0) | 0;
                        if (s | (i | 0) == 0) i = -1;
                        else i = a[i + 112 >> 2] | 0;
                        s = pD(o, a[t + 36 >> 2] | 0) | 0;
                        if ((s | 0) > -1) LD(o, s, r[t + 2 >> 0] | 0);
                        if ((i | 0) == -1) {
                            i = n[t + 6 >> 1] | 0;
                            if (i << 16 >> 16 != -1) yD(o, s, i & 65535)
                        } else yD(o, s, i);
                        i = r[e + 128 >> 0] | 0;
                        if ((i & 255) > 1) AD(o, s, r[t >> 0] | 0);
                        else AD(o, s, i);
                        i = a[t + 24 >> 2] | 0;
                        if (i | 0) UD(o, s, i);
                        _D(o, s, 256);
                        a[t + 20 >> 2] = o;
                        return s | 0
                    }

                    function jD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0.0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0;
                        g = p;
                        p = p + 16 | 0;
                        c = g + 4 | 0;
                        d = g;
                        m = (a[e + 32 >> 2] & 1 | 0) == 0;
                        u = a[e + 60 >> 2] | 0;
                        b = Au(a[u + 104 >> 2] | 0) | 0;
                        _ = a[t + 16 >> 2] | 0;
                        if (m | (u | 0) == 0) {
                            l = -1;
                            m = 0
                        } else {
                            l = a[u + 112 >> 2] | 0;
                            m = r[u + 137 >> 0] | 0
                        }
                        switch (r[_ + 8 >> 0] | 0) {
                            case 0:
                                {
                                    u = dD(b, a[t + 28 >> 2] | 0, o[_ >> 1] | 0) | 0;f = 7;
                                    break
                                }
                            case 1:
                                {
                                    u = dD(b, a[t + 32 >> 2] | 0, o[_ + 38 >> 1] | 0) | 0;f = 7;
                                    break
                                }
                            case 2:
                                {
                                    u = GD(b, a[t + 28 >> 2] | 0, o[_ >> 1] | 0, a[t + 32 >> 2] | 0, o[_ + 38 >> 1] | 0) | 0;f = 7;
                                    break
                                }
                            default:
                                v = -1
                        }
                        if ((f | 0) == 7)
                            if ((u | 0) > -1) {
                                LD(b, u, r[t + 2 >> 0] | 0);
                                $D(b, u, a[t + 52 >> 2] | 0, n[t + 56 >> 1] | 0);
                                HD(b, u, a[t + 60 >> 2] | 0, a[t + 64 >> 2] | 0);
                                v = u
                            } else v = u;
                        if ((l | 0) == -1) {
                            u = n[t + 6 >> 1] | 0;
                            if (u << 16 >> 16 != -1) yD(b, v, u & 65535)
                        } else yD(b, v, l);
                        u = r[e + 128 >> 0] | 0;
                        if ((u & 255) > 1) AD(b, v, r[t >> 0] | 0);
                        else AD(b, v, u);
                        f = t + 24 | 0;
                        u = a[f >> 2] | 0;
                        if (u | 0) {
                            Mo(u, 179, a[t + 12 >> 2] | 0);
                            l = e + 68 | 0;
                            Hc(c, a[l >> 2] | 0, 181);
                            u = a[c >> 2] | 0;
                            if ((u | 0) != 2147483647) Mo(a[f >> 2] | 0, 181, u);
                            Hc(d, a[l >> 2] | 0, 180);
                            u = a[d >> 2] | 0;
                            if ((u | 0) != 2147483647) Mo(a[f >> 2] | 0, 180, u);
                            u = a[f >> 2] | 0;
                            if (!m) Mo(u, 182, a[_ + 16 >> 2] | 0);
                            else Mo(u, 182, m);
                            UD(b, v, a[f >> 2] | 0)
                        }
                        _D(b, v, a[2064 + (a[_ + 4 >> 2] << 2) >> 2] | 0);
                        bD(b, v, s[_ + 9 >> 0] | 0);
                        gD(b, v, o[_ + 2 >> 1] | 0);
                        i = +h[_ + 32 >> 2];
                        if (i != 0.0) WD(b, v, i);
                        if (!m) wD(b, v, a[_ + 16 >> 2] | 0);
                        else wD(b, v, m);
                        a[t + 20 >> 2] = b;
                        p = g;
                        return v | 0
                    }

                    function GD(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0;
                        if (!((e | 0) == 0 | (t | 0) == 0 | (i | 0) < 0 | (r | 0) == 0 | (n | 0) < 0)) {
                            s = PD(e) | 0;
                            if (!s) e = -1;
                            else {
                                a[s + 8 >> 2] = 5;
                                a[s + 12 >> 2] = t;
                                a[s + 20 >> 2] = i;
                                a[s + 16 >> 2] = r;
                                a[s + 24 >> 2] = n;
                                a[s + 48 >> 2] = 1;
                                e = (KE(a[e + 20 >> 2] | 0) | 0) + -1 | 0
                            }
                        } else {
                            sE();
                            e = -1
                        }
                        return e | 0
                    }

                    function $D(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) {
                            a[e + 72 >> 2] = i;
                            n[e + 76 >> 1] = r
                        }
                        return
                    }

                    function HD(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = SD(e, t) | 0;
                        if (e | 0) {
                            a[e + 80 >> 2] = i;
                            a[e + 84 >> 2] = r
                        }
                        return
                    }

                    function WD(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        e = SD(e, t) | 0;
                        if (e | 0) h[e + 40 >> 2] = i;
                        return
                    }

                    function YD(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = ED(e, t) | 0;
                        if (i | 0) {
                            r = e + 676 | 0;
                            n = (a[r >> 2] | 0) + -1 | 0;
                            t = e + (n << 3) | 0;
                            a[r >> 2] = n;
                            if ((i | 0) != (t | 0)) {
                                e = t;
                                r = a[e + 4 >> 2] | 0;
                                n = i;
                                a[n >> 2] = a[e >> 2];
                                a[n + 4 >> 2] = r
                            }
                            zD(t)
                        }
                        return
                    }

                    function zD(e) {
                        e = e | 0;
                        n[e >> 1] = -1;
                        a[e + 4 >> 2] = 2147483647;
                        return
                    }

                    function qD() {
                        var e = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            JD(e);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function JD(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        e = a[6672 + (e * 12 | 0) >> 2] | 0;
                        e: do {
                            if (oS(e) | 0) {
                                t = Wo() | 0;
                                i = P;
                                r = QD() | 0;
                                n = P;
                                while (1) {
                                    if (!e) break e;
                                    ZD(a[e >> 2] | 0, t, i, r, n);
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function QD() {
                        var e = 0;
                        e = 6376;
                        P = a[e + 4 >> 2] | 0;
                        return a[e >> 2] | 0
                    }

                    function ZD(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0;
                        m = p;
                        p = p + 16 | 0;
                        f = m + 4 | 0;
                        c = m;
                        d = e + 24 | 0;
                        v = KE(a[e + 32 >> 2] | 0) | 0;
                        l = e + 58 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (v | 0)) break;
                            rS(d, f);
                            o = a[f >> 2] | 0;
                            u = a[o >> 2] | 0;
                            h = KD(u, t, i, n, s, c) | 0;
                            if (a[c >> 2] | 0) r[l >> 0] = 1;
                            if (h >>> 0 > 1) oh(u);
                            else tS(d, o);
                            e = e + 1 | 0
                        }
                        p = m;
                        return
                    }

                    function KD(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        return eF(e, t, i, r, n, a) | 0
                    }

                    function eF(e, t, i, n, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            I = 0,
                            M = 0;
                        M = p;
                        p = p + 16 | 0;
                        E = M + 4 | 0;
                        S = M;
                        a[o >> 2] = 0;
                        I = e + 24 | 0;
                        u = r[I >> 0] | 0;
                        x = r[e + 26 >> 0] | 0;
                        k = dM(t | 0, i | 0, 1e3, 0) | 0;
                        T = P;
                        if (s >>> 0 > 0 | (s | 0) == 0 & n >>> 0 > 999)
                            if (u << 24 >> 24 == 4) {
                                if (x << 24 >> 24) {
                                    if (!(r[e + 25 >> 0] | 0)) {
                                        w = e + 40 | 0;
                                        n = e + 32 | 0;
                                        A = n;
                                        A = sM(a[w >> 2] | 0, a[w + 4 >> 2] | 0, a[A >> 2] | 0, a[A + 4 >> 2] | 0) | 0;
                                        w = e + 48 | 0;
                                        a[w >> 2] = (a[w >> 2] | 0) + A
                                    } else n = e + 32 | 0;
                                    w = n;
                                    a[w >> 2] = k;
                                    a[w + 4 >> 2] = T
                                }
                                if (r[e + 28 >> 0] | 0) tF(e, t, i);
                                n = e + 40 | 0;
                                a[n >> 2] = k;
                                a[n + 4 >> 2] = T;
                                n = a[e + 56 >> 2] | 0;
                                if ((n | 0) > -1 ? (w = F_(e) | 0, y = P, A = ((n | 0) < 0) << 31 >> 31, !((y | 0) < (A | 0) | (y | 0) == (A | 0) & w >>> 0 < n >>> 0)) : 0) {
                                    r[e + 27 >> 0] = 1;
                                    w = 14
                                } else w = 14
                            } else w = 14;
                        else if (u << 24 >> 24 > 2) n = 1;
                        else w = 14;
                        e: do {
                            if ((w | 0) == 14) {
                                b = e + 12 | 0;
                                v = e + 20 | 0;
                                s = KE(a[v >> 2] | 0) | 0;
                                if ((s | 0) < 1) n = 14;
                                else {
                                    m = e + 32 | 0;
                                    y = m;
                                    _ = e + 40 | 0;
                                    g = _;
                                    g = B_(a[y >> 2] | 0, a[y + 4 >> 2] | 0, a[g >> 2] | 0, a[g + 4 >> 2] | 0, a[e + 48 >> 2] | 0) | 0;
                                    y = r[e + 27 >> 0] | 0;
                                    A = x << 24 >> 24;
                                    n = u;
                                    while (1) {
                                        d = 2164 + (n << 24 >> 24 << 2) | 0;
                                        c = 0;
                                        u = 0;
                                        while (1) {
                                            if ((c | 0) >= (s | 0)) break;
                                            rS(b, E);
                                            h = a[E >> 2] | 0;
                                            l = a[h >> 2] | 0;
                                            f = iF(l, a[d >> 2] | 0, y, A, g, S) | 0;
                                            if (a[S >> 2] | 0) a[o >> 2] = 1;
                                            if (f >>> 0 > 1) uh(l);
                                            else {
                                                tS(b, h);
                                                u = f + u | 0
                                            }
                                            c = c + 1 | 0
                                        }
                                        s = KE(a[v >> 2] | 0) | 0;
                                        if ((s | 0) < 1) {
                                            n = 15;
                                            break e
                                        }
                                        if (!(n << 24 >> 24 < 4 & (u | 0) == 0)) break;
                                        n = n + 1 << 24 >> 24;
                                        if (n << 24 >> 24 == 4) {
                                            w = 27;
                                            break
                                        }
                                        r[I >> 0] = n
                                    }
                                    if ((w | 0) == 27) {
                                        S = m;
                                        a[S >> 2] = k;
                                        a[S + 4 >> 2] = T;
                                        S = _;
                                        a[S >> 2] = k;
                                        a[S + 4 >> 2] = T;
                                        S = e + 64 | 0;
                                        a[S >> 2] = t;
                                        a[S + 4 >> 2] = i;
                                        r[I >> 0] = 4
                                    }
                                    r[e + 25 >> 0] = x;
                                    n = 1
                                }
                            }
                        } while (0);
                        p = M;
                        return n | 0
                    }

                    function tF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        A = p;
                        p = p + 16 | 0;
                        h = A + 8 | 0;
                        n = A;
                        s = M_(e) | 0;
                        do {
                            if (!s) yB(e);
                            else {
                                if (AB(s, n, h) | 0 ? (u = n, o = a[u >> 2] | 0, u = a[u + 4 >> 2] | 0, g = s + 448 | 0, b = a[g + 4 >> 2] | 0, (u | 0) > (b | 0) | ((u | 0) == (b | 0) ? o >>> 0 > (a[g >> 2] | 0) >>> 0 : 0)) : 0) {
                                    g = e + 64 | 0;
                                    n = g;
                                    n = sM(t | 0, i | 0, a[n >> 2] | 0, a[n + 4 >> 2] | 0) | 0;
                                    s = P;
                                    a[g >> 2] = t;
                                    a[g + 4 >> 2] = i;
                                    g = fM(o | 0, u | 0, 1e6, 0) | 0;
                                    b = a[h >> 2] | 0;
                                    b = hM(g | 0, P | 0, b | 0, ((b | 0) < 0) << 31 >> 31 | 0) | 0;
                                    g = P;
                                    l = e + 96 | 0;
                                    h = l;
                                    o = a[h >> 2] | 0;
                                    h = a[h + 4 >> 2] | 0;
                                    d = sM(b | 0, g | 0, o | 0, h | 0) | 0;
                                    v = P;
                                    if ((r[e + 26 >> 0] | 0) == 0 ? (r[e + 25 >> 0] | 0) == 0 : 0) {
                                        m = e + 104 | 0;
                                        s = m;
                                        u = a[s >> 2] | 0;
                                        s = a[s + 4 >> 2] | 0;
                                        if ((s | 0) > 0 | (s | 0) == 0 & u >>> 0 > 0 ? (_ = e + 88 | 0, f = a[_ >> 2] | 0, _ = a[_ + 4 >> 2] | 0, c = aM(u | 0, s | 0, o | 0, h | 0) | 0, (f | 0) == (c | 0) & (_ | 0) == (P | 0)) : 0) {
                                            n = sM(u | 0, s | 0, d | 0, v | 0) | 0;
                                            o = P;
                                            if ((v | 0) > 0 | (v | 0) == 0 & d >>> 0 > 0) {
                                                u = m;
                                                a[u >> 2] = n;
                                                a[u + 4 >> 2] = o;
                                                u = l;
                                                a[u >> 2] = b;
                                                a[u + 4 >> 2] = g;
                                                u = e + 72 | 0;
                                                a[u >> 2] = t;
                                                a[u + 4 >> 2] = i;
                                                u = n;
                                                s = o
                                            }
                                            n = e + 80 | 0;
                                            _ = n;
                                            c = a[_ + 4 >> 2] | 0;
                                            if ((g | 0) < (c | 0) | ((g | 0) == (c | 0) ? b >>> 0 < (a[_ >> 2] | 0) >>> 0 : 0)) break;
                                            f = n;
                                            a[f >> 2] = b;
                                            a[f + 4 >> 2] = g;
                                            f = u
                                        } else f = u;
                                        _ = l;
                                        a[_ >> 2] = b;
                                        a[_ + 4 >> 2] = g;
                                        _ = e + 72 | 0;
                                        c = _;
                                        n = a[c >> 2] | 0;
                                        c = a[c + 4 >> 2] | 0;
                                        if (!((n | 0) == 0 & (c | 0) == 0)) {
                                            o = mM(d | 0, v | 0, 1) | 0;
                                            u = P;
                                            if ((u | 0) > (s | 0) | (u | 0) == (s | 0) & o >>> 0 > f >>> 0) {
                                                l = (u | 0) < 0 | (u | 0) == 0 & o >>> 0 < 71428;
                                                h = l ? o : 71428;
                                                l = l ? u : 0;
                                                s = c;
                                                y = 19
                                            } else {
                                                o = c;
                                                l = s
                                            }
                                        } else {
                                            h = _;
                                            a[h >> 2] = t;
                                            a[h + 4 >> 2] = i;
                                            h = e + 80 | 0;
                                            a[h >> 2] = b;
                                            a[h + 4 >> 2] = g;
                                            h = a[e + 52 >> 2] | 0;
                                            h = fM(h | 0, ((h | 0) < 0) << 31 >> 31 | 0, -1e3, -1) | 0;
                                            h = aM(h | 0, P | 0, b | 0, g | 0) | 0;
                                            h = mM(h | 0, P | 0, 1) | 0;
                                            l = P;
                                            n = t;
                                            s = i;
                                            y = 19
                                        }
                                        if ((y | 0) == 19) {
                                            o = m;
                                            a[o >> 2] = h;
                                            a[o + 4 >> 2] = l;
                                            o = s;
                                            f = h
                                        }
                                        n = sM(t | 0, i | 0, n | 0, o | 0) | 0;
                                        h = e + 80 | 0;
                                        s = h;
                                        s = aM(n | 0, P | 0, a[s >> 2] | 0, a[s + 4 >> 2] | 0) | 0;
                                        n = P;
                                        o = aM(f | 0, l | 0, b | 0, g | 0) | 0;
                                        u = P;
                                        if (!((n | 0) > (u | 0) | (n | 0) == (u | 0) & s >>> 0 > o >>> 0)) {
                                            m = sM(b | 0, g | 0, f | 0, l | 0) | 0;
                                            v = P;
                                            if ((n | 0) < (v | 0) | (n | 0) == (v | 0) & s >>> 0 < m >>> 0) {
                                                s = b;
                                                n = g;
                                                y = 22
                                            }
                                        } else {
                                            s = o;
                                            n = u;
                                            y = 22
                                        }
                                        if ((y | 0) == 22) {
                                            y = _;
                                            a[y >> 2] = t;
                                            a[y + 4 >> 2] = i;
                                            y = h;
                                            a[y >> 2] = s;
                                            a[y + 4 >> 2] = n
                                        }
                                        y = e + 88 | 0;
                                        a[y >> 2] = s;
                                        a[y + 4 >> 2] = n;
                                        break
                                    }
                                    y = l;
                                    a[y >> 2] = b;
                                    a[y + 4 >> 2] = g;
                                    y = e + 72 | 0;
                                    a[y >> 2] = t;
                                    a[y + 4 >> 2] = i;
                                    y = e + 88 | 0;
                                    i = y;
                                    t = (v | 0) < (s | 0) | (v | 0) == (s | 0) & d >>> 0 < n >>> 0;
                                    t = aM(a[i >> 2] | 0, a[i + 4 >> 2] | 0, (t ? d : n) | 0, (t ? v : s) | 0) | 0;
                                    i = P;
                                    e = e + 80 | 0;
                                    a[e >> 2] = t;
                                    a[e + 4 >> 2] = i;
                                    a[y >> 2] = t;
                                    a[y + 4 >> 2] = i;
                                    break
                                }
                                yB(e)
                            }
                        } while (0);
                        p = A;
                        return
                    }

                    function iF(e, t, i, n, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        var u = 0,
                            h = 0;
                        a[o >> 2] = 0;
                        if (r[e + 8 >> 0] | 0)
                            if ((t + -3 | 0) >>> 0 > 1) t = 16;
                            else {
                                u = 4;
                                h = 3
                            }
                        else {
                            u = t;
                            h = 3
                        }
                        if ((h | 0) == 3) {
                            t = a[e + 12 >> 2] | 0;
                            if (!(rF(t) | 0)) t = 17;
                            else t = nF(t, u, i, n, s, o) | 0
                        }
                        return t | 0
                    }

                    function rF(e) {
                        e = e | 0;
                        if (((a[e + 4 >> 2] | 0) == 0 ? (r[e + 506 >> 0] | 0) == 0 : 0) ? (r[e + 509 >> 0] | 0) == 0 : 0) e = 0;
                        else e = 1;
                        return e | 0
                    }

                    function nF(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        return aF(e, t, i, r, n, a) | 0
                    }

                    function aF(e, t, i, n, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = p;
                        p = p + 16 | 0;
                        h = c;
                        l = a[1880] | 0;
                        a[o >> 2] = 0;
                        r[e + 72 >> 0] = 0;
                        r[e + 73 >> 0] = 0;
                        u = a[e + 4 >> 2] | 0;
                        do {
                            if (!u)
                                if (!((t | 0) == 4 | (i | 0) != 0)) {
                                    u = e + 509 | 0;
                                    if ((r[u >> 0] | 0) == 1) {
                                        sF(e, l, 1) | 0;
                                        UC(e, l) | 0;
                                        if (r[u >> 0] | 0) {
                                            u = (a[e + 500 >> 2] | 0) >>> 0 < s >>> 0 ? 2 : 0;
                                            break
                                        }
                                    } else {
                                        if (!(r[e + 506 >> 0] | 0)) {
                                            u = 5;
                                            break
                                        }
                                        sF(e, l, 1) | 0
                                    }
                                    if (oF(l) | 0 ? LC(l, e + 84 | 0, h, 0) | 0 : 0) a[e + 40 >> 2] = a[h >> 2];
                                    u = YC(e, DC() | 0, 1) | 0;
                                    if (!u) {
                                        u = (a[e + 500 >> 2] | 0) >>> 0 < s >>> 0 ? 6 : 0;
                                        break
                                    } else {
                                        zC(e, u);
                                        f = 15;
                                        break
                                    }
                                } else u = 4;
                            else f = 15
                        } while (0);
                        e: do {
                            if ((f | 0) == 15) {
                                i = (a[(a[u + 4 >> 2] | 0) + 416 >> 2] | 0) >>> 16;
                                switch ((i & 65535) << 16 >> 16) {
                                    case 3:
                                        {
                                            u = 7;
                                            break e
                                        }
                                    case 4:
                                        {
                                            a[o >> 2] = 1;u = 8;
                                            break e
                                        }
                                    default:
                                        {}
                                }
                                switch (t | 0) {
                                    case 1:
                                        {
                                            u = uF(i) | 0;
                                            break e
                                        }
                                    case 2:
                                        {
                                            u = hF(e, l, u, i, s) | 0;
                                            break e
                                        }
                                    case 3:
                                        {
                                            u = lF(e, l, u, i, n, s) | 0;
                                            break e
                                        }
                                    case 4:
                                        {
                                            u = fF(e, l, u, i, n) | 0;
                                            break e
                                        }
                                    default:
                                        {
                                            cF();u = 11;
                                            break e
                                        }
                                }
                            }
                        } while (0);
                        p = c;
                        return u | 0
                    }

                    function sF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        s = u;
                        o = e + 72 | 0;
                        if (!((r[o >> 0] | 0) != 0 ? (n = r[e + 73 >> 0] | 0, !((i | 0) != 0 & n << 24 >> 24 == 0)) : 0)) {
                            FC(a[e + 76 >> 2] | 0, s);
                            if ((r[s + 4 >> 0] | 0) == 0 ? !((i | 0) != 0 | (r[s + 5 >> 0] | 0) != 0) : 0) n = 0;
                            else {
                                NC(e, t, s);
                                n = 1
                            }
                            r[o >> 0] = 1;
                            r[e + 73 >> 0] = n
                        }
                        p = u;
                        return n << 24 >> 24 | 0
                    }

                    function oF(e) {
                        e = e | 0;
                        if (!(r[e + 8 >> 0] | 0)) e = (r[e + 9 >> 0] | 0) != 0 & 1;
                        else e = 1;
                        return e | 0
                    }

                    function uF(e) {
                        e = e | 0;
                        return (e | 0) != 0 | 0
                    }

                    function hF(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0;
                        u = p;
                        p = p + 48 | 0;
                        o = u;
                        switch (n | 0) {
                            case 0:
                                {
                                    i = i + 4 | 0;jF(e, t, a[i >> 2] | 0);i = a[i >> 2] | 0;GF(i, a[e + 68 >> 2] | 0);$F(i, e + 8 | 0);HF(i, a[e + 580 >> 2] | 0, a[e + 584 >> 2] | 0);n = r[e + 510 >> 0] | 0;
                                    if (!(n << 24 >> 24 == 3 | (r[e + 506 >> 0] | 0) == 0 & n << 24 >> 24 < 2)) {
                                        t = (hD(a[t + 288 >> 2] | 0, o, 1) | 0) == 0;
                                        o = aM((t ? 0 : a[o >> 2] | 0) | 0, (t ? 0 : 0) | 0, s | 0, 0) | 0;
                                        s = P;
                                        t = s >>> 0 < 0 | (s | 0) == 0 & o >>> 0 < 4294967295;
                                        o = t ? o : -1;
                                        a[i + 444 >> 2] = o
                                    }
                                    WF(i, r[e + 504 >> 0] | 0);YF(i, r[e + 505 >> 0] | 0);zF(i);i = 1;
                                    break
                                }
                            case 1:
                                {
                                    i = 1;
                                    break
                                }
                            default:
                                {
                                    if ((qF(a[i + 4 >> 2] | 0, o) | 0) == 1) r[e + 511 >> 0] = a[o + 32 >> 2];i = JF(e, t, i) | 0
                                }
                        }
                        p = u;
                        return i | 0
                    }

                    function lF(e, t, i, n, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        a = a | 0;
                        s = s | 0;
                        if (!n)
                            if ((r[e + 509 >> 0] | 0) == 0 ? (sF(e, t, 1) | 0, (UC(e, t) | 0) == 0) : 0) {
                                hF(e, t, i, 0, s) | 0;
                                dF(e, t, i, a, 1) | 0;
                                e = 1
                            } else e = 1;
                        else e = dF(e, t, i, a, 0) | 0;
                        return e | 0
                    }

                    function fF(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        e = dF(e, t, i, n, 0) | 0;
                        if (!r) e = 10;
                        else vh(a[i + 4 >> 2] | 0);
                        return e | 0
                    }

                    function cF() {
                        sE();
                        return
                    }

                    function dF(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        return pF(e, t, i, r, n) | 0
                    }

                    function pF(e, t, i, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        u = u | 0;
                        var l = 0,
                            f = 0,
                            c = 0.0,
                            d = 0.0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0;
                        E = p;
                        p = p + 48 | 0;
                        _ = E + 32 | 0;
                        b = E + 28 | 0;
                        T = E + 16 | 0;
                        w = E + 12 | 0;
                        x = E + 8 | 0;
                        A = E + 4 | 0;
                        y = E;
                        m = i + 4 | 0;
                        g = a[m >> 2] | 0;
                        h[_ >> 2] = 1.0;
                        k = sF(e, t, u) | 0;
                        r[(a[m >> 2] | 0) + 420 >> 0] = s[e + 493 >> 0] | o;
                        if (!k) o = 0;
                        else {
                            k = vF(r[t + 9 >> 0] | 0) | 0 | u;
                            m = t + 284 | 0;
                            u = no(+h[t + 244 >> 2], a[m >> 2] | 0, A, k) | 0;
                            o = t + 288 | 0;
                            l = mF(a[o >> 2] | 0, w, k) | 0;
                            S = _F(a[o >> 2] | 0, x, k) | 0;
                            Tl(a[o >> 2] | 0, T, k) | 0;
                            f = (a[T >> 2] | 0) == 1;
                            if (!((S | 0) == 1 | f)) {
                                if ((u | 0) == 1 | (l | 0) == 1) bF(g, +h[A >> 2] * +h[w >> 2])
                            } else {
                                if (!(_F(a[o >> 2] | 0, x, 1) | 0)) {
                                    c = f ? 0.0 : 1.0;
                                    h[x >> 2] = c
                                } else c = +h[x >> 2];
                                bF(g, c * (+h[A >> 2] * +h[w >> 2]))
                            }
                            if (!(r[e + 510 >> 0] | 0)) o = 0;
                            else o = _O(e, +h[e + 496 >> 2]) | 0;
                            if (!(((!((k | 0) == 1 | (r[e + 492 >> 0] | 0) == 1) ? (gF(t) | 0) == 0 : 0) ? (yF(a[t + 320 >> 2] | 0) | 0) == 0 : 0) ? !(AF(a[t + 324 >> 2] | 0) | 0) : 0)) v = 15;
                            e: do {
                                if ((v | 0) == 15) {
                                    l = e + 224 | 0;
                                    f = e + 228 | 0;
                                    u = 0;
                                    while (1) {
                                        if ((u | 0) >= (a[l >> 2] | 0)) break e;
                                        wF(g, u, a[f >> 2] | 0, e + 232 + (u << 5) | 0);
                                        u = u + 1 | 0
                                    }
                                }
                            } while (0);
                            if ((xF(a[m >> 2] | 0, T, k) | 0) == 1) kF(g, 0, +h[T >> 2]);
                            if ((r[e + 511 >> 0] | 0) > 1 ? (TF(a[m >> 2] | 0, w, k) | 0) == 1 : 0) kF(g, 1, +h[w >> 2]);
                            l = e + 84 | 0;
                            if ((EF(a[m >> 2] | 0, l, _, k) | 0) == 1) {
                                if ((a[e + 488 >> 2] | 0) == 1) {
                                    d = +h[_ >> 2];
                                    c = +h[1929];
                                    if (d > c) {
                                        NE();
                                        c = +h[1929]
                                    }
                                    c = d < c ? d : c
                                } else c = 1.0;
                                h[_ >> 2] = c;
                                TO(g, c)
                            }
                            u = i + 24 | 0;
                            if ((a[u >> 2] | 0) != -32768 ? LC(t, l, b, k) | 0 : 0) {
                                S = a[b >> 2] | 0;
                                a[e + 40 >> 2] = S;
                                a[u >> 2] = S
                            }
                            m = ru(r[t + 105 >> 0] | 0) | 0;
                            i = e + 505 | 0;
                            _ = T + 4 | 0;
                            b = T + 8 | 0;
                            v = T + 3 | 0;
                            g = g + 236 | 0;
                            l = 0;
                            while (1) {
                                if ((l | 0) >= (m | 0)) break;
                                nu(t, l, T);
                                f = n[T >> 1] | 0;
                                u = SF(r[i >> 0] | 0, f) | 0;
                                if (u << 16 >> 16 == -1) c = 0.0;
                                else {
                                    S = r[v >> 0] | 0;
                                    P = (KR(S) | 0) == 0;
                                    c = P ? u << 16 >> 16 == 0 ? 1.0 : 0.0 : +h[_ >> 2];
                                    S = (eD(S) | 0) == 0;
                                    c = S ? c : c + +h[b >> 2];
                                    PF(a[g >> 2] | 0, u & 65535, c)
                                }
                                n[e + 520 + (l << 1) >> 1] = f;
                                h[e + 536 + (l << 2) >> 2] = c;
                                l = l + 1 | 0
                            }
                            do {
                                if ((IF(t, T, w, x, k) | 0) == 1)
                                    if ((a[x >> 2] | 0) == 1) {
                                        EO(a[g >> 2] | 0, 2, 1, +h[w >> 2]);
                                        EO(a[g >> 2] | 0, 2, 2, +h[T >> 2]);
                                        mh(a[g >> 2] | 0, 2, 1);
                                        MF(a[g >> 2] | 0, 2);
                                        break
                                    } else {
                                        mh(a[g >> 2] | 0, 2, 0);
                                        break
                                    }
                            } while (0);
                            do {
                                if ((CF(t, T, w, x, A, y, k) | 0) == 1) {
                                    u = a[T >> 2] | 0;
                                    if (!u) {
                                        mh(a[g >> 2] | 0, 1, 0);
                                        break
                                    } else {
                                        d = +((OF(u) | 0) >>> 0);
                                        EO(a[g >> 2] | 0, 1, 0, d);
                                        EO(a[g >> 2] | 0, 1, 1, +h[w >> 2]);
                                        EO(a[g >> 2] | 0, 1, 2, +h[x >> 2]);
                                        EO(a[g >> 2] | 0, 1, 3, +h[A >> 2]);
                                        mh(a[g >> 2] | 0, 1, 1);
                                        MF(a[g >> 2] | 0, 1);
                                        break
                                    }
                                }
                            } while (0);
                            f = t + 316 | 0;
                            u = 0;
                            l = 0;
                            while (1) {
                                if ((l | 0) == 8) break;
                                if ((RF(a[f >> 2] | 0, l, T, k) | 0) == 1) {
                                    EO(a[g >> 2] | 0, 18, l, +h[T >> 2]);
                                    u = 1
                                }
                                l = l + 1 | 0
                            }
                            if ((u | 0) == 1) {
                                mh(a[g >> 2] | 0, 18, 1);
                                MF(a[g >> 2] | 0, 18)
                            }
                            if ((DF(a[t + 292 >> 2] | 0, T, k) | 0) == 1) {
                                EO(a[g >> 2] | 0, 14, 8, +h[T + 8 >> 2]);
                                mh(a[g >> 2] | 0, 14, 1);
                                MF(a[g >> 2] | 0, 14)
                            }
                        }
                        p = E;
                        return o | 0
                    }

                    function vF(e) {
                        e = e | 0;
                        return e & 255 | 0
                    }

                    function mF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        h[t >> 2] = 1.0;
                        if ((e | 0) != 0 ? (r = a[e + 8 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 38 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function _F(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        h[t >> 2] = 1.0;
                        if ((e | 0) != 0 ? (r = a[e + 12 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 39 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function bF(e, t) {
                        e = e | 0;
                        t = +t;
                        var i = 0;
                        if (!e) sE();
                        else {
                            i = a[e + 556 >> 2] | 0;
                            if (i | 0) f$[i & 7](a[e + 560 >> 2] | 0, e, 0, t);
                            t = t > 0.0 ? t : 0.0;
                            XF(a[e + 236 >> 2] | 0, t <= .0000152587890625 ? 0.0 : t)
                        }
                        return
                    }

                    function gF(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            o = 0;
                        e: do {
                            if (!(a[e + 364 >> 2] | 0)) t = 0;
                            else {
                                t = 0;
                                n = 0;
                                while (1) {
                                    if ((n | 0) == 8) break e;
                                    r = a[e + 332 + (n << 2) >> 2] | 0;
                                    t: do {
                                        if (r) {
                                            i = 0;
                                            while (1) {
                                                if ((i | 0) == 8) break t;
                                                o = t | (s[r + 32 + i >> 0] | 0);
                                                i = i + 1 | 0;
                                                t = o
                                            }
                                        }
                                    } while (0);
                                    n = n + 1 | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function yF(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        e: do {
                            if (!e) t = 0;
                            else {
                                t = 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) == 8) break e;
                                    t = t | (s[e + 32 + i >> 0] | 0);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function AF(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        e: do {
                            if (!e) t = 0;
                            else {
                                t = 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) == 8) break e;
                                    t = t | (s[e + 32 + i >> 0] | 0);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function wF(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0;
                        if (!e) sE();
                        else {
                            s = e + 244 | 0;
                            e = e + 236 | 0;
                            if (r[s >> 0] | 0) {
                                UF(a[e >> 2] | 0);
                                r[s >> 0] = 0
                            }
                            VF(a[e >> 2] | 0, t, i, n)
                        }
                        return
                    }

                    function xF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        h[t >> 2] = 0.0;
                        if ((e | 0) != 0 ? (r = a[e + 28 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 43 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function kF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var n = 0;
                        do {
                            if (!e) sE();
                            else {
                                if ((t | 0) >= 0 ? (a[e + 12 >> 2] | 0) > (t | 0) : 0) {
                                    n = e + 236 | 0;
                                    Wr(a[n >> 2] | 0, t, i);
                                    e = e + 244 | 0;
                                    if (!(r[e >> 0] | 0)) break;
                                    r[e >> 0] = 0;
                                    Wr(a[n >> 2] | 0, t & 1 ^ 1, 0.0);
                                    break
                                }
                                sE()
                            }
                        } while (0);
                        return
                    }

                    function TF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        h[t >> 2] = 0.0;
                        if ((e | 0) != 0 ? (r = a[e + 32 >> 2] | 0, (r | 0) != 2147483647) : 0) {
                            a[t >> 2] = r;
                            e = s[e + 44 >> 0] | 0 | i
                        } else e = 0;
                        return e | 0
                    }

                    function EF(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0.0,
                            o = 0,
                            u = 0;
                        if ((e | 0) != 0 ? (o = a[e + 4 >> 2] | 0, (o | 0) != 2147483647) : 0) {
                            u = 1;
                            r = s[e + 37 >> 0] | 0 | r;
                            n = (a[c >> 2] = o, +h[c >> 2])
                        } else {
                            u = 0;
                            r = 0;
                            n = 0.0
                        }
                        h[i >> 2] = 1.0;
                        e = a[t >> 2] | 0;
                        if ((e | 0) == 1) a[i >> 2] = a[t + 32 >> 2];
                        if ((e | r) & u) {
                            n = +lI(n / 1200.0);
                            h[i >> 2] = n * +h[i >> 2];
                            e = a[t >> 2] | 0
                        }
                        return ((r | 0) == 1 | (e | 0) == 1) & 1 | 0
                    }

                    function SF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        r = t & 65535;
                        do {
                            if (t << 16 >> 16 != -1) {
                                if (rf(0) | 0) {
                                    i = a[7720 + (e << 2) >> 2] | 0;
                                    s = (i | 0) == 0;
                                    i = s ? a[1930] | 0 : i;
                                    if (!(LF(s ? 0 : e) | 0)) {
                                        s = cs(4157) | 0;
                                        r = s << 16 >> 16 == -1 | (os() | 0) >>> 0 < 17367041;
                                        t = r ? t : s << 16 >> 16 == t << 16 >> 16 ? 0 : t;
                                        break
                                    }
                                    if ((i | 0) != 0 ? (a[i + 168 >> 2] | 0) > (r | 0) : 0) t = n[(a[i + 164 >> 2] | 0) + (r << 1) >> 1] | 0;
                                    else t = -1
                                }
                            } else t = -1
                        } while (0);
                        return t | 0
                    }

                    function PF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        NF(e, t, i);
                        return
                    }

                    function IF(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0.0,
                            u = 0,
                            l = 0,
                            f = 0;
                        h[t >> 2] = 24.0e3;
                        h[i >> 2] = 24.0;
                        a[n >> 2] = 0;
                        l = e + 296 | 0;
                        e = a[l >> 2] | 0;
                        do {
                            if (!e) e = 0;
                            else {
                                f = a[e + 4 >> 2] | 0;
                                u = (f | 0) == 2147483647;
                                o = (a[c >> 2] = f, +h[c >> 2]);
                                if (u ? (a[e >> 2] | 0) == 2147483647 : 0) {
                                    e = 0;
                                    break
                                }
                                if ((r[e + 24 >> 0] | 0) == 0 ? !((s | 0) != 0 | (r[e + 25 >> 0] | 0) != 0) : 0) {
                                    e = 0;
                                    break
                                }
                                if (!u) {
                                    h[t >> 2] = +FF(o);
                                    e = a[l >> 2] | 0
                                }
                                e = a[e >> 2] | 0;
                                if ((e | 0) == 2147483647) o = +h[i >> 2];
                                else {
                                    o = +FF((a[c >> 2] = e, +h[c >> 2]));
                                    h[i >> 2] = o
                                }
                                if (o != 24.0) e = 1;
                                else e = +h[t >> 2] != 24.0e3 & 1;
                                a[n >> 2] = e;
                                e = 1
                            }
                        } while (0);
                        return e | 0
                    }

                    function MF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        BF(e, t);
                        return
                    }

                    function CF(e, t, i, n, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        var l = 0,
                            f = 0;
                        a[t >> 2] = 0;
                        h[i >> 2] = 24.0e3;
                        h[n >> 2] = 1.0;
                        h[s >> 2] = 1.0;
                        a[o >> 2] = 0;
                        f = e + 296 | 0;
                        e = a[f >> 2] | 0;
                        do {
                            if (e) {
                                l = e + 8 | 0;
                                if ((((a[l >> 2] | 0) == 2147483647 ? (a[e + 12 >> 2] | 0) == 2147483647 : 0) ? (a[e + 16 >> 2] | 0) == 2147483647 : 0) ? (a[e + 20 >> 2] | 0) == 2147483647 : 0) {
                                    e = 0;
                                    break
                                }
                                if ((((r[e + 26 >> 0] | 0) == 0 ? (r[e + 27 >> 0] | 0) == 0 : 0) ? (r[e + 28 >> 0] | 0) == 0 : 0) ? !((u | 0) != 0 | (r[e + 29 >> 0] | 0) != 0) : 0) {
                                    e = 0;
                                    break
                                }
                                a[o >> 2] = 1;
                                l = a[l >> 2] | 0;
                                if ((l | 0) != 2147483647) {
                                    a[t >> 2] = l;
                                    e = a[f >> 2] | 0;
                                    if (!(a[e + 8 >> 2] | 0)) a[o >> 2] = 0
                                }
                                l = a[e + 12 >> 2] | 0;
                                if ((l | 0) != 2147483647) {
                                    h[i >> 2] = +FF((a[c >> 2] = l, +h[c >> 2]));
                                    e = a[f >> 2] | 0
                                }
                                l = a[e + 16 >> 2] | 0;
                                if ((l | 0) != 2147483647) a[n >> 2] = l;
                                e = a[e + 20 >> 2] | 0;
                                if ((e | 0) == 2147483647) e = 1;
                                else {
                                    a[s >> 2] = e;
                                    e = 1
                                }
                            } else e = 0
                        } while (0);
                        return e | 0
                    }

                    function OF(e) {
                        e = e | 0;
                        switch (e | 0) {
                            case 6:
                                {
                                    e = 5;
                                    break
                                }
                            case 5:
                                {
                                    e = 4;
                                    break
                                }
                            case 2:
                                {
                                    e = 1;
                                    break
                                }
                            case 3:
                                {
                                    e = 2;
                                    break
                                }
                            case 4:
                                {
                                    e = 3;
                                    break
                                }
                            default:
                                e = 0
                        }
                        return e | 0
                    }

                    function RF(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        h[i >> 2] = 0.0;
                        if ((e | 0) != 0 ? (n = a[e + (t << 2) >> 2] | 0, (n | 0) != 2147483647) : 0) {
                            a[i >> 2] = n;
                            e = s[e + 32 + t >> 0] | 0 | r
                        } else e = 0;
                        return e | 0
                    }

                    function DF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            o = 0,
                            u = 0;
                        a[t >> 2] = 0;
                        u = t + 4 | 0;
                        h[u >> 2] = 1.0;
                        r = t + 8 | 0;
                        h[r >> 2] = 0.0;
                        if (!e) r = 0;
                        else {
                            n = a[e + 32 >> 2] | 0;
                            if ((n | 0) == 2147483647) {
                                n = 0;
                                r = 0
                            } else {
                                a[r >> 2] = n;
                                n = s[e + 52 >> 0] | 0;
                                r = 1
                            }
                            o = a[e + 40 >> 2] | 0;
                            if ((o | 0) != 2147483647) {
                                a[u >> 2] = o;
                                n = n | (s[e + 54 >> 0] | 0);
                                r = 1
                            }
                            o = a[e + 36 >> 2] | 0;
                            if ((o | 0) != 2147483647) {
                                a[t >> 2] = Th(o) | 0;
                                n = n | (s[e + 53 >> 0] | 0);
                                r = 1
                            }
                            r = (r | 0) == 0 ? 0 : n | i
                        }
                        return r | 0
                    }

                    function FF(e) {
                        e = +e;
                        if (!(e <= .0000152587890625))
                            if (!(e >= .9999847412109375)) {
                                e = +lI((e * 2.1735804080963135 + 1.0) * 4.584962368011475);
                                e = e > 24.0 ? e : 24.0;
                                e = e < 24.0e3 ? e : 24.0e3
                            } else e = 24.0e3;
                        else e = 24.0;
                        return +e
                    }

                    function BF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Kr();
                        e = a[e >> 2] | 0;
                        u$[a[(a[e >> 2] | 0) + 100 >> 2] & 63](a[e + 4 >> 2] | 0, t);
                        en();
                        return
                    }

                    function NF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        Kr();
                        e = a[e >> 2] | 0;
                        f$[a[(a[e >> 2] | 0) + 104 >> 2] & 7](a[e + 4 >> 2] | 0, t, 0, i);
                        en();
                        return
                    }

                    function LF(e) {
                        e = e | 0;
                        if (e >>> 0 < 128) e = (a[7720 + (e << 2) >> 2] | 0) != 0 & 1;
                        else e = 0;
                        return e | 0
                    }

                    function UF(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        i = s[e + 21 >> 0] | 0;
                        n = e + 52 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == (i | 0)) break;
                            aE((a[n >> 2] | 0) + (t * 36 | 0) + 4 | 0, 32);
                            t = t + 1 | 0
                        }
                        n = e + 23 | 0;
                        r[n >> 0] = r[n >> 0] | 1;
                        return
                    }

                    function VF(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var o = 0,
                            u = 0;
                        if ((s[e + 21 >> 0] | 0 | 0) > (t | 0)) {
                            i = (i | 0) < 8 ? i : 8;
                            u = a[e + 52 >> 2] | 0;
                            e: do {
                                if ((i | 0) == 4) {
                                    a[u + (t * 36 | 0) + 4 >> 2] = a[n >> 2];
                                    a[u + (t * 36 | 0) + 8 >> 2] = a[n + 4 >> 2];
                                    a[u + (t * 36 | 0) + 20 >> 2] = a[n + 8 >> 2];
                                    a[u + (t * 36 | 0) + 24 >> 2] = a[n + 12 >> 2]
                                } else {
                                    o = 0;
                                    while (1) {
                                        if ((o | 0) >= (i | 0)) break e;
                                        a[u + (t * 36 | 0) + 4 + (o << 2) >> 2] = a[n + (o << 2) >> 2];
                                        o = o + 1 | 0
                                    }
                                }
                            } while (0);
                            n = e + 23 | 0;
                            r[n >> 0] = r[n >> 0] | 1
                        }
                        return
                    }

                    function XF(e, t) {
                        e = e | 0;
                        t = +t;
                        h[e + 44 >> 2] = t;
                        e = e + 23 | 0;
                        r[e >> 0] = r[e >> 0] | 1;
                        return
                    }

                    function jF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0.0,
                            o = 0,
                            u = 0.0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        b = p;
                        p = p + 32 | 0;
                        l = b + 24 | 0;
                        n = b + 20 | 0;
                        m = b + 8 | 0;
                        c = b + 4 | 0;
                        d = b;
                        aB(i);
                        v = i + 236 | 0;
                        sB(a[v >> 2] | 0);
                        oB(a[v >> 2] | 0);
                        r[e + 74 >> 0] = rf(0) | 0;
                        sF(e, t, 1) | 0;
                        o = t + 288 | 0;
                        if ((hD(a[o >> 2] | 0, l, 1) | 0) == 1) a[i + 444 >> 2] = a[l >> 2];
                        if ((vO(a[o >> 2] | 0, l, 1) | 0) == 1) a[e + 500 >> 2] = a[l >> 2];
                        if ((uB(a[o >> 2] | 0, n) | 0) == 1) a[i + 476 >> 2] = a[n >> 2];
                        f = t + 284 | 0;
                        do {
                            if ((Kp(a[f >> 2] | 0, l, 1) | 0) == 1) {
                                n = a[l >> 2] | 0;
                                if (!n) {
                                    hB(i, -2);
                                    break
                                } else {
                                    hB(i, n);
                                    break
                                }
                            }
                        } while (0);
                        n = lB(a[t + 248 >> 2] | 0) | 0;
                        h[l >> 2] = 0.0;
                        Ao(a[o >> 2] | 0, l, 1);
                        u = +h[l >> 2] + +(((n >>> 0) / 1e3 | 0) >>> 0);
                        h[l >> 2] = u;
                        EO(a[v >> 2] | 0, 15, 0, u);
                        if ((fB(t, m) | 0) == 1) {
                            u = +h[m >> 2];
                            s = +h[1929];
                            if (u > s) {
                                NE();
                                s = +h[1929]
                            }
                            u = u < s ? u : s;
                            u = u > 1.0 ? u : 1.0;
                            h[m >> 2] = u;
                            h[i + 428 >> 2] = u
                        }
                        h[m >> 2] = 1.0;
                        if ((EF(a[f >> 2] | 0, e + 84 | 0, m, 1) | 0) == 1) {
                            if ((a[e + 488 >> 2] | 0) == 1) {
                                u = +h[m >> 2];
                                s = +h[1929];
                                if (u > s) {
                                    NE();
                                    s = +h[1929]
                                }
                                s = u < s ? u : s;
                                s = s > 1.0 ? s : 1.0
                            } else s = 1.0;
                            h[m >> 2] = s;
                            TO(i, s)
                        }
                        o = t + 292 | 0;
                        if ((cB(a[o >> 2] | 0, m) | 0) == 1) {
                            EO(a[v >> 2] | 0, 14, 0, +h[m + 8 >> 2]);
                            EO(a[v >> 2] | 0, 14, 1, +((a[m >> 2] | 0) >>> 0));
                            EO(a[v >> 2] | 0, 14, 2, +h[m + 4 >> 2]);
                            n = 1
                        } else n = 0;
                        if ((dB(a[o >> 2] | 0, c) | 0) == 1) {
                            EO(a[v >> 2] | 0, 14, 3, +h[c >> 2]);
                            n = 1
                        }
                        if ((pB(a[o >> 2] | 0, m) | 0) == 1) {
                            EO(a[v >> 2] | 0, 14, 4, +h[m + 8 >> 2]);
                            EO(a[v >> 2] | 0, 14, 5, +((a[m >> 2] | 0) >>> 0));
                            EO(a[v >> 2] | 0, 14, 6, +h[m + 4 >> 2]);
                            n = 1
                        }
                        if ((vB(a[o >> 2] | 0, d) | 0) == 1) {
                            EO(a[v >> 2] | 0, 14, 7, +h[d >> 2]);
                            n = 1
                        }
                        if ((DF(a[o >> 2] | 0, m, 1) | 0) != 1)
                            if ((n | 0) == 1) _ = 32;
                            else mh(a[v >> 2] | 0, 14, 0);
                        else {
                            EO(a[v >> 2] | 0, 14, 8, +h[m + 8 >> 2]);
                            EO(a[v >> 2] | 0, 14, 9, +((a[m >> 2] | 0) >>> 0));
                            EO(a[v >> 2] | 0, 14, 10, +h[m + 4 >> 2]);
                            _ = 32
                        }
                        if ((_ | 0) == 32) {
                            mh(a[v >> 2] | 0, 14, 1);
                            MF(a[v >> 2] | 0, 14)
                        }
                        p = b;
                        return
                    }

                    function GF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e: do {
                            if (!e) sE();
                            else switch (((a[e + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                                case 1:
                                case 2:
                                case 4:
                                    {
                                        sE();
                                        break e
                                    }
                                default:
                                    {
                                        a[e + 272 >> 2] = t;
                                        break e
                                    }
                            }
                        } while (0);
                        return
                    }

                    function $F(e, t) {
                        e = e | 0;
                        t = t | 0;
                        switch (a[t >> 2] | 0) {
                            case 1:
                                {
                                    QF(e, a[t + 4 >> 2] | 0, a[t + 8 >> 2] | 0);
                                    break
                                }
                            case 2:
                                {
                                    ZF(e, a[t + 4 >> 2] | 0, a[t + 8 >> 2] | 0);
                                    break
                                }
                            case 3:
                                {
                                    KF(e, a[t + 4 >> 2] | 0, a[t + 8 >> 2] | 0);
                                    break
                                }
                            case 4:
                                {
                                    eB(e, a[t + 4 >> 2] | 0, a[t + 8 >> 2] | 0);
                                    break
                                }
                            case 5:
                                {
                                    tB(e, a[t + 4 >> 2] | 0, a[t + 12 >> 2] | 0, a[t + 8 >> 2] | 0, a[t + 16 >> 2] | 0);
                                    break
                                }
                            case 6:
                                {
                                    iB();
                                    break
                                }
                            case 7:
                                {
                                    rB();
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function HF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!e) sE();
                        else {
                            a[e + 464 >> 2] = t;
                            a[e + 468 >> 2] = i
                        }
                        return
                    }

                    function WF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | t >>> 0 > 255) sE();
                        else r[e + 245 >> 0] = t;
                        return
                    }

                    function YF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | t >>> 0 > 255) sE();
                        else r[e + 246 >> 0] = t;
                        return
                    }

                    function zF(e) {
                        e = e | 0;
                        r[e + 242 >> 0] = 0;
                        r[e + 420 >> 0] = 1;
                        Mn(e);
                        return
                    }

                    function qF(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        if (!((e | 0) == 0 | (t | 0) == 0))
                            if ((a[e + 416 >> 2] | 0) >>> 0 < 65538) e = 0;
                            else {
                                a[t >> 2] = a[e + 340 >> 2];
                                a[t + 32 >> 2] = a[e + 344 >> 2];
                                a[t + 4 >> 2] = a[e + 348 >> 2];
                                r = a[e + 352 >> 2] | 0;
                                i = t + 8 | 0;
                                a[i >> 2] = r;
                                a[i + 4 >> 2] = ((r | 0) < 0) << 31 >> 31;
                                i = a[e + 376 >> 2] | 0;
                                r = t + 16 | 0;
                                a[r >> 2] = i;
                                a[r + 4 >> 2] = ((i | 0) < 0) << 31 >> 31;
                                i = (a[e + 380 >> 2] | 0) - i | 0;
                                e = t + 24 | 0;
                                a[e >> 2] = i;
                                a[e + 4 >> 2] = ((i | 0) < 0) << 31 >> 31;
                                e = 1
                            }
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function JF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        return dF(e, t, i, 1, 1) | 0
                    }

                    function QF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        wr(e);
                        zr(e);
                        xn(e, t, i, 0, i);
                        return
                    }

                    function ZF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        wr(e);
                        zr(e);
                        Tn(e, t, i, 0, 0, -1, -1);
                        return
                    }

                    function KF(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        wr(e);
                        zr(e);
                        En(e, t, i);
                        return
                    }

                    function eB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        wr(e);
                        zr(e);
                        nB(e, t, i);
                        return
                    }

                    function tB(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        wr(e);
                        zr(e);
                        nB(e, t, i);
                        if ((r[e + 241 >> 0] | 0) == 1) {
                            a[e + 280 >> 2] = n;
                            a[e + 284 >> 2] = s;
                            a[e + 288 >> 2] = a[e + 252 >> 2]
                        } else {
                            NE();
                            eB(e, n, s)
                        }
                        return
                    }

                    function iB() {
                        sE();
                        return
                    }

                    function rB() {
                        sE();
                        return
                    }

                    function nB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        switch (gn(t) | 0) {
                            case 0:
                                {
                                    yn(e, t, i, 0);i = 5;
                                    break
                                }
                            case 1:
                                {
                                    if (!(An(e, t, i, 0) | 0)) i = 4;
                                    else i = 5;
                                    break
                                }
                            default:
                                i = 4
                        }
                        if ((i | 0) == 4) sE();
                        else if ((i | 0) == 5) a[e + 276 >> 2] = t;
                        return
                    }

                    function aB(e) {
                        e = e | 0;
                        var t = 0;
                        if (!e) sE();
                        else {
                            bB(a[e + 236 >> 2] | 0);
                            r[e + 244 >> 0] = 1;
                            t = a[e + 556 >> 2] | 0;
                            if (t | 0) f$[t & 7](a[e + 560 >> 2] | 0, e, 1, 1.0);
                            h[e + 424 >> 2] = 1.0;
                            h[e + 428 >> 2] = 1.0;
                            t = e + 432 | 0;
                            a[t >> 2] = 0;
                            a[t + 4 >> 2] = 0;
                            a[t + 8 >> 2] = 0;
                            a[t + 12 >> 2] = 0;
                            a[e + 456 >> 2] = -1;
                            a[e + 476 >> 2] = 0
                        }
                        return
                    }

                    function sB(e) {
                        e = e | 0;
                        _B(e);
                        return
                    }

                    function oB(e) {
                        e = e | 0;
                        mB(e);
                        return
                    }

                    function uB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((e | 0) != 0 ? (i = a[e + 28 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 43 >> 0] | r[e + 44 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function hB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | (t | 0) < -3) sE();
                        else a[e + 456 >> 2] = t;
                        return
                    }

                    function lB(e) {
                        e = e | 0;
                        return e | 0
                    }

                    function fB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0.0;
                        h[t >> 2] = 1.0;
                        e = e + 284 | 0;
                        i = a[e >> 2] | 0;
                        if ((i | 0) != 0 ? (n = a[i + 8 >> 2] | 0, (n | 0) != 2147483647) : 0) {
                            s = +lI((a[c >> 2] = n, +h[c >> 2]) / 1200.0);
                            h[t >> 2] = s * +h[t >> 2];
                            e = (r[(a[e >> 2] | 0) + 38 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function cB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            o = 0;
                        a[t >> 2] = 0;
                        o = t + 4 | 0;
                        h[o >> 2] = 1.0;
                        i = t + 8 | 0;
                        h[i >> 2] = 0.0;
                        if (!e) i = 0;
                        else {
                            r = a[e >> 2] | 0;
                            if ((r | 0) == 2147483647) {
                                r = 0;
                                i = 0
                            } else {
                                a[i >> 2] = r;
                                r = s[e + 44 >> 0] | 0;
                                i = 1
                            }
                            n = a[e + 8 >> 2] | 0;
                            if ((n | 0) != 2147483647) {
                                a[o >> 2] = n;
                                r = r | (s[e + 46 >> 0] | 0);
                                i = 1
                            }
                            n = a[e + 4 >> 2] | 0;
                            if ((n | 0) != 2147483647) {
                                a[t >> 2] = Th(n) | 0;
                                r = r | (s[e + 45 >> 0] | 0);
                                i = 1
                            }
                            i = (i | 0) == 0 ? 0 : r | 1
                        }
                        return i | 0
                    }

                    function dB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        h[t >> 2] = 0.0;
                        if ((e | 0) != 0 ? (i = a[e + 12 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 47 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function pB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            o = 0;
                        a[t >> 2] = 0;
                        o = t + 4 | 0;
                        h[o >> 2] = 1.0;
                        i = t + 8 | 0;
                        h[i >> 2] = 0.0;
                        if (!e) i = 0;
                        else {
                            r = a[e + 16 >> 2] | 0;
                            if ((r | 0) == 2147483647) {
                                r = 0;
                                i = 0
                            } else {
                                a[i >> 2] = r;
                                r = s[e + 48 >> 0] | 0;
                                i = 1
                            }
                            n = a[e + 24 >> 2] | 0;
                            if ((n | 0) != 2147483647) {
                                a[o >> 2] = n;
                                r = r | (s[e + 50 >> 0] | 0);
                                i = 1
                            }
                            n = a[e + 20 >> 2] | 0;
                            if ((n | 0) != 2147483647) {
                                a[t >> 2] = Th(n) | 0;
                                r = r | (s[e + 49 >> 0] | 0);
                                i = 1
                            }
                            i = (i | 0) == 0 ? 0 : r | 1
                        }
                        return i | 0
                    }

                    function vB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        h[t >> 2] = 1.0;
                        if ((e | 0) != 0 ? (i = a[e + 28 >> 2] | 0, (i | 0) != 2147483647) : 0) {
                            a[t >> 2] = i;
                            e = (r[e + 51 >> 0] | 1) & 255
                        } else e = 0;
                        return e | 0
                    }

                    function mB(e) {
                        e = e | 0;
                        Kr();
                        e = a[e >> 2] | 0;
                        s$[a[(a[e >> 2] | 0) + 108 >> 2] & 63](a[e + 4 >> 2] | 0);
                        en();
                        return
                    }

                    function _B(e) {
                        e = e | 0;
                        Kr();
                        e = a[e >> 2] | 0;
                        s$[a[(a[e >> 2] | 0) + 96 >> 2] & 63](a[e + 4 >> 2] | 0);
                        en();
                        return
                    }

                    function bB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0;
                        h[e + 44 >> 2] = 1.0;
                        h[e + 40 >> 2] = 1.0;
                        i = s[e + 21 >> 0] | 0;
                        n = e + 52 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == (i | 0)) break;
                            h[(a[n >> 2] | 0) + (t * 36 | 0) >> 2] = 1.0;
                            t = t + 1 | 0
                        }
                        gB(e);
                        n = e + 23 | 0;
                        r[n >> 0] = r[n >> 0] | 7;
                        return
                    }

                    function gB(e) {
                        e = e | 0;
                        UF(e);
                        return
                    }

                    function yB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = a[e + 52 >> 2] | 0;
                        i = fM(i | 0, ((i | 0) < 0) << 31 >> 31 | 0, 1e3, 0) | 0;
                        t = P;
                        r = e + 80 | 0;
                        a[r >> 2] = i;
                        a[r + 4 >> 2] = t;
                        r = e + 88 | 0;
                        a[r >> 2] = i;
                        a[r + 4 >> 2] = t;
                        e = e + 96 | 0;
                        a[e >> 2] = i;
                        a[e + 4 >> 2] = t;
                        return
                    }

                    function AB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = (t | 0) == 0 ? n : t;
                        t = r;
                        a[t >> 2] = -1;
                        a[t + 4 >> 2] = -1;
                        t = (i | 0) == 0 ? n + 8 | 0 : i;
                        a[t >> 2] = -1;
                        if (!e) {
                            sE();
                            t = 0
                        } else t = Jr(e, r, t) | 0;
                        p = n;
                        return t | 0
                    }

                    function wB() {
                        if (!(a[1646] | 0)) {
                            a[1646] = 2;
                            Ei(0);
                            Si();
                            Ei(1)
                        }
                        return
                    }

                    function xB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 8 | 0;
                        e: do {
                            if (r[t >> 0] | 0) {
                                r[t >> 0] = 0;
                                r[e + 9 >> 0] = 0;
                                t = e + 276 | 0;
                                a[t >> 2] = 0;
                                n[t + 4 >> 1] = 0;
                                gS(a[e + 24 >> 2] | 0, 0, s[e + 28 >> 0] | 0) | 0;
                                t = a[e + 284 >> 2] | 0;
                                if (t | 0) gS(t + 36 | 0, 0, 9) | 0;
                                t = a[e + 288 >> 2] | 0;
                                if (t | 0) gS(t + 36 | 0, 0, 9) | 0;
                                t = a[e + 292 >> 2] | 0;
                                if (t | 0) gS(t + 44 | 0, 0, 11) | 0;
                                t = a[e + 296 >> 2] | 0;
                                if (t | 0) gS(t + 24 | 0, 0, 6) | 0;
                                t = a[e + 300 >> 2] | 0;
                                if (t | 0) gS(t + 24 | 0, 0, 6) | 0;
                                t = a[e + 304 >> 2] | 0;
                                if (t | 0) gS(t + 48 | 0, 0, 12) | 0;
                                t = a[e + 308 >> 2] | 0;
                                if (t | 0) gS(t + 40 | 0, 0, 10) | 0;
                                t = a[e + 312 >> 2] | 0;
                                if (t | 0) gS(t + 16 | 0, 0, 4) | 0;
                                t = a[e + 316 >> 2] | 0;
                                if (t | 0) gS(t + 32 | 0, 0, 8) | 0;
                                t = a[e + 320 >> 2] | 0;
                                if (t | 0) gS(t + 32 | 0, 0, 8) | 0;
                                t = a[e + 324 >> 2] | 0;
                                if (t | 0) gS(t + 32 | 0, 0, 8) | 0;
                                t = a[e + 328 >> 2] | 0;
                                if (t | 0) gS(t + 32 | 0, 0, 8) | 0;
                                i = s[e + 105 >> 0] | 0;
                                t = 0;
                                while (1) {
                                    if ((t | 0) == (i | 0)) break;
                                    r[e + 108 + (t * 12 | 0) + 2 >> 0] = 0;
                                    t = t + 1 | 0
                                }
                                if (a[e + 364 >> 2] | 0) {
                                    t = 0;
                                    while (1) {
                                        if ((t | 0) == 8) break e;
                                        i = a[e + 332 + (t << 2) >> 2] | 0;
                                        if (i | 0) gS(i + 32 | 0, 0, 8) | 0;
                                        t = t + 1 | 0
                                    }
                                }
                            }
                        } while (0);
                        return
                    }

                    function kB() {
                        var e = 0;
                        e = a[2058] | 0;
                        oS(e) | 0;
                        while (1) {
                            if (!e) break;
                            r[(a[e >> 2] | 0) + 152 >> 0] = 0;
                            e = a[e + 4 >> 2] | 0
                        }
                        e = a[1699] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            a[(a[e >> 2] | 0) + 152 >> 2] = 0;
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function TB(e) {
                        e = e | 0;
                        JD(e);
                        return
                    }

                    function EB() {
                        var e = 0,
                            t = 0;
                        e = Wo() | 0;
                        e = dM(e | 0, P | 0, 1e3, 0) | 0;
                        t = AP(a[2064] | 0, e) | 0;
                        a[2063] = t >>> 0 < 67 ? t : 67;
                        a[2064] = e;
                        return
                    }

                    function SB() {
                        var e = 0;
                        e = a[2062] | 0;
                        if (e | 0) xS(e);
                        return
                    }

                    function PB(e) {
                        e = e | 0;
                        IB(e);
                        switch (r[e + 65 >> 0] | 0) {
                            case 1:
                                {
                                    MB(e);
                                    break
                                }
                            case 2:
                                {
                                    CB(e);
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function IB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e + 44 >> 2] | 0;
                        do {
                            if (t | 0) {
                                i = a[e + 52 >> 2] | 0;
                                if ((a[e + 100 >> 2] | 0) > 0) {
                                    o$[i & 3](t, +h[e + 112 >> 2]);
                                    break
                                } else {
                                    o$[i & 3](t, 1.0);
                                    break
                                }
                            }
                        } while (0);
                        t = a[e + 24 >> 2] | 0;
                        if (t | 0) o$[a[e + 32 >> 2] & 3](t, +h[e + 116 >> 2]);
                        return
                    }

                    function MB(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 44 >> 2] | 0;
                        if (!((t | 0) != 0 ? !(KG[a[e + 56 >> 2] & 63](t) | 0) : 0)) {
                            a[e + 108 >> 2] = 0;
                            r[e + 65 >> 0] = 2
                        }
                        return
                    }

                    function CB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = e + 24 | 0;
                        do {
                            if (!(r[e + 66 >> 0] | 0)) {
                                u = e + 108 | 0;
                                c = (a[2063] | 0) + (a[u >> 2] | 0) | 0;
                                l = e + 96 | 0;
                                t = a[l >> 2] | 0;
                                if (((t | 0) > -1 ? (s = a[f >> 2] | 0, s | 0) : 0) ? (i = a[e + 88 >> 2] | 0, (c | 0) >= (i | 0)) : 0) {
                                    if ((t | 0) > 0) n = (1.0 - +(c - i | 0) / +(t | 0)) * +h[e + 28 >> 2];
                                    else n = 0.0;
                                    n = n > 1.0 ? 1.0 : n;
                                    n = n < 0.0 ? 0.0 : n;
                                    o$[a[e + 32 >> 2] & 3](s, n);
                                    h[e + 116 >> 2] = n
                                }
                                s = e + 44 | 0;
                                i = a[s >> 2] | 0;
                                if (i | 0 ? (o = a[e + 92 >> 2] | 0, (c | 0) >= (o | 0)) : 0) {
                                    t = a[e + 100 >> 2] | 0;
                                    if ((t | 0) > 0) n = +(c - o | 0) / +(t | 0) * +h[e + 48 >> 2];
                                    else n = +h[e + 48 >> 2];
                                    n = n > 1.0 ? 1.0 : n;
                                    n = n < 0.0 ? 0.0 : n;
                                    o$[a[e + 52 >> 2] & 3](i, n);
                                    t = e + 112 | 0;
                                    if (+h[t >> 2] <= 0.0 & n > 0.0) s$[a[e + 60 >> 2] & 63](a[s >> 2] | 0);
                                    h[t >> 2] = n
                                }
                                a[u >> 2] = c;
                                t = a[f >> 2] | 0;
                                if (t | 0) {
                                    if ((c - (a[e + 88 >> 2] | 0) | 0) < ((a[e + 104 >> 2] | 0) + (a[l >> 2] | 0) | 0)) break;
                                    i = e + 67 | 0;
                                    if (!(r[i >> 0] | 0)) {
                                        s$[a[e + 36 >> 2] & 63](t);
                                        r[i >> 0] = 1;
                                        t = a[f >> 2] | 0
                                    }
                                    if (!(KG[a[e + 40 >> 2] & 63](t) | 0)) break
                                }
                                if (a[s >> 2] | 0 ? (c - (a[e + 92 >> 2] | 0) | 0) < (a[e + 100 >> 2] | 0) : 0) break;
                                r[e + 65 >> 0] = 3
                            }
                        } while (0);
                        return
                    }

                    function OB() {
                        return a[1624] | 0
                    }

                    function RB() {
                        return KE(a[1704] | 0) | 0
                    }

                    function DB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0.0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 16 | 0;
                        c = v;
                        o = v + 8 | 0;
                        e: do {
                            if ((r[e + 121 >> 0] | 0) != 1) {
                                d = e + 112 | 0;
                                s = a[d >> 2] | 0;
                                if (s | 0) {
                                    t = c;
                                    a[t >> 2] = 0;
                                    a[t + 4 >> 2] = 0;
                                    a[o >> 2] = 0;
                                    t = FB(a[s + 80 >> 2] | 0) | 0;
                                    if (!t) {
                                        i = s + 68 | 0;
                                        n = s + 72 | 0;
                                        f = 0.0
                                    } else {
                                        i = t + 24 | 0;
                                        n = t + 28 | 0;
                                        f = +h[t + 12 >> 2]
                                    }
                                    l = a[i >> 2] | 0;
                                    n = a[n >> 2] | 0;
                                    do {
                                        if (!(r[s + 37 >> 0] | 0)) {
                                            if (!(BB(Co(e) | 0, c, o) | 0)) {
                                                O_(e) | 0;
                                                t = a[c >> 2] | 0;
                                                u = 17;
                                                break
                                            }
                                            i = c;
                                            t = a[i >> 2] | 0;
                                            i = a[i + 4 >> 2] | 0;
                                            if ((n | 0) != 0 ? (i | 0) > 0 | (i | 0) == 0 & t >>> 0 > n >>> 0 : 0) {
                                                t = sM(t | 0, i | 0, l | 0, 0) | 0;
                                                t = cM(t | 0, P | 0, n - l | 0, 0) | 0;
                                                t = aM(t | 0, P | 0, l | 0, 0) | 0;
                                                u = c;
                                                a[u >> 2] = t;
                                                a[u + 4 >> 2] = P;
                                                u = 17
                                            } else u = 17
                                        } else {
                                            t = NB(e) | 0;
                                            if (t | 0 ? BB(Co(t) | 0, c, o) | 0 : 0) {
                                                i = c;
                                                t = a[i >> 2] | 0;
                                                i = a[i + 4 >> 2] | 0;
                                                if ((n | 0) != 0 ? (i | 0) > 0 | (i | 0) == 0 & t >>> 0 > n >>> 0 : 0) {
                                                    t = sM(t | 0, i | 0, l | 0, 0) | 0;
                                                    t = cM(t | 0, P | 0, n - l | 0, 0) | 0;
                                                    t = aM(t | 0, P | 0, l | 0, 0) | 0;
                                                    u = c;
                                                    a[u >> 2] = t;
                                                    a[u + 4 >> 2] = P;
                                                    u = 17
                                                } else u = 17
                                            }
                                        }
                                    } while (0);
                                    if ((u | 0) == 17) LB(a[d >> 2] | 0, t, f, e)
                                }
                                t = a[e + 48 >> 2] | 0;
                                ZE(t) | 0;
                                while (1) {
                                    if (!t) break e;
                                    DB(a[t >> 2] | 0);
                                    t = a[t + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        p = v;
                        return
                    }

                    function FB(e) {
                        e = e | 0;
                        if (!e) e = 0;
                        else e = a[e + 16 >> 2] | 0;
                        return e | 0
                    }

                    function BB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = p;
                        p = p + 16 | 0;
                        t = (t | 0) == 0 ? r : t;
                        n = t;
                        a[n >> 2] = -1;
                        a[n + 4 >> 2] = -1;
                        i = (i | 0) == 0 ? r + 8 | 0 : i;
                        a[i >> 2] = -1;
                        eo();
                        i = HB(e, t, i) | 0;
                        so();
                        p = r;
                        return i | 0
                    }

                    function NB(e) {
                        e = e | 0;
                        e = a[e + 48 >> 2] | 0;
                        if (!(ZE(e) | 0)) e = 0;
                        else e = a[e >> 2] | 0;
                        return e | 0
                    }

                    function LB(e, t, i, o) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        o = o | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0.0,
                            I = 0.0,
                            M = 0.0;
                        S = p;
                        p = p + 48 | 0;
                        E = S + 32 | 0;
                        T = S;
                        e: do {
                            if ((t | 0) != -1) {
                                f = e + 24 | 0;
                                c = KE(a[e + 32 >> 2] | 0) | 0;
                                u = 0;
                                while (1) {
                                    if (u >>> 0 >= c >>> 0) break e;
                                    rS(f, E);
                                    l = a[E >> 2] | 0;
                                    b = a[l >> 2] | 0;
                                    d = b + 24 | 0;
                                    if ((a[d >> 2] | 0) >>> 0 <= t >>> 0 ? (a[b + 28 >> 2] | 0) >>> 0 >= t >>> 0 : 0) break;
                                    tS(f, l);
                                    u = u + 1 | 0
                                }
                                eS(f, l);
                                _ = e + 76 | 0;
                                a[_ >> 2] = b;
                                if (i == 0.0) i = +h[b + 12 >> 2];
                                P = 60.0 / i * 1.0e3;
                                m = r[b + 16 >> 0] | 0;
                                I = P * +(m & 255);
                                M = +(~~(+((t - (a[d >> 2] | 0) | 0) >>> 0) / +((a[b + 32 >> 2] | 0) >>> 0) * 1.0e3) - ((a[e + 44 >> 2] | 0) + (n[e + 38 >> 1] | 0)) | 0);
                                f = ~~(M / I) >>> 0;
                                P = I * (+eM(M, I) / I) / P;
                                l = ~~P >>> 0;
                                c = e + 52 | 0;
                                a[c >> 2] = f;
                                t = e + 56 | 0;
                                a[t >> 2] = l;
                                d = e + 60 | 0;
                                h[d >> 2] = +eM(P, 1.0);
                                v = e + 64 | 0;
                                h[v >> 2] = i;
                                l = 1 << l;
                                u = e + 40 | 0;
                                if ((a[u >> 2] | 0) == (l | 0)) {
                                    if (m << 24 >> 24 != 1) break;
                                    u = e + 48 | 0;
                                    if ((a[u >> 2] | 0) == (f | 0)) break;
                                    a[u >> 2] = f
                                } else a[u >> 2] = l;
                                if (a[b + 20 >> 2] & l | 0) {
                                    if (a[1623] | 0) {
                                        gS(T, 0, 32) | 0;
                                        a[T >> 2] = a[o + 60 >> 2];
                                        a[T + 4 >> 2] = Co(o) | 0;
                                        a[T + 8 >> 2] = a[c >> 2];
                                        a[T + 12 >> 2] = a[t >> 2];
                                        a[T + 16 >> 2] = a[d >> 2];
                                        a[T + 20 >> 2] = a[v >> 2];
                                        a[T + 28 >> 2] = s[(a[_ >> 2] | 0) + 16 >> 0];
                                        Zt(0, T) | 0
                                    }
                                    A = e + 12 | 0;
                                    g = e + 20 | 0;
                                    y = KE(a[g >> 2] | 0) | 0;
                                    _ = e + 80 | 0;
                                    b = T + 4 | 0;
                                    o = T + 8 | 0;
                                    e = T + 12 | 0;
                                    v = 0;
                                    l = 0;
                                    m = 0;
                                    while (1) {
                                        if (m >>> 0 >= y >>> 0) break;
                                        rS(A, E);
                                        u = a[E >> 2] | 0;
                                        if (!u) break;
                                        d = a[u >> 2] | 0;
                                        t: do {
                                            switch (a[d >> 2] | 0) {
                                                case 1:
                                                    {
                                                        c = d + 12 | 0;
                                                        switch (Eh(a[c >> 2] | 0) | 0) {
                                                            case 2:
                                                                break;
                                                            case 1:
                                                                {
                                                                    u = v + 1 | 0;w = 38;
                                                                    break t
                                                                }
                                                            default:
                                                                {
                                                                    w = 37;
                                                                    break t
                                                                }
                                                        }
                                                        u = a[c >> 2] | 0;l = vu(u) | 0;
                                                        if (((l | 0) != 0 ? (a[l + 32 >> 2] & 1 | 0) != 0 : 0) ? (x = a[l + 60 >> 2] | 0, (x | 0) != 0) : 0) {
                                                            f = Bo(a[x + 208 >> 2] | 0) | 0;
                                                            if (f) {
                                                                _l(f, u);
                                                                r[l + 123 >> 0] = 0;
                                                                u = a[c >> 2] | 0
                                                            }
                                                            zu(u, 2);
                                                            w = 37
                                                        } else w = 37;
                                                        break
                                                    }
                                                case 7:
                                                    {
                                                        t = d + 12 | 0;
                                                        switch (Eh(a[t >> 2] | 0) | 0) {
                                                            case 2:
                                                                break;
                                                            case 1:
                                                                {
                                                                    u = v + 1 | 0;w = 38;
                                                                    break t
                                                                }
                                                            default:
                                                                {
                                                                    w = 37;
                                                                    break t
                                                                }
                                                        }
                                                        u = a[t >> 2] | 0;l = vu(u) | 0;
                                                        if (!l) w = 37;
                                                        else {
                                                            f = d + 16 | 0;
                                                            c = vu(a[f >> 2] | 0) | 0;
                                                            if ((c | 0 ? (k = a[c + 116 >> 2] | 0, k | 0) : 0) ? (_l(k, u), r[l + 123 >> 0] = 0, a[1632] | 0) : 0) {
                                                                w = a[l + 136 >> 2] | 0;
                                                                gS(T, 0, 16) | 0;
                                                                a[T >> 2] = a[l + 60 >> 2];
                                                                a[b >> 2] = a[f >> 2];
                                                                w = a[w + 84 >> 2] | 0;
                                                                Rs(w >>> 16 & 65535, w & 65535, o, e);
                                                                ei(0, T)
                                                            }
                                                            zu(a[t >> 2] | 0, 2);
                                                            UB(vu(a[f >> 2] | 0) | 0);
                                                            a[_ >> 2] = a[d + 24 >> 2];
                                                            w = 37
                                                        }
                                                        break
                                                    }
                                                default:
                                                    {
                                                        u = v;w = 38
                                                    }
                                            }
                                        } while (0);
                                        if ((w | 0) == 37) {
                                            w = 0;
                                            Pu(d);
                                            u = v;
                                            l = 1
                                        } else if ((w | 0) == 38) {
                                            w = 0;
                                            tS(A, d + 4 | 0)
                                        }
                                        v = u;
                                        m = m + 1 | 0
                                    }
                                    if (!((l | 0) == 0 & (v | 0) != 0)) {
                                        c = KE(a[g >> 2] | 0) | 0;
                                        f = 0;
                                        while (1) {
                                            if ((f | 0) == (c | 0)) break e;
                                            rS(A, E);
                                            t = a[a[E >> 2] >> 2] | 0;
                                            switch (a[t >> 2] | 0) {
                                                case 2:
                                                    {
                                                        u = vu(a[t + 12 >> 2] | 0) | 0;
                                                        if (!u) w = 52;
                                                        else {
                                                            mu(u, 0, 40);
                                                            w = 52
                                                        }
                                                        break
                                                    }
                                                case 6:
                                                    {
                                                        l = vu(a[t + 12 >> 2] | 0) | 0;u = t + 20 | 0;
                                                        if (l | 0) ml(l, a[u >> 2] | 0, 0);sl(a[u >> 2] | 0);a[u >> 2] = 0;w = 52;
                                                        break
                                                    }
                                                case 8:
                                                    {
                                                        l = vu(a[t + 12 >> 2] | 0) | 0;u = t + 20 | 0;
                                                        if (l | 0) VB(l, a[u >> 2] | 0, 0);sl(a[u >> 2] | 0);a[u >> 2] = 0;w = 52;
                                                        break
                                                    }
                                                default:
                                                    tS(A, t + 4 | 0)
                                            }
                                            if ((w | 0) == 52) {
                                                w = 0;
                                                Pu(t)
                                            }
                                            f = f + 1 | 0
                                        }
                                    }
                                }
                            }
                        } while (0);
                        p = S;
                        return
                    }

                    function UB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = p;
                        p = p + 16 | 0;
                        i = t;
                        e = e + 48 | 0;
                        rS(e, i);
                        tS(e, a[i >> 2] | 0);
                        p = t;
                        return
                    }

                    function VB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        r = e + 112 | 0;
                        if ((i | 0) != 0 & (a[r >> 2] | 0) != 0 ? (s = bu() | 0, (s | 0) != 0) : 0) {
                            a[s >> 2] = 8;
                            i = Co(e) | 0;
                            a[s + 12 >> 2] = i;
                            a[s + 16 >> 2] = i;
                            a[s + 20 >> 2] = t;
                            gu(a[r >> 2] | 0, s)
                        } else XB(a[e + 72 >> 2] | 0, a[t + 12 >> 2] & 65535, +h[t + 16 >> 2], +h[t + 20 >> 2], a[t + 24 >> 2] | 0, +h[t + 28 >> 2], n[t + 32 >> 1] | 0);
                        return
                    }

                    function XB(e, t, i, r, n, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        n = n | 0;
                        s = +s;
                        o = o | 0;
                        var u = 0;
                        e: do {
                            if (e | 0) {
                                e = a[e + 8 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) break e;
                                    u = a[e >> 2] | 0;
                                    if (!(a[u >> 2] | 0)) jB(u, t, i, r, n, s, o);
                                    else GB(u, t, i, r, n, s, o);
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function jB(e, t, i, r, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        s = s | 0;
                        o = +o;
                        u = u | 0;
                        var h = 0;
                        e: do {
                            if (u << 16 >> 16 == -1) $B(a[e + 92 >> 2] | 0, t, i, r, s, o);
                            else {
                                e = a[e + 116 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) break e;
                                    h = a[e >> 2] | 0;
                                    if ((n[h + 94 >> 1] | 0) == u << 16 >> 16) $B(a[h + 8 >> 2] | 0, t, i, r, s, o);
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function GB(e, t, i, r, n, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        n = n | 0;
                        s = +s;
                        o = o | 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            jB(a[e >> 2] | 0, t, i, r, n, s, o);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function $B(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        n = n | 0;
                        a = +a;
                        var s = 0,
                            o = 0,
                            u = 0.0,
                            l = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        do {
                            if (Sl(e, t & 65535, s) | 0)
                                if (r < 9.999999747378752e-05) {
                                    sE();
                                    break
                                } else {
                                    u = +h[s >> 2];
                                    s = ~~+M(+((i - u) / r * 1.0e3)) >>> 0;
                                    l = Wo() | 0;
                                    l = dM(l | 0, P | 0, 1e3, 0) | 0;
                                    Pl(e, e + 204 | 0, t, l, u, i, s, n, a, 0);
                                    break
                                }
                        } while (0);
                        p = o;
                        return
                    }

                    function HB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        r = vu(e) | 0;
                        if (((r | 0) != 0 ? (Ih(r) | 0) == 2 : 0) ? (n = nC(e) | 0, (n | 0) != 0) : 0) e = WB(n, t, i) | 0;
                        else e = 0;
                        return e | 0
                    }

                    function WB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = (t | 0) == 0 ? n : t;
                        t = r;
                        a[t >> 2] = -1;
                        a[t + 4 >> 2] = -1;
                        t = (i | 0) == 0 ? n + 8 | 0 : i;
                        a[t >> 2] = -1;
                        if (!e) {
                            sE();
                            t = 0
                        } else t = ta(e, r, t) | 0;
                        p = n;
                        return t | 0
                    }

                    function YB(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 8 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 0;
                                break
                            }
                            e = a[t >> 2] | 0;
                            e = a[e + ((a[e >> 2] | 0) == 0 ? 4 : 12) >> 2] | 0;
                            if (e | 0) break;
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function zB(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        n = u;
                        a[n >> 2] = 0;
                        s = e + 8 | 0;
                        t = a[s >> 2] | 0;
                        ZE(t) | 0;
                        r = 0;
                        e: while (1) {
                            while (1) {
                                if (!t) break e;
                                i = a[t + 4 >> 2] | 0;
                                o = a[t >> 2] | 0;
                                if (a[o >> 2] | 0) break;
                                if (qB(o, r, e, n) | 0) {
                                    t = i;
                                    continue
                                }
                                iS(s, t);
                                Ad(o);
                                t = i
                            }
                            if (JB(o, e, n) | 0) {
                                t = i;
                                r = o;
                                continue
                            }
                            iS(s, t);
                            yd(o);
                            t = i;
                            r = o
                        }
                        s = a[n >> 2] | 0;
                        o = e + 24 | 0;
                        n = o;
                        s = aM(a[n >> 2] | 0, a[n + 4 >> 2] | 0, s | 0, ((s | 0) < 0) << 31 >> 31 | 0) | 0;
                        a[o >> 2] = s;
                        a[o + 4 >> 2] = P;
                        o = (KE(a[e + 16 >> 2] | 0) | 0) != 0 & 1;
                        p = u;
                        return o | 0
                    }

                    function qB(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        n = Ev() | 0;
                        if (!n) e = 1;
                        else {
                            e = ZB(e, t, i, r, n) | 0;
                            Pv(n)
                        }
                        return e | 0
                    }

                    function JB(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        m = p;
                        p = p + 16 | 0;
                        l = m;
                        f = e + 20 | 0;
                        n = a[f >> 2] | 0;
                        ZE(n) | 0;
                        a[l >> 2] = 0;
                        c = e + 36 | 0;
                        d = e + 40 | 0;
                        v = e + 12 | 0;
                        s = e + 28 | 0;
                        while (1) {
                            if (!n) break;
                            u = a[n >> 2] | 0;
                            _ = (qB(u, e, t, l) | 0) == 0;
                            h = a[n + 4 >> 2] | 0;
                            if (!_) {
                                n = h;
                                continue
                            }
                            iS(f, n);
                            do {
                                if ((a[c >> 2] | 0) == (u | 0)) {
                                    if (a[d >> 2] | 0) {
                                        QB(e, a[v >> 2] | 0);
                                        break
                                    }
                                    e: do {
                                        if (KE(a[s >> 2] | 0) | 0 ? (o = a[f >> 2] | 0, ZE(o) | 0) : 0) {
                                            n = o;
                                            while (1) {
                                                _ = a[n >> 2] | 0;
                                                if ((r[_ + 187 >> 0] | 0) == 0 ? (r[_ + 68 >> 0] | 0) == 0 : 0) break;
                                                n = a[n + 4 >> 2] | 0;
                                                if (!n) break e
                                            }
                                            NE()
                                        }
                                    } while (0);
                                    a[c >> 2] = 0
                                }
                            } while (0);
                            Ad(u);
                            n = h
                        }
                        a[i >> 2] = a[l >> 2];
                        _ = (KE(a[s >> 2] | 0) | 0) != 0 & 1;
                        p = m;
                        return _ | 0
                    }

                    function QB(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            u = 0,
                            h = 0;
                        u = e + 40 | 0;
                        s = a[u >> 2] | 0;
                        if (s | 0) {
                            h = e + 36 | 0;
                            i = a[h >> 2] | 0;
                            if ((n[s + 176 >> 1] | 0) == (n[i + 176 >> 1] | 0) ? (n[s + 180 >> 1] | 0) == 11 : 0) {
                                n[s + 178 >> 1] = n[i + 178 >> 1] | 0;
                                fv(s, i);
                                i = a[h >> 2] | 0
                            }
                            switch (r[i + 191 >> 0] | 0) {
                                case 0:
                                    {
                                        Vh(i, 1, 43);
                                        break
                                    }
                                case 1:
                                    {
                                        Vh(i, 2, 44);
                                        break
                                    }
                                default:
                                    NE()
                            }
                            r[(a[h >> 2] | 0) + 187 >> 0] = 1;
                            s = a[u >> 2] | 0;
                            a[h >> 2] = s;
                            a[u >> 2] = 0;
                            r[e + 53 >> 0] = 0;
                            u = a[t + 60 >> 2] | 0;
                            h = Co(t) | 0;
                            lv(u, h, o[s + 176 >> 1] | 0)
                        }
                        return
                    }

                    function ZB(e, t, i, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        u = u | 0;
                        var f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0.0;
                        z = p;
                        p = p + 80 | 0;
                        D = z + 72 | 0;
                        E = z + 68 | 0;
                        V = z + 8 | 0;
                        L = z;
                        F = e + 116 | 0;
                        x = a[F >> 2] | 0;
                        w = ZE(x) | 0;
                        a[D >> 2] = w;
                        a[E >> 2] = 0;
                        X = Fa() | 0;
                        a[o >> 2] = 0;
                        B = u + 48 | 0;
                        a[B >> 2] = a[e + 20 >> 2];
                        U = e + 4 | 0;
                        H = u + 56 | 0;
                        a[H >> 2] = a[U >> 2];
                        a[u + 52 >> 2] = i;
                        n[u + 6 >> 1] = -1;
                        f = 0;
                        while (1) {
                            if ((f | 0) == 8) break;
                            r[u + 104 + f >> 0] = -1;
                            f = f + 1 | 0
                        }
                        r[u + 112 >> 0] = 0;
                        n[u + 124 >> 1] = -1;
                        a[u + 156 >> 2] = s[e + 192 >> 0];
                        a[u + 16 >> 2] = e;
                        gS(u + 68 | 0, 255, X << 1) | 0;
                        n[u + 160 >> 1] = -1;
                        f = a[1698] | 0;
                        n[f + 172 >> 1] = 0;
                        g = e + 32 | 0;
                        R = g;
                        if ((a[R >> 2] | 0) == 0 & (a[R + 4 >> 2] | 0) == 0) {
                            R = f + 152 | 0;
                            c = a[R + 4 >> 2] | 0;
                            f = g;
                            a[f >> 2] = a[R >> 2];
                            a[f + 4 >> 2] = c;
                            f = e + 56 | 0;
                            c = a[f >> 2] | 0;
                            if ((c | 0) != -1) a[o >> 2] = (a[o >> 2] | 0) + c;
                            a[f >> 2] = 0;
                            C = 1
                        } else C = 0;
                        R = e + 72 | 0;
                        T = e + 52 | 0;
                        f = a[T >> 2] | 0;
                        if (!(r[R >> 0] | 0))
                            if (!f) v = 0;
                            else v = KB(e) | 0;
                        else {
                            a[u + 12 >> 2] = f;
                            if (!(a[e + 56 >> 2] | 0)) {
                                a[o >> 2] = f * 1e3;
                                v = 0
                            } else v = 0
                        }
                        _ = (a[(a[H >> 2] | 0) + 76 >> 2] | 0) != 0 & 1;
                        d = Wo() | 0;
                        c = P;
                        O = e + 92 | 0;
                        FC(a[O >> 2] | 0, V);
                        f = a[2065] | 0;
                        ho(f);
                        gO(f, V);
                        eN(f);
                        a[L >> 2] = 0;
                        f = a[2065] | 0;
                        if (!(FO(a[f + 284 >> 2] | 0, L) | 0)) m = e + 100 | 0;
                        else {
                            m = e + 100 | 0;
                            r[m >> 0] = a[L >> 2]
                        }
                        b = e + 96 | 0;
                        tN(a[f + 288 >> 2] | 0, b);
                        k = e + 184 | 0;
                        r[k >> 0] = 0;
                        if (!(s[m >> 0] | _)) {
                            if (!v) {
                                a[T >> 2] = 0;
                                f = a[1698] | 0;
                                _ = d
                            } else {
                                f = g;
                                a[f >> 2] = d;
                                a[f + 4 >> 2] = c;
                                f = a[1698] | 0;
                                c = f + 152 | 0;
                                _ = a[c >> 2] | 0;
                                c = a[c + 4 >> 2] | 0
                            }
                            m = e + 152 | 0;
                            l[m >> 3] = +KI(+l[m >> 3] + +l[f + 160 >> 3] * +h[94], L);
                            m = e + 40 | 0;
                            v = m;
                            d = a[v >> 2] | 0;
                            v = a[v + 4 >> 2] | 0;
                            f = e + 48 | 0;
                            if ((d | 0) == 0 & (v | 0) == 0) f = a[f >> 2] | 0;
                            else {
                                y = sM(d | 0, v | 0, _ | 0, c | 0) | 0;
                                a[f >> 2] = y;
                                f = y
                            }
                            q = +l[L >> 3];
                            y = aM(_ | 0, c | 0, ~~q >>> 0 | 0, (+M(q) >= 1.0 ? q > 0.0 ? ~~+$(+I(q / 4294967296.0), 4294967295.0) >>> 0 : ~~+j((q - +(~~q >>> 0)) / 4294967296.0) >>> 0 : 0) | 0) | 0;
                            d = m;
                            a[d >> 2] = y;
                            a[d + 4 >> 2] = P;
                            q = q - +(f | 0);
                            l[L >> 3] = q;
                            f = ~~(q * +h[b >> 2]);
                            d = a[o >> 2] | 0;
                            a[o >> 2] = d + f;
                            d = 0 - d | 0;
                            if ((d | 0) > 0) iN(a[O >> 2] | 0, d);
                            d = n[e + 66 >> 1] | 0;
                            if (d << 16 >> 16 != -1) {
                                go(a[O >> 2] | 0, (d & 65535) + 2e3 & 65535, +((a[e + 56 >> 2] | 0) / 1e3 | 0 | 0));
                                r[k >> 0] = oF(a[O >> 2] | 0) | 0
                            }
                            d = _
                        } else {
                            f = e + 40 | 0;
                            a[f >> 2] = 0;
                            a[f + 4 >> 2] = 0;
                            f = 0
                        }
                        y = g;
                        a[y >> 2] = d;
                        a[y + 4 >> 2] = c;
                        e: do {
                            if (((t | 0) != 0 ? (r[e + 187 >> 0] | 0) == 0 : 0) ? (r[e + 68 >> 0] | 0) == 0 : 0) {
                                switch (r[e + 189 >> 0] | 0) {
                                    case 1:
                                        break;
                                    case 0:
                                        {
                                            g = 1;d = 0;v = 0;
                                            break e
                                        }
                                    default:
                                        {
                                            g = 0;d = 0;v = 0;
                                            break e
                                        }
                                }
                                c = a[e + 168 >> 2] | 0;
                                b = n[e + 174 >> 1] | 0;
                                g = b << 16 >> 16;
                                v = (c >>> 0) / (g >>> 0) | 0;
                                y = a[e + 56 >> 2] | 0;
                                if (b << 16 >> 16 > 0) {
                                    _ = c >>> 0 < g >>> 0 ? 1 : v;
                                    c = a[o >> 2] | 0;
                                    b = c + y | 0;
                                    m = (b >>> 0) / (_ >>> 0) | 0;
                                    if (((y >>> 0) / (_ >>> 0) | 0) >>> 0 < m >>> 0) {
                                        d = (a[e + 48 >> 2] | 0) + c - ((b >>> 0) % (_ >>> 0) | 0) | 0;
                                        v = 0;
                                        m = (r[e + 193 >> 0] | 0) == 1 ? m : 0
                                    } else {
                                        d = 0;
                                        v = 1;
                                        m = 0
                                    }
                                    c = b >>> 0 > (G(_, g + -1 | 0) | 0) >>> 0 & (r[e + 190 >> 0] | 0) != 1 & 1;
                                    if (v) {
                                        g = c;
                                        v = 0;
                                        break
                                    }
                                } else {
                                    d = a[o >> 2] | 0;
                                    if ((r[e + 193 >> 0] | 0) == 1) {
                                        c = 0;
                                        m = (y >>> 0) / (v >>> 0) | 0
                                    } else {
                                        c = 0;
                                        m = 0
                                    }
                                }
                                if ((r[t + 53 >> 0] | 0) == 1) {
                                    if ((n[(a[t + 40 >> 2] | 0) + 180 >> 1] | 0) != 12) {
                                        g = c;
                                        v = 0;
                                        break
                                    }
                                    QB(t, a[t + 12 >> 2] | 0);
                                    g = c;
                                    v = 0;
                                    break
                                }
                                y = a[(a[H >> 2] | 0) + 96 >> 2] | 0;
                                v = y & 65535;
                                _ = u + 24 | 0;
                                a[_ >> 2] = e;
                                if ((y & 65535 | 0) != 65535 ? (A = e + 172 | 0, (n[A >> 1] | 0) > 0) : 0) {
                                    n[A >> 1] = 0;
                                    v = -1
                                }
                                v = (ov(u, t, 0 - d | 0, 12, v, m) | 0) & 255;
                                a[E >> 2] = v;
                                a[_ >> 2] = 0;
                                g = c
                            } else {
                                g = 0;
                                d = 0;
                                v = 0
                            }
                        } while (0);
                        if (!w) c = a[o >> 2] | 0;
                        else c = 0;
                        e: do {
                            if (!v) {
                                a[V >> 2] = 0;
                                if (r[e + 186 >> 0] | 0) rN(X, a[e + 112 >> 2] | 0, a[H >> 2] | 0, a[O >> 2] | 0);
                                _ = 1;
                                b = c;
                                v = x;
                                while (1) {
                                    if (!v) break;
                                    m = a[v >> 2] | 0;
                                    c = a[(a[H >> 2] | 0) + 76 >> 2] | 0;
                                    if (!(c & 1)) d = 0;
                                    else d = (a[m + 80 >> 2] | 0) == 0;
                                    if ((a[m + 20 >> 2] | 0) != 0 & ((c & 2 | 0) != 0 | d)) c = 0;
                                    else c = nN(m, t, e, u, s[R >> 0] | 0, a[o >> 2] | 0, _, V, E, g) | 0;
                                    w = (_ | 0) == 0 ? b : c;
                                    aN(m, f, u, t, e);
                                    x = a[v + 4 >> 2] | 0;
                                    a[D >> 2] = x;
                                    _ = 0;
                                    b = w;
                                    v = x
                                }
                                c = e + 56 | 0;
                                a[c >> 2] = (a[c >> 2] | 0) + b;
                                if (r[R >> 0] | 0) f = (a[o >> 2] | 0) + f | 0;
                                a[o >> 2] = f;
                                if ((b | 0) < 0 ? (S = n[e + 66 >> 1] | 0, S << 16 >> 16 != -1) : 0) {
                                    go(a[O >> 2] | 0, (S & 65535) + 2e3 & 65535, +((a[c >> 2] | 0) / 1e3 | 0 | 0));
                                    r[k >> 0] = oF(a[O >> 2] | 0) | 0
                                }
                                if (((a[c >> 2] | 0) / 1e3 | 0 | 0) >= (a[T >> 2] | 0)) a[T >> 2] = 0;
                                if (!(n[(a[1698] | 0) + 172 >> 1] | 0)) vp(-1);
                                else np(a[H >> 2] | 0, e)
                            } else switch (r[e + 191 >> 0] | 0) {
                                case 0:
                                    if ((d | 0) < 1) {
                                        Vh(e, 1, 43);
                                        break e
                                    } else {
                                        sN(e, d);
                                        Vh(e, 1, 71);
                                        break e
                                    }
                                case 1:
                                    {
                                        Vh(e, 2, 44);
                                        break e
                                    }
                                default:
                                    {
                                        NE();
                                        break e
                                    }
                            }
                        } while (0);
                        m = e + 24 | 0;
                        if ((a[m >> 2] | 0) == 8) {
                            c = a[F >> 2] | 0;
                            ZE(c) | 0;
                            f = 0;
                            while (1) {
                                if (!c) break;
                                o = a[c >> 2] | 0;
                                oN(o, e, u);
                                o = (KE(a[o + 56 >> 2] | 0) | 0) + f | 0;
                                f = o;
                                c = a[c + 4 >> 2] | 0
                            }
                            a[D >> 2] = 0;
                            v = f
                        } else v = 0;
                        f = u + 36 | 0;
                        rS(f, D);
                        while (1) {
                            c = a[D >> 2] | 0;
                            if (!c) break;
                            ao(a[c >> 2] | 0);
                            rS(f, D)
                        }
                        a[V >> 2] = 0;
                        c = e + 8 | 0;
                        f = a[c >> 2] | 0;
                        ZE(f) | 0;
                        while (1) {
                            if (!f) break;
                            d = a[f >> 2] | 0;
                            f = a[f + 4 >> 2] | 0;
                            if (!(a[d >> 2] | 0)) {
                                if (qB(d, 0, i, V) | 0) continue;
                                iS(c, d + 80 | 0);
                                Ad(d);
                                continue
                            } else {
                                if (JB(d, i, V) | 0) continue;
                                iS(c, d + 4 | 0);
                                yd(d);
                                continue
                            }
                        }
                        e: do {
                            if ((a[m >> 2] | 0) == 8) {
                                f = e + 124 | 0;
                                if (!v) {
                                    d = KE(a[f >> 2] | 0) | 0;
                                    c = 0;
                                    while (1) {
                                        if ((c | 0) >= (d | 0)) break e;
                                        rS(F, D);
                                        v = a[D >> 2] | 0;
                                        if (!v) break e;
                                        Wd(a[v >> 2] | 0);
                                        c = c + 1 | 0
                                    }
                                }
                            } else {
                                f = e + 124 | 0;
                                d = KE(a[f >> 2] | 0) | 0;
                                c = 0;
                                while (1) {
                                    if ((c | 0) >= (d | 0)) break e;
                                    rS(F, D);
                                    v = a[D >> 2] | 0;
                                    if (!v) break e;
                                    m = a[v >> 2] | 0;
                                    if (!(uN(m) | 0)) Wd(m);
                                    else tS(F, v);
                                    c = c + 1 | 0
                                }
                            }
                        } while (0);
                        do {
                            if ((KE(a[f >> 2] | 0) | 0) == 0 ? (KE(a[e + 16 >> 2] | 0) | 0) == 0 : 0) {
                                if (r[e + 71 >> 0] | 0 ? (r[e + 68 >> 0] | 0) == 0 : 0) {
                                    W = n[e + 64 >> 1] | 0;
                                    n[u >> 1] = W;
                                    a[e + 56 >> 2] = 0;
                                    Y = a[B >> 2] | 0;
                                    Ip(Y + 824 | 0, W, V, a[Y + 56 >> 2] | 0);
                                    pf(a[(a[B >> 2] | 0) + 1388 >> 2] | 0, a[V + 24 >> 2] | 0, L);
                                    gv(L, u);
                                    Sd(u, V, 0, 0, e);
                                    Pd(u, n[V + 38 >> 1] | 0, n[V + 40 >> 1] | 0, e);
                                    Y = 119;
                                    break
                                }
                                if ((C | 0) == 1 ? (N = a[H >> 2] | 0, (a[N + 76 >> 2] & 2 | 0) == 0) : 0) {
                                    Tu(N);
                                    f = 0;
                                    while (1) {
                                        c = a[H >> 2] | 0;
                                        d = c + 131 | 0;
                                        v = (r[d >> 0] | 0) == 1;
                                        if ((f | 0) >= (X | 0)) break;
                                        if (v ? (W = n[(a[c + 20 >> 2] | 0) + (f << 1) >> 1] | 0, W << 16 >> 16 != -1) : 0) fu(W);
                                        f = f + 1 | 0
                                    }
                                    if (v) {
                                        r[d >> 0] = 2;
                                        f = 0
                                    } else f = 0
                                } else f = 0
                            } else Y = 119
                        } while (0);
                        if ((Y | 0) == 119) {
                            f = e + 69 | 0;
                            if (r[f >> 0] | 0) {
                                Y = a[O >> 2] | 0;
                                e: do {
                                    if (no(+h[Y + 244 >> 2], a[Y + 284 >> 2] | 0, V, 1) | 0) switch (r[f >> 0] | 0) {
                                        case 1:
                                            {
                                                if (hN(a[(a[O >> 2] | 0) + 204 >> 2] | 0, 146) | 0) break e;lN(Co(a[U >> 2] | 0) | 0, 1);r[f >> 0] = 0;
                                                break e
                                            }
                                        case 2:
                                            {
                                                if (hN(a[(a[O >> 2] | 0) + 204 >> 2] | 0, 146) | 0) break e;r[f >> 0] = 0;
                                                break e
                                            }
                                        case 3:
                                            {
                                                if (hN(a[(a[O >> 2] | 0) + 204 >> 2] | 0, 146) | 0) break e;Y = a[U >> 2] | 0;mu(Y, (a[Y + 112 >> 2] | 0) != 0 & 1, 69);r[f >> 0] = 0;
                                                break e
                                            }
                                        default:
                                            break e
                                    }
                                } while (0)
                            }
                            r[R >> 0] = 0;
                            f = 1
                        }
                        p = z;
                        return f | 0
                    }

                    function KB(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 116 >> 2] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 0;
                                break
                            }
                            e = kL(a[t >> 2] | 0) | 0;
                            if (e | 0) break;
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function eN(e) {
                        e = e | 0;
                        var t = 0;
                        t = e;
                        while (1) {
                            t = a[t + 32 >> 2] | 0;
                            if (!t) break;
                            wL(e, t);
                            xL(e, t);
                            MR(e, t)
                        }
                        return
                    }

                    function tN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        h[t >> 2] = 1.0;
                        if (e | 0 ? (i = a[e + 4 >> 2] | 0, (i | 0) != 2147483647) : 0) a[t >> 2] = i;
                        return
                    }

                    function iN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 248 | 0;
                        if ((a[i >> 2] | 0) != (t | 0)) {
                            a[i >> 2] = t;
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function rN(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        f = i + 20 | 0;
                        o = 0;
                        while (1) {
                            if (o >>> 0 >= ((ff() | 0) & 255) >>> 0) break;
                            c = t + (o << 4) | 0;
                            e: do {
                                if (r[t + (o << 4) + 3 >> 0] | 0) {
                                    u = t + (o << 4) + 8 | 0;
                                    h = t + (o << 4) + 12 | 0;
                                    i = 0;
                                    while (1) {
                                        if ((i | 0) == (e | 0)) break e;
                                        l = n[(a[f >> 2] | 0) + (i << 1) >> 1] | 0;
                                        if (l << 16 >> 16 != -1 ? AL(l, a[u >> 2] | 0) | 0 : 0) $c(s, n[h >> 1] | 0, c);
                                        i = i + 1 | 0
                                    }
                                }
                            } while (0);
                            o = o + 1 | 0
                        }
                        return
                    }

                    function nN(e, t, i, u, f, d, v, m, _, b) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        u = u | 0;
                        f = f | 0;
                        d = d | 0;
                        v = v | 0;
                        m = m | 0;
                        _ = _ | 0;
                        b = b | 0;
                        var g = 0,
                            y = 0,
                            A = 0.0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0.0,
                            L = 0.0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0,
                            Z = 0,
                            K = 0,
                            ee = 0,
                            te = 0,
                            ie = 0,
                            re = 0,
                            ne = 0,
                            ae = 0,
                            se = 0,
                            oe = 0,
                            ue = 0,
                            he = 0,
                            le = 0,
                            fe = 0,
                            ce = 0,
                            de = 0,
                            pe = 0,
                            ve = 0,
                            me = 0,
                            _e = 0,
                            be = 0,
                            ge = 0,
                            ye = 0,
                            Ae = 0,
                            we = 0,
                            xe = 0,
                            ke = 0,
                            Te = 0,
                            Ee = 0,
                            Se = 0,
                            Pe = 0,
                            Ie = 0,
                            Me = 0,
                            Ce = 0,
                            Oe = 0,
                            Re = 0,
                            De = 0,
                            Fe = 0,
                            Be = 0,
                            Ne = 0,
                            Le = 0,
                            Ue = 0,
                            Ve = 0,
                            Xe = 0,
                            je = 0,
                            Ge = 0,
                            $e = 0,
                            He = 0,
                            We = 0,
                            Ye = 0,
                            ze = 0,
                            qe = 0;
                        qe = p;
                        p = p + 112 | 0;
                        Oe = qe + 96 | 0;
                        Re = qe + 84 | 0;
                        De = qe + 72 | 0;
                        Fe = qe;
                        Be = qe + 44 | 0;
                        Ne = qe + 40 | 0;
                        Le = qe + 36 | 0;
                        Ue = qe + 32 | 0;
                        a[Oe >> 2] = 0;
                        a[De >> 2] = 0;
                        a[De + 4 >> 2] = 0;
                        a[De + 8 >> 2] = 0;
                        B = Fa() | 0;
                        JE(Re);
                        Ve = e + 80 | 0;
                        a[Ve >> 2] = (a[Ve >> 2] | 0) + d;
                        Xe = u + 56 | 0;
                        g = a[Xe >> 2] | 0;
                        if ((g | 0) != 0 ? (y = g + 152 | 0, (r[y >> 0] | 0) != -1) : 0) nE(u + 104 | 0, 8, y, 8);
                        else nE(u + 104 | 0, 8, e + 102 | 0, 8);
                        do {
                            if (i) {
                                g = a[m >> 2] | 0;
                                if (!g)
                                    if ((n[i + 172 >> 1] | 0) == 0 ? (r[i + 68 >> 0] | 0) == 0 : 0) {
                                        a[Fe >> 2] = 9;
                                        y = (b | 0) != 0;
                                        e: do {
                                            if (y) {
                                                if ((n[i + 178 >> 1] | 0) != 1) {
                                                    a[Fe >> 2] = 11;
                                                    break
                                                }
                                                switch (r[i + 190 >> 0] | 0) {
                                                    case 0:
                                                        {
                                                            a[Fe >> 2] = 10;
                                                            break e
                                                        }
                                                    case 2:
                                                        {
                                                            a[Fe >> 2] = 1;
                                                            break e
                                                        }
                                                    case 3:
                                                        {
                                                            a[Fe >> 2] = 2;
                                                            break e
                                                        }
                                                    case 4:
                                                        {
                                                            a[Fe >> 2] = 3;
                                                            break e
                                                        }
                                                    case 5:
                                                        {
                                                            a[Fe >> 2] = 4;
                                                            break e
                                                        }
                                                    default:
                                                        break e
                                                }
                                            }
                                        } while (0);
                                        Me = u + 24 | 0;
                                        a[Me >> 2] = i;
                                        Ce = u + 28 | 0;
                                        a[Ce >> 2] = e;
                                        g = sv(u, n[t + 48 >> 1] | 0, Fe, a[(a[Xe >> 2] | 0) + 96 >> 2] & 65535) | 0;
                                        a[m >> 2] = g;
                                        a[Me >> 2] = 0;
                                        a[Ce >> 2] = 0;
                                        if (y & (g | 0) == 1) {
                                            g = (a[Fe >> 2] | 0) != 11 & 1;
                                            a[m >> 2] = g
                                        }
                                    } else g = 0;
                                switch (r[e + 112 >> 0] | 0) {
                                    case 1:
                                        {
                                            g = (g | 0) != 0;
                                            break
                                        }
                                    case 2:
                                        {
                                            g = (r[i + 188 >> 0] | 0) != 0;
                                            break
                                        }
                                    default:
                                        g = 1
                                }
                                b = g & 1;
                                x = e + 98 | 0;
                                k = n[x >> 1] | 0;
                                if (k << 16 >> 16 != -1) {
                                    g = e + 32 | 0;
                                    Ce = a[g >> 2] | 0;
                                    if (Ce | 0 ? a[Ce + 4 >> 2] | 0 : 0) {
                                        T = a[u + 48 >> 2] | 0;
                                        E = CR(T, k) | 0;
                                        S = Be + 4 | 0;
                                        I = Be + 8 | 0;
                                        M = Be + 12 | 0;
                                        C = i + 56 | 0;
                                        O = Be + 26 | 0;
                                        R = Be + 24 | 0;
                                        D = e + 8 | 0;
                                        F = i + 96 | 0;
                                        w = T + 1808 | 0;
                                        m = (C_(a[(a[g >> 2] | 0) + 4 >> 2] | 0) | 0) + 236 | 0;
                                        y = 0;
                                        g = 0;
                                        while (1) {
                                            if ((y & 65535) >= (E & 65535)) break;
                                            if ((IN(a[w >> 2] | 0, k, y, Fe) | 0) == 1) {
                                                MN(T, n[Fe >> 1] | 0, Be);
                                                A = +YR(a[Be >> 2] | 0, a[S >> 2] | 0, a[I >> 2] | 0, (a[M >> 2] | 0) >>> 2 & 65535, +(((a[C >> 2] | 0) + d | 0) / 1e3 | 0 | 0), 1.0e4);
                                                switch (r[O >> 0] | 0) {
                                                    case 0:
                                                        {
                                                            sE();
                                                            break
                                                        }
                                                    case 1:
                                                        {
                                                            EO(a[m >> 2] | 0, 34, o[R >> 1] | 0, A);g = 1;
                                                            break
                                                        }
                                                    default:
                                                        {}
                                                }
                                            } else go(a[D >> 2] | 0, (o[x >> 1] | 0) + 2e3 & 65535, (+l[(a[1698] | 0) + 160 >> 3] * +h[F >> 2] + +(a[C >> 2] | 0)) / 1.0e3);
                                            y = y + 1 << 16 >> 16
                                        }
                                        if (g | 0) MF(a[m >> 2] | 0, 34);
                                        break
                                    }
                                    go(a[e + 8 >> 2] | 0, (k & 65535) + 2e3 & 65535, (+l[(a[1698] | 0) + 160 >> 3] * +h[i + 96 >> 2] + +(a[i + 56 >> 2] | 0)) / 1.0e3)
                                }
                            } else b = 1
                        } while (0);
                        if (r[e + 114 >> 0] | 0) rN(B, a[e >> 2] | 0, a[Xe >> 2] | 0, a[e + 8 >> 2] | 0);
                        y = e + 88 | 0;
                        g = a[y >> 2] | 0;
                        if ((g | 0) != 2147483647) {
                            g = g - d | 0;
                            if ((g | 0) < 1) {
                                wN(e, 73);
                                g = 2147483647
                            }
                            a[y >> 2] = g
                        }
                        ye = e + 68 | 0;
                        e: do {
                            switch (a[ye >> 2] | 0) {
                                case 0:
                                case 3:
                                    {
                                        g = d;
                                        break
                                    }
                                default:
                                    {
                                        if (!(r[e + 110 >> 0] | 0))
                                            if ((a[Ve >> 2] | 0) > -1) {
                                                a[Oe >> 2] = 1;
                                                y = 1
                                            } else y = 0;
                                        else {
                                            jh(e, 0, 51);
                                            a[ye >> 2] = 3;
                                            y = 0
                                        }
                                        Ae = e + 44 | 0;we = i + 68 | 0;xe = i + 71 | 0;ke = i + 48 | 0;Te = e + 48 | 0;Ee = e + 98 | 0;Se = e + 8 | 0;Pe = i + 56 | 0;Ie = u + 12 | 0;Me = (v | 0) == 0;Ce = i + 96 | 0;D = (b | 0) == 0;F = e + 112 | 0;B = i + 172 | 0;V = u + 20 | 0;X = e + 94 | 0;j = u + 124 | 0;$ = u + 128 | 0;H = u + 129 | 0;W = e + 126 | 0;Y = u + 126 | 0;z = u + 120 | 0;q = ((d | 0) < 0) << 31 >> 31;J = i + 4 | 0;Q = Fe + 8 | 0;Z = Fe + 16 | 0;K = Fe + 20 | 0;ee = Fe + 24 | 0;te = Fe + 12 | 0;ie = u + 48 | 0;re = e + 20 | 0;ne = u + 16 | 0;ae = Fe + 4 | 0;se = i + 20 | 0;oe = u + 4 | 0;ue = u + 32 | 0;he = e + 32 | 0;le = Fe + 4 | 0;fe = Fe + 8 | 0;ce = Fe + 12 | 0;de = Fe + 4 | 0;pe = Fe + 8 | 0;ve = Fe + 12 | 0;me = e + 118 | 0;_e = e + 124 | 0;be = e + 120 | 0;ge = Be + 4 | 0;R = De + 8 | 0;b = f;g = d;m = 0;A = 1.0;
                                        while (1) {
                                            O = b;
                                            C = m;
                                            while (1) {
                                                if (!y) break e;
                                                I = a[Ae >> 2] | 0;
                                                w = I + 2 | 0;
                                                a[Ae >> 2] = w;
                                                M = wE(I) | 0;
                                                y = I + 3 | 0;
                                                a[Ae >> 2] = y;
                                                w = r[w >> 0] | 0;
                                                b = w & 255;
                                                t: do {
                                                    switch (M << 16 >> 16) {
                                                        case 4e3:
                                                            {
                                                                np(a[Xe >> 2] | 0, i);jh(e, 0, 49);
                                                                if ((r[we >> 0] | 0) == 0 ? (r[xe >> 0] | 0) == 0 : 0) {
                                                                    r[we >> 0] = 1;
                                                                    U = 60
                                                                } else U = 60;
                                                                break
                                                            }
                                                        case 0:
                                                            {
                                                                U = 60;
                                                                break
                                                            }
                                                        case 3999:
                                                            {
                                                                CN(a[Xe >> 2] | 0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 4050:
                                                            {
                                                                ON(e, t, i, u, (a[ke >> 2] | 0) + d | 0, O, v, _, Oe);y = C;U = 309;
                                                                break
                                                            }
                                                        case 1201:
                                                            {
                                                                w = (w & 255) >>> 2 & 255;m = 0;
                                                                while (1) {
                                                                    if ((m | 0) >= (w | 0)) {
                                                                        y = C;
                                                                        U = 309;
                                                                        break t
                                                                    }
                                                                    x = a[Ae >> 2] | 0;
                                                                    U = x + 2 | 0;
                                                                    a[Ae >> 2] = U;
                                                                    y = wE(x) | 0;
                                                                    a[Ae >> 2] = x + 4;
                                                                    U = wE(U) | 0;
                                                                    x = U << 16 >> 16;
                                                                    i: do {
                                                                        if (U << 16 >> 16) {
                                                                            U = a[Te >> 2] | 0;
                                                                            ZE(U) | 0;
                                                                            b = y & 65535;
                                                                            y = U;
                                                                            while (1) {
                                                                                if (!y) break;
                                                                                U = a[y >> 2] | 0;
                                                                                if ((a[U + 8 >> 2] | 0) == 2 ? (a[U + 16 >> 2] | 0) == (b | 0) : 0) break i;
                                                                                y = a[y + 4 >> 2] | 0
                                                                            }
                                                                            y = ud() | 0;
                                                                            if (y | 0) {
                                                                                a[y + 8 >> 2] = 2;
                                                                                a[y + 16 >> 2] = b;
                                                                                a[y + 20 >> 2] = x;
                                                                                a[y + 12 >> 2] = I;
                                                                                a[y + 56 >> 2] = e;
                                                                                tS(Te, y)
                                                                            }
                                                                        }
                                                                    } while (0);
                                                                    m = m + 1 | 0
                                                                }
                                                            }
                                                        case 1200:
                                                        case 1199:
                                                            {
                                                                b = I + 5 | 0;a[Ae >> 2] = b;m = wE(y) | 0;y = I + 9 | 0;a[Ae >> 2] = y;b = (xE(b) | 0) * 1e3 | 0;
                                                                if (M << 16 >> 16 == 1199) {
                                                                    a[Ae >> 2] = I + 11;
                                                                    w = b + ((wE(y) | 0) & 65535) | 0
                                                                } else w = b;y = a[Te >> 2] | 0;ZE(y) | 0;b = m & 65535;
                                                                while (1) {
                                                                    if (!y) {
                                                                        y = C;
                                                                        U = 309;
                                                                        break t
                                                                    }
                                                                    m = a[y >> 2] | 0;
                                                                    if ((a[m + 8 >> 2] | 0) == 2 ? (a[m + 16 >> 2] | 0) == (b | 0) : 0) break;
                                                                    y = a[y + 4 >> 2] | 0
                                                                }
                                                                x = m + 20 | 0;y = a[x >> 2] | 0;
                                                                if ((O | 0) != 0 | (y | 0) == 0) {
                                                                    iS(Te, m);
                                                                    Wh(m);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                a[Ae >> 2] = a[m + 12 >> 2];g = g - w | 0;b = n[Ee >> 1] | 0;
                                                                if (b << 16 >> 16 != -1) {
                                                                    go(a[Se >> 2] | 0, (b & 65535) + 2e3 & 65535, +(((a[Pe >> 2] | 0) + g | 0) / 1e3 | 0 | 0));
                                                                    y = a[x >> 2] | 0
                                                                }
                                                                if ((y | 0) > 0) {
                                                                    a[x >> 2] = y + -1;
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 997:
                                                            {
                                                                g = I + 7 | 0;a[Ae >> 2] = g;b = xE(y) | 0;a[Ae >> 2] = I + 9;g = (wE(g) | 0) & 65535;g = (((a[Ie >> 2] | 0) + b | 0) * 1e3 | 0) + g | 0;a[Ve >> 2] = g + (a[Ve >> 2] | 0);b = 1;y = C;U = 310;
                                                                break
                                                            }
                                                        case 998:
                                                        case 996:
                                                            {
                                                                b = bo(a[(a[Xe >> 2] | 0) + 60 >> 2] | 0) | 0;E = I + 5 | 0;a[Ae >> 2] = E;T = (wE(y) | 0) & 65535;a[Ae >> 2] = I + 7;g = wE(E) | 0;k = g & 65535;
                                                                if (Me) y = n[5386] | 0;
                                                                else {
                                                                    y = (lf(b, 0, (g << 16 >> 16 == -1 ? -1 : -2) + T | 0) | 0) & 65535;
                                                                    n[5386] = y
                                                                }
                                                                x = g << 16 >> 16 == -1;m = 0;w = 0;b = 0;
                                                                while (1) {
                                                                    if ((w | 0) == (T | 0)) break;
                                                                    g = a[Ae >> 2] | 0;
                                                                    a[Ae >> 2] = g + 4;
                                                                    g = xE(g) | 0;
                                                                    do {
                                                                        if (!b)
                                                                            if (x) {
                                                                                b = (w | 0) == (y & 65535 | 0);
                                                                                g = b ? g : m;
                                                                                b = b & 1;
                                                                                break
                                                                            } else {
                                                                                y = (w | 0) == (k | 0) ? (y & 65535) + 1 & 65535 : y;
                                                                                b = (w | 0) == (y & 65535 | 0);
                                                                                g = b ? g : m;
                                                                                b = b & 1;
                                                                                break
                                                                            }
                                                                        else g = m
                                                                    } while (0);
                                                                    m = g;
                                                                    w = w + 1 | 0
                                                                }
                                                                CE(y, E);g = ((a[Ie >> 2] | 0) + m | 0) * 1e3 | 0;a[Ve >> 2] = g + (a[Ve >> 2] | 0);b = 1;y = C;U = 310;
                                                                break
                                                            }
                                                        case 999:
                                                            {
                                                                a[Ae >> 2] = I + 7;g = xE(y) | 0;g = ((a[Ie >> 2] | 0) + g | 0) * 1e3 | 0;a[Ve >> 2] = g + (a[Ve >> 2] | 0);b = 1;y = C;U = 310;
                                                                break
                                                            }
                                                        case 2001:
                                                            {
                                                                a[Ae >> 2] = I + 7;y = xE(y) | 0;a[Ve >> 2] = (a[Ve >> 2] | 0) + (G(y, -1e3) | 0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 2005:
                                                            {
                                                                a[Ae >> 2] = I + 5;y = (wE(y) | 0) << 16 >> 16;a[Ve >> 2] = (a[Ve >> 2] | 0) - y;y = C;U = 309;
                                                                break
                                                            }
                                                        case 1989:
                                                            {
                                                                x = I + 7 | 0;a[Ae >> 2] = x;k = xE(y) | 0;w = I + 9 | 0;a[Ae >> 2] = w;x = wE(x) | 0;a[Ae >> 2] = I + 11;w = wE(w) | 0;y = a[Re >> 2] | 0;ZE(y) | 0;x = x & 65535;
                                                                while (1) {
                                                                    if (!y) break;
                                                                    b = a[y >> 2] | 0;
                                                                    m = b + 8 | 0;
                                                                    if ((a[m >> 2] | 0) == 6 ? (a[b + 16 >> 2] | 0) == (x | 0) : 0) {
                                                                        U = 106;
                                                                        break
                                                                    }
                                                                    y = a[y + 4 >> 2] | 0
                                                                }
                                                                if ((U | 0) == 106) {
                                                                    a[m >> 2] = 5;
                                                                    a[b + 20 >> 2] = k * 1e3;
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                b = ud() | 0;
                                                                if (!b) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    y = a[ke >> 2] | 0;
                                                                    if ((O | 0) == 0 ? (je = a[Ve >> 2] | 0, (je | 0) < (d | 0)) : 0) y = y + (~~(+(d - je | 0) / +h[Ce >> 2]) >>> 0) | 0;
                                                                    a[b + 8 >> 2] = 5;
                                                                    a[b + 16 >> 2] = x;
                                                                    a[b + 20 >> 2] = y;
                                                                    n[b + 32 >> 1] = w;
                                                                    a[b + 28 >> 2] = k;
                                                                    a[b + 36 >> 2] = 0;
                                                                    a[b + 56 >> 2] = e;
                                                                    tS(Re, b);
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 1990:
                                                            {
                                                                w = I + 7 | 0;a[Ae >> 2] = w;x = xE(y) | 0;a[Ae >> 2] = I + 9;w = wE(w) | 0;y = a[Re >> 2] | 0;ZE(y) | 0;w = w & 65535;
                                                                while (1) {
                                                                    if (!y) break;
                                                                    b = a[y >> 2] | 0;
                                                                    m = b + 8 | 0;
                                                                    if ((a[m >> 2] | 0) == 6 ? (a[b + 16 >> 2] | 0) == (w | 0) : 0) {
                                                                        U = 117;
                                                                        break
                                                                    }
                                                                    y = a[y + 4 >> 2] | 0
                                                                }
                                                                if ((U | 0) == 117) {
                                                                    a[m >> 2] = 5;
                                                                    a[b + 20 >> 2] = x * 1e3;
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                b = ud() | 0;
                                                                if (!b) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    y = a[ke >> 2] | 0;
                                                                    if ((O | 0) == 0 ? (Ge = a[Ve >> 2] | 0, (Ge | 0) < (d | 0)) : 0) y = y + (~~(+(d - Ge | 0) / +h[Ce >> 2]) >>> 0) | 0;
                                                                    a[b + 8 >> 2] = 5;
                                                                    a[b + 16 >> 2] = w;
                                                                    a[b + 20 >> 2] = y;
                                                                    a[b + 28 >> 2] = x;
                                                                    n[b + 32 >> 1] = -1;
                                                                    a[b + 36 >> 2] = 0;
                                                                    a[b + 56 >> 2] = e;
                                                                    tS(Re, b);
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 1991:
                                                            {
                                                                x = bo(a[(a[Xe >> 2] | 0) + 60 >> 2] | 0) | 0;m = I + 7 | 0;a[Ae >> 2] = m;w = xE(y) | 0;a[Ae >> 2] = I + 9;m = wE(m) | 0;y = a[Re >> 2] | 0;ZE(y) | 0;m = m & 65535;
                                                                while (1) {
                                                                    if (!y) break;
                                                                    b = a[y >> 2] | 0;
                                                                    if ((a[b + 8 >> 2] | 0) == 5 ? (a[b + 16 >> 2] | 0) == (m | 0) : 0) {
                                                                        U = 128;
                                                                        break
                                                                    }
                                                                    y = a[y + 4 >> 2] | 0
                                                                }
                                                                if ((U | 0) == 128) {
                                                                    a[b + 36 >> 2] = w;
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                y = ud() | 0;
                                                                if (!y) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    a[y + 8 >> 2] = 6;
                                                                    a[y + 16 >> 2] = m;
                                                                    a[y + 20 >> 2] = (lf(x, 0, w) | 0) * 1e3;
                                                                    a[y + 28 >> 2] = 0;
                                                                    a[y + 36 >> 2] = w;
                                                                    a[y + 56 >> 2] = e;
                                                                    tS(Re, y);
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 9217:
                                                        case 2004:
                                                        case 2e3:
                                                            {
                                                                if (D) {
                                                                    if ((r[F >> 0] | 0) == 1) n[B >> 1] = (o[B >> 1] | 0) + 1;
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                x = a[ke >> 2] | 0;S = M << 16 >> 16 == 9217;
                                                                if (S) {
                                                                    b = 0;
                                                                    I = 12
                                                                } else {
                                                                    b = I + 5 | 0;
                                                                    a[Ae >> 2] = b;
                                                                    U = (wE(y) | 0) & 65535;
                                                                    y = I + 7 | 0;
                                                                    a[Ae >> 2] = y;
                                                                    b = wE(b) | 0;
                                                                    I = U
                                                                }
                                                                n[u >> 1] = b;a[V >> 2] = e;E = a[Ie >> 2] | 0;k = (O | 0) != 0;T = a[Ve >> 2] | 0;
                                                                if (k) {
                                                                    a[Ie >> 2] = (T | 0) / 1e3 | 0;
                                                                    m = 0;
                                                                    w = 0
                                                                } else {
                                                                    m = q;
                                                                    w = d
                                                                }
                                                                n[j >> 1] = n[X >> 1] | 0;b = ((T | 0) < 0) << 31 >> 31;
                                                                if ((m | 0) > (b | 0) | (m | 0) == (b | 0) & w >>> 0 > T >>> 0) {
                                                                    b = sM(w | 0, m | 0, T | 0, b | 0) | 0;
                                                                    b = x + ~~((+(b >>> 0) + 4294967296.0 * +(P | 0)) / +h[Ce >> 2]) | 0
                                                                } else b = x;b = (b | 0) > 0 ? b : 0;
                                                                if (!S) {
                                                                    if (M << 16 >> 16 == 2004) {
                                                                        a[Ae >> 2] = y + 4;
                                                                        y = (xE(y) | 0) * 1e3 | 0;
                                                                        if (k) {
                                                                            if ((y | 0) <= (T | 0)) {
                                                                                b = O;
                                                                                y = C;
                                                                                U = 310;
                                                                                break t
                                                                            }
                                                                            y = y - T | 0
                                                                        }
                                                                        a[z >> 2] = y
                                                                    }
                                                                } else {
                                                                    U = y + 1 | 0;
                                                                    a[Ae >> 2] = U;
                                                                    r[$ >> 0] = r[y >> 0] | 0;
                                                                    a[Ae >> 2] = y + 2;
                                                                    r[H >> 0] = r[U >> 0] | 0;
                                                                    if (k) {
                                                                        b = O;
                                                                        y = C;
                                                                        U = 310;
                                                                        break t
                                                                    }
                                                                    n[Y >> 1] = n[W >> 1] | 0;
                                                                    nd(u) | 0
                                                                }
                                                                gN(u, t, i, I, b);a[Ie >> 2] = E;y = C;U = 309;
                                                                break
                                                            }
                                                        case 2003:
                                                            {
                                                                if (D) {
                                                                    if ((r[F >> 0] | 0) == 1) n[B >> 1] = (o[B >> 1] | 0) + 1;
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                w = I + 5 | 0;a[Ae >> 2] = w;m = (wE(y) | 0) & 65535;y = I + 7 | 0;a[Ae >> 2] = y;w = wE(w) | 0;a[Ae >> 2] = I + 9;y = wE(y) | 0;b = a[Re >> 2] | 0;ZE(b) | 0;y = y & 65535;
                                                                while (1) {
                                                                    if (!b) {
                                                                        y = C;
                                                                        U = 309;
                                                                        break t
                                                                    }
                                                                    x = a[b >> 2] | 0;
                                                                    if (((a[x + 8 >> 2] | 0) + -5 | 0) >>> 0 < 2 ? ($e = x + 16 | 0, (a[$e >> 2] | 0) == (y | 0)) : 0) break;
                                                                    b = a[b + 4 >> 2] | 0
                                                                }
                                                                a[x + 24 >> 2] = m << 16 | w & 65535;
                                                                if ((O | 0) != 0 ? (He = a[x + 28 >> 2] | 0, (He | 0) != 0) : 0) {
                                                                    U = x + 32 | 0;
                                                                    f = G(He, n[U >> 1] | 0) | 0;
                                                                    y = (a[Ve >> 2] | 0) / 1e3 | 0;
                                                                    n[U >> 1] = ((f - y | 0) >>> 0) / (He >>> 0) | 0;
                                                                    y = He - ((y >>> 0) % (He >>> 0) | 0) | 0
                                                                } else y = 0;a[$e >> 2] = y;iS(Re, b);tS(Te, x);y = C;U = 309;
                                                                break
                                                            }
                                                        case 1253:
                                                        case 1252:
                                                        case 1251:
                                                        case 1250:
                                                            {
                                                                if (Me) {
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                switch (M << 16 >> 16) {
                                                                    case 1251:
                                                                        {
                                                                            a[Ae >> 2] = I + 7;y = xE(y) | 0;b = 0;
                                                                            break
                                                                        }
                                                                    case 1252:
                                                                        {
                                                                            b = 0;U = 167;
                                                                            break
                                                                        }
                                                                    case 1253:
                                                                        {
                                                                            U = I + 7 | 0;a[Ae >> 2] = U;b = xE(y) | 0;y = U;U = 167;
                                                                            break
                                                                        }
                                                                    default:
                                                                        {
                                                                            y = 0;b = 0
                                                                        }
                                                                }
                                                                if ((U | 0) == 167) {
                                                                    a[Ae >> 2] = y + 2;
                                                                    y = wE(y) | 0;
                                                                    if (y << 16 >> 16 == -1) {
                                                                        y = b;
                                                                        b = 0
                                                                    } else {
                                                                        Ss(a[(a[ie >> 2] | 0) + 2200 >> 2] | 0, y, Fe);
                                                                        y = b;
                                                                        b = a[Fe >> 2] | 0
                                                                    }
                                                                }
                                                                if (!(a[1631] | 0)) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    gS(Fe, 0, 32) | 0;
                                                                    f = a[J >> 2] | 0;
                                                                    a[Q >> 2] = a[f + 60 >> 2];
                                                                    a[Z >> 2] = Co(f) | 0;
                                                                    f = ((a[Pe >> 2] | 0) + g - (a[Ve >> 2] | 0) | 0) / 1e3 | 0;
                                                                    U = Fe;
                                                                    a[U >> 2] = f;
                                                                    a[U + 4 >> 2] = ((f | 0) < 0) << 31 >> 31;
                                                                    a[K >> 2] = 0;
                                                                    a[ee >> 2] = y;
                                                                    a[te >> 2] = b;
                                                                    Jt(0, Fe) | 0;
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 98:
                                                            {
                                                                if (Me) {
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                b = a[(a[Xe >> 2] | 0) + 112 >> 2] | 0;i: do {
                                                                    if (!b) {
                                                                        y = Yo() | 0;
                                                                        do {
                                                                            if (y | 0) {
                                                                                b = zo() | 0;
                                                                                if (!b) {
                                                                                    Jo(y);
                                                                                    break
                                                                                } else {
                                                                                    tS(y + 24 | 0, b);
                                                                                    a[y + 76 >> 2] = b;
                                                                                    T = 0;
                                                                                    k = y;
                                                                                    y = a[Ae >> 2] | 0;
                                                                                    break i
                                                                                }
                                                                            }
                                                                        } while (0);
                                                                        a[Ae >> 2] = (a[Ae >> 2] | 0) + (w & 255);
                                                                        y = C;
                                                                        U = 309;
                                                                        break t
                                                                    } else {
                                                                        T = 1;
                                                                        k = b;
                                                                        b = a[b + 76 >> 2] | 0
                                                                    }
                                                                } while (0);m = y + 4 | 0;a[Ae >> 2] = m;w = xE(y) | 0;x = b + 12 | 0;
                                                                if (T & +h[x >> 2] != (a[c >> 2] = w, +h[c >> 2])) {
                                                                    a[k + 44 >> 2] = ((a[Pe >> 2] | 0) + g - (a[Ve >> 2] | 0) | 0) / 1e3 | 0;
                                                                    a[k + 40 >> 2] = 0
                                                                }
                                                                a[x >> 2] = w;f = y + 5 | 0;a[Ae >> 2] = f;r[b + 16 >> 0] = r[m >> 0] | 0;U = y + 6 | 0;a[Ae >> 2] = U;r[b + 17 >> 0] = r[f >> 0] | 0;a[Ae >> 2] = y + 10;a[b + 20 >> 2] = xE(U) | 0;a[(a[Xe >> 2] | 0) + 112 >> 2] = k;y = C;U = 309;
                                                                break
                                                            }
                                                        case 7099:
                                                            {
                                                                if ((O | 0) == 0 ? (a[re >> 2] | 0) != 0 : 0) {
                                                                    np(a[Xe >> 2] | 0, a[ne >> 2] | 0);
                                                                    a[Fe >> 2] = a[Ae >> 2];
                                                                    a[ae >> 2] = w & 255;
                                                                    y = a[Xe >> 2] | 0;
                                                                    RN(a[y + 60 >> 2] | 0, a[re >> 2] | 0, a[y + 68 >> 2] | 0, Fe);
                                                                    y = a[Ae >> 2] | 0
                                                                }
                                                                a[Ae >> 2] = y + (w & 255);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7100:
                                                            {
                                                                if (!O)
                                                                    if (!(a[re >> 2] | 0)) {
                                                                        y = C;
                                                                        U = 311
                                                                    } else {
                                                                        np(a[Xe >> 2] | 0, a[ne >> 2] | 0);
                                                                        y = a[Xe >> 2] | 0;
                                                                        RN(a[y + 60 >> 2] | 0, a[re >> 2] | 0, a[y + 68 >> 2] | 0, 0);
                                                                        y = C;
                                                                        U = 311
                                                                    }
                                                                else {
                                                                    b = O;
                                                                    y = C;
                                                                    U = 310
                                                                }
                                                                break
                                                            }
                                                        case 7101:
                                                            {
                                                                if (!O) {
                                                                    y = a[re >> 2] | 0;
                                                                    if (!y) {
                                                                        y = C;
                                                                        U = 311
                                                                    } else {
                                                                        a[Fe >> 2] = 0;
                                                                        i: do {
                                                                            switch (r[y + 43 >> 0] | 0) {
                                                                                case 1:
                                                                                    {
                                                                                        if (a[y + 32 >> 2] | 0 ? (DN(y, u, De), KE(a[R >> 2] | 0) | 0) : 0) {
                                                                                            rS(De, Fe);
                                                                                            while (1) {
                                                                                                y = a[Fe >> 2] | 0;
                                                                                                if (!y) break i;
                                                                                                U = a[y >> 2] | 0;
                                                                                                mu(U, (a[U + 112 >> 2] | 0) != 0 & 1, 42);
                                                                                                a[U + 108 >> 2] = 0;
                                                                                                rS(De, Fe)
                                                                                            }
                                                                                        }
                                                                                        break
                                                                                    }
                                                                                case 2:
                                                                                    {
                                                                                        FN(n[y + 36 >> 1] | 0);
                                                                                        break
                                                                                    }
                                                                                default:
                                                                                    {}
                                                                            }
                                                                        } while (0);
                                                                        y = C;
                                                                        U = 309
                                                                    }
                                                                } else {
                                                                    b = O;
                                                                    y = C;
                                                                    U = 310
                                                                }
                                                                break
                                                            }
                                                        case 7110:
                                                            {
                                                                BN(e, u, b, De, O);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7107:
                                                            if (!O) {
                                                                U = I + 4 | 0;
                                                                a[Ae >> 2] = U;
                                                                k = s[y >> 0] | 0;
                                                                y = I + 5 | 0;
                                                                a[Ae >> 2] = y;
                                                                A = +(s[U >> 0] | 0) / 100.0;
                                                                U = 206;
                                                                break t
                                                            } else {
                                                                a[Ae >> 2] = y + (w & 255);
                                                                b = O;
                                                                y = C;
                                                                U = 310;
                                                                break t
                                                            }
                                                        case 7105:
                                                        case 7103:
                                                            {
                                                                if (!O) {
                                                                    k = C;
                                                                    U = 206
                                                                } else {
                                                                    b = C;
                                                                    U = 222
                                                                }
                                                                break
                                                            }
                                                        case 7104:
                                                            {
                                                                m = a[re >> 2] | 0;
                                                                if (!((O | 0) == 0 & (m | 0) != 0)) {
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                U = I + 5 | 0;a[Ae >> 2] = U;b = wE(y) | 0;a[Ae >> 2] = I + 7;y = wE(U) | 0;a[Ne >> 2] = 0;DN(m, u, De);i: do {
                                                                    if (KE(a[R >> 2] | 0) | 0 ? (Ss(a[(a[se >> 2] | 0) + 2200 >> 2] | 0, b, Le), Ss(a[(a[se >> 2] | 0) + 2200 >> 2] | 0, y, Ue), Os(a[Le >> 2] | 0, a[Ue >> 2] | 0, Fe, Be), We = n[Fe >> 1] | 0, Ye = n[Be >> 1] | 0, !(We << 16 >> 16 == -1 | Ye << 16 >> 16 == -1)) : 0) {
                                                                        rS(De, Ne);
                                                                        while (1) {
                                                                            y = a[Ne >> 2] | 0;
                                                                            if (!y) break i;
                                                                            U = a[y >> 2] | 0;
                                                                            LN(a[U + 72 >> 2] | 0, We, Ye);
                                                                            a[U + 108 >> 2] = 0;
                                                                            rS(De, Ne)
                                                                        }
                                                                    }
                                                                } while (0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7102:
                                                            {
                                                                if (O | 0) {
                                                                    a[Ae >> 2] = y + (w & 255);
                                                                    b = O;
                                                                    y = C;
                                                                    U = 310;
                                                                    break t
                                                                }
                                                                a[Fe >> 2] = 0;x = I + 5 | 0;a[Ae >> 2] = x;w = wE(y) | 0;m = I + 7 | 0;a[Ae >> 2] = m;x = wE(x) | 0;a[Ae >> 2] = I + 8;m = r[m >> 0] | 0;y = a[re >> 2] | 0;i: do {
                                                                    if (a[y + 32 >> 2] | 0 ? (DN(y, u, De), KE(a[R >> 2] | 0) | 0) : 0) {
                                                                        b = a[De >> 2] | 0;
                                                                        ZE(b) | 0;
                                                                        y = 1;
                                                                        while (1) {
                                                                            if (!b) break;
                                                                            y = y + ((a[(a[b >> 2] | 0) + 112 >> 2] | 0) != 0 & 1) | 0;
                                                                            b = a[b + 4 >> 2] | 0
                                                                        }
                                                                        a[Fe >> 2] = 0;
                                                                        U = (KE(a[(a[1698] | 0) + 120 >> 2] | 0) | 0) >>> 0 < y >>> 0;
                                                                        rS(De, Fe);
                                                                        if (U) {
                                                                            while (1) {
                                                                                y = a[Fe >> 2] | 0;
                                                                                if (!y) break;
                                                                                a[(a[y >> 2] | 0) + 108 >> 2] = 0;
                                                                                rS(De, Fe)
                                                                            }
                                                                            NE();
                                                                            break
                                                                        }
                                                                        while (1) {
                                                                            y = a[Fe >> 2] | 0;
                                                                            if (!y) break i;
                                                                            y = a[y >> 2] | 0;
                                                                            b = NN() | 0;
                                                                            if (!b) break i;
                                                                            U = b + 12 | 0;
                                                                            n[b + 20 >> 1] = w;
                                                                            r[b + 16 >> 0] = m;
                                                                            a[U >> 2] = 1 << s[y + 120 >> 0];
                                                                            n[U + 10 >> 1] = x;
                                                                            U = y + 112 | 0;
                                                                            ml(y, b, (a[U >> 2] | 0) != 0 & 1);
                                                                            a[y + 108 >> 2] = 0;
                                                                            if (!(a[U >> 2] | 0)) sl(b);
                                                                            rS(De, Fe)
                                                                        }
                                                                    }
                                                                } while (0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7106:
                                                            if (!O) {
                                                                U = a[(a[Xe >> 2] | 0) + 60 >> 2] | 0;
                                                                f = I + 5 | 0;
                                                                a[Ae >> 2] = f;
                                                                O = wE(y) | 0;
                                                                y = I + 7 | 0;
                                                                a[Ae >> 2] = y;
                                                                f = wE(f) | 0;
                                                                a[Ae >> 2] = I + 8;
                                                                y = r[y >> 0] | 0;
                                                                UN(U, O & 65535);
                                                                VN(U, f & 65535);
                                                                XN(U, y & 255);
                                                                y = C;
                                                                U = 311;
                                                                break t
                                                            } else {
                                                                a[Ae >> 2] = y + (w & 255);
                                                                b = O;
                                                                y = C;
                                                                U = 310;
                                                                break t
                                                            }
                                                        case 7108:
                                                            {
                                                                jN(e, u, b, De, O, 1);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7111:
                                                            {
                                                                GN(e, u, b, De, O, 1);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7109:
                                                            {
                                                                jN(e, u, b, De, O, 0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 7112:
                                                            {
                                                                GN(e, u, b, De, O, 0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 8e3:
                                                            {
                                                                y = C;U = 309;
                                                                break
                                                            }
                                                        case 8002:
                                                        case 8001:
                                                            {
                                                                a[Ae >> 2] = y + (w & 255);y = C;U = 309;
                                                                break
                                                            }
                                                        case 8005:
                                                        case 8003:
                                                            if (!O) {
                                                                a[Ae >> 2] = I + 5;
                                                                y = wE(y) | 0;
                                                                n[j >> 1] = n[X >> 1] | 0;
                                                                a[V >> 2] = e;
                                                                Ss(a[(a[se >> 2] | 0) + 2200 >> 2] | 0, y, Fe);
                                                                vv(u, a[Fe >> 2] | 0);
                                                                rp();
                                                                y = C;
                                                                U = 311;
                                                                break t
                                                            } else {
                                                                a[Ae >> 2] = y + (w & 255);
                                                                b = O;
                                                                y = C;
                                                                U = 310;
                                                                break t
                                                            }
                                                        case 8006:
                                                        case 8004:
                                                            {
                                                                if (!O) {
                                                                    U = (nd(u) | 0) == 0;
                                                                    y = a[Ae >> 2] | 0;
                                                                    if (!U) {
                                                                        f = y + 2 | 0;
                                                                        a[Ae >> 2] = f;
                                                                        U = wE(y) | 0;
                                                                        O = y + 3 | 0;
                                                                        a[Ae >> 2] = O;
                                                                        f = r[f >> 0] | 0;
                                                                        a[Ae >> 2] = y + 4;
                                                                        y = r[O >> 0] | 0;
                                                                        n[j >> 1] = n[X >> 1] | 0;
                                                                        a[V >> 2] = e;
                                                                        r[oe >> 0] = y;
                                                                        Mo(a[(a[ue >> 2] | 0) + 12 >> 2] | 0, 145, f & 255);
                                                                        Ss(a[(a[se >> 2] | 0) + 2200 >> 2] | 0, U, Fe);
                                                                        vv(u, a[Fe >> 2] | 0);
                                                                        rp();
                                                                        y = C;
                                                                        U = 311;
                                                                        break t
                                                                    }
                                                                }
                                                                a[Ae >> 2] = y + (w & 255);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9e3:
                                                            {
                                                                y = a[he >> 2] | 0;
                                                                if (!y) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    y = C_(a[y + 4 >> 2] | 0) | 0;
                                                                    if (y | 0) {
                                                                        a[Fe >> 2] = 1;
                                                                        a[le >> 2] = 0;
                                                                        a[fe >> 2] = 69;
                                                                        h[ce >> 2] = 1.0;
                                                                        $N(y, Fe)
                                                                    }
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 9001:
                                                            {
                                                                y = a[he >> 2] | 0;
                                                                if (!y) {
                                                                    y = C;
                                                                    U = 309
                                                                } else {
                                                                    y = C_(a[y + 4 >> 2] | 0) | 0;
                                                                    if (y | 0) {
                                                                        a[Fe >> 2] = 2;
                                                                        a[de >> 2] = 0;
                                                                        a[pe >> 2] = 69;
                                                                        h[ve >> 2] = 1.0;
                                                                        $N(y, Fe)
                                                                    }
                                                                    y = C;
                                                                    U = 309
                                                                }
                                                                break
                                                            }
                                                        case 9216:
                                                            {
                                                                a[Ae >> 2] = I + 4;k = r[y >> 0] | 0;a[Ae >> 2] = I + 5;m = (O | 0) != 0;y = m ? (a[1698] | 0) + 136 | 0 : Te;b = a[y >> 2] | 0;ZE(b) | 0;
                                                                while (1) {
                                                                    if (!b) {
                                                                        y = C;
                                                                        U = 309;
                                                                        break t
                                                                    }
                                                                    w = a[b >> 2] | 0;
                                                                    x = a[b + 4 >> 2] | 0;
                                                                    if ((r[w + 41 >> 0] | 0) != k << 24 >> 24) {
                                                                        b = x;
                                                                        continue
                                                                    }
                                                                    if (m) {
                                                                        HN(w, 74);
                                                                        iS(y, b);
                                                                        Wh(w);
                                                                        b = x;
                                                                        continue
                                                                    } else {
                                                                        Gh(w, 74);
                                                                        b = x;
                                                                        continue
                                                                    }
                                                                }
                                                            }
                                                        case 9220:
                                                            {
                                                                a[Ae >> 2] = I + 4;n[W >> 1] = s[y >> 0] | 0;y = C;U = 309;
                                                                break
                                                            }
                                                        case 9222:
                                                            {
                                                                a[Ae >> 2] = I + 5;y = (wE(y) | 0) & 65535;go(a[Se >> 2] | 0, 3, +((y >>> 0 < 16383 ? y : 16383) + -8192 | 0) * .0001220703125 * +(s[me >> 0] | 0) * 100.0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9573:
                                                        case 9572:
                                                        case 9571:
                                                        case 9570:
                                                        case 9569:
                                                        case 9568:
                                                        case 9567:
                                                        case 9566:
                                                        case 9565:
                                                        case 9564:
                                                        case 9563:
                                                        case 9556:
                                                        case 9555:
                                                        case 9554:
                                                        case 9553:
                                                        case 9552:
                                                        case 9551:
                                                        case 9550:
                                                        case 9549:
                                                        case 9548:
                                                        case 9547:
                                                        case 9546:
                                                        case 9545:
                                                        case 9544:
                                                        case 9543:
                                                        case 9542:
                                                        case 9541:
                                                        case 9540:
                                                        case 9539:
                                                        case 9538:
                                                        case 9537:
                                                        case 9536:
                                                        case 9523:
                                                        case 9522:
                                                        case 9521:
                                                        case 9520:
                                                        case 9517:
                                                        case 9516:
                                                        case 9515:
                                                        case 9514:
                                                        case 9512:
                                                        case 9511:
                                                        case 9510:
                                                        case 9509:
                                                        case 9508:
                                                        case 9506:
                                                        case 9505:
                                                        case 9504:
                                                        case 9491:
                                                        case 9490:
                                                        case 9489:
                                                        case 9488:
                                                        case 9485:
                                                        case 9484:
                                                        case 9483:
                                                        case 9482:
                                                        case 9480:
                                                        case 9479:
                                                        case 9478:
                                                        case 9477:
                                                        case 9476:
                                                        case 9474:
                                                        case 9473:
                                                        case 9472:
                                                            {
                                                                WN(e, M & 65535, Ae);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9255:
                                                            {
                                                                Jd(e);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9264:
                                                            {
                                                                a[Ae >> 2] = I + 4;y = s[y >> 0] | 0;r[me >> 0] = y >>> 0 < 12 ? y : 12;a[Ae >> 2] = I + 5;y = C;U = 309;
                                                                break
                                                            }
                                                        case 9592:
                                                            {
                                                                YN(e, 76);a[ye >> 2] = 2;y = C;U = 309;
                                                                break
                                                            }
                                                        case 9593:
                                                            {
                                                                a[Ae >> 2] = I + 4;y = C;U = 309;
                                                                break
                                                            }
                                                        case 9595:
                                                            {
                                                                wN(e, 75);a[ye >> 2] = 2;y = C;U = 309;
                                                                break
                                                            }
                                                        case 2006:
                                                            {
                                                                a[Ae >> 2] = I + 7;L = +((xE(y) | 0) >>> 0);a[Ve >> 2] = (a[Ve >> 2] | 0) - (~~(L / +(o[_e >> 1] | 0) * +((a[be >> 2] | 0) >>> 0)) >>> 0);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9809:
                                                            {
                                                                a[Ae >> 2] = I + 7;a[be >> 2] = xE(y) | 0;y = C;U = 309;
                                                                break
                                                            }
                                                        case 9856:
                                                            {
                                                                if ((O | 0) == 0 ? (ze = a[re >> 2] | 0, ze | 0) : 0) {
                                                                    f = I + 4 | 0;
                                                                    a[Ae >> 2] = f;
                                                                    x = r[y >> 0] | 0;
                                                                    a[Fe >> 2] = 0;
                                                                    a[Be >> 2] = f;
                                                                    M = (w & 255) + -1 | 0;
                                                                    a[ge >> 2] = M;
                                                                    a[Ae >> 2] = M + f;
                                                                    if (!((r[ze + 43 >> 0] | 0) == 1 ? !(a[ze + 32 >> 2] | 0) : 0)) U = 291;
                                                                    i: do {
                                                                        if ((U | 0) == 291 ? (0, DN(ze, u, De), KE(a[R >> 2] | 0) | 0) : 0) {
                                                                            rS(De, Fe);
                                                                            while (1) {
                                                                                y = a[Fe >> 2] | 0;
                                                                                if (!y) break i;
                                                                                w = a[y >> 2] | 0;
                                                                                m = a[(a[w + 72 >> 2] | 0) + 8 >> 2] | 0;
                                                                                ZE(m) | 0;
                                                                                while (1) {
                                                                                    if (!m) break;
                                                                                    y = a[m >> 2] | 0;
                                                                                    r: do {
                                                                                        if (!(a[y >> 2] | 0)) {
                                                                                            if (!(KE(a[y + 124 >> 2] | 0) | 0)) break;
                                                                                            y = a[y + 116 >> 2] | 0;
                                                                                            ZE(y) | 0;
                                                                                            while (1) {
                                                                                                if (!y) break r;
                                                                                                b = a[y >> 2] | 0;
                                                                                                if ((r[b + 119 >> 0] | 0) == x << 24 >> 24) zN(b, Be);
                                                                                                y = a[y + 4 >> 2] | 0
                                                                                            }
                                                                                        }
                                                                                    } while (0);
                                                                                    m = a[m + 4 >> 2] | 0
                                                                                }
                                                                                a[w + 108 >> 2] = 0;
                                                                                rS(De, Fe)
                                                                            }
                                                                        }
                                                                    } while (0);
                                                                    y = C;
                                                                    U = 309;
                                                                    break t
                                                                }
                                                                a[Ae >> 2] = y + (w & 255);y = C;U = 309;
                                                                break
                                                            }
                                                        case 9816:
                                                            {
                                                                a[Ae >> 2] = y + (w & 255);y = C;U = 309;
                                                                break
                                                            }
                                                        default:
                                                            {
                                                                a[Ae >> 2] = y + (w & 255);NE();y = C;U = 309
                                                            }
                                                    }
                                                } while (0);
                                                if ((U | 0) == 60) {
                                                    a[ye >> 2] = 3;
                                                    a[Oe >> 2] = 0;
                                                    y = C;
                                                    U = 309
                                                } else if ((U | 0) == 206) {
                                                    m = a[re >> 2] | 0;
                                                    if (!m) {
                                                        b = k;
                                                        U = 222
                                                    } else {
                                                        a[Fe >> 2] = 0;
                                                        U = y + 2 | 0;
                                                        a[Ae >> 2] = U;
                                                        w = n[2724 + (((wE(y) | 0) & 65535) << 1) >> 1] | 0;
                                                        x = w & 65535;
                                                        b = y + 6 | 0;
                                                        a[Ae >> 2] = b;
                                                        L = +(xE(U) | 0) / 1.0e4;
                                                        if (M << 16 >> 16 == 7103) {
                                                            a[Ae >> 2] = y + 8;
                                                            N = +((wE(b) | 0) & 65535) / 1.0e4
                                                        } else {
                                                            a[Ae >> 2] = y + 10;
                                                            U = xE(b) | 0;
                                                            N = (a[c >> 2] = U, +h[c >> 2])
                                                        }
                                                        t: do {
                                                            switch (r[m + 43 >> 0] | 0) {
                                                                case 1:
                                                                    {
                                                                        if (a[m + 32 >> 2] | 0 ? (DN(m, u, De), KE(a[R >> 2] | 0) | 0) : 0) {
                                                                            rS(De, Fe);
                                                                            while (1) {
                                                                                y = a[Fe >> 2] | 0;
                                                                                if (!y) break t;
                                                                                y = a[y >> 2] | 0;
                                                                                b = NN() | 0;
                                                                                if (b | 0 ? (a[b + 12 >> 2] = x, h[b + 16 >> 2] = L, h[b + 20 >> 2] = N, a[b + 24 >> 2] = k, h[b + 28 >> 2] = A, n[b + 32 >> 1] = n[(a[re >> 2] | 0) + 44 >> 1] | 0, U = y + 112 | 0, VB(y, b, (a[U >> 2] | 0) != 0 & 1), (a[U >> 2] | 0) == 0) : 0) sl(b);
                                                                                a[y + 108 >> 2] = 0;
                                                                                rS(De, Fe)
                                                                            }
                                                                        }
                                                                        break
                                                                    }
                                                                case 2:
                                                                    {
                                                                        y = oD(n[m + 36 >> 1] | 0) | 0;
                                                                        if (y | 0) $B(y, w, L, N, k, A);
                                                                        break
                                                                    }
                                                                default:
                                                                    {}
                                                            }
                                                        } while (0);
                                                        y = k;
                                                        U = 309
                                                    }
                                                }
                                                if ((U | 0) == 222) {
                                                    a[Ae >> 2] = y + (w & 255);
                                                    y = b;
                                                    U = 309
                                                }
                                                if ((U | 0) == 309)
                                                    if (!O) U = 311;
                                                    else {
                                                        b = O;
                                                        U = 310
                                                    }
                                                if ((U | 0) == 310) {
                                                    U = 0;
                                                    f = a[Ve >> 2] | 0;
                                                    b = (f | 0) < 1 ? 0 : b;
                                                    m = y;
                                                    y = f
                                                } else if ((U | 0) == 311) {
                                                    U = 0;
                                                    b = 0;
                                                    m = y;
                                                    y = a[Ve >> 2] | 0
                                                }
                                                if ((y | 0) >= 0) break;
                                                a[Oe >> 2] = 0;
                                                O = b;
                                                C = m;
                                                y = 0
                                            }
                                            y = a[Oe >> 2] | 0
                                        }
                                    }
                            }
                        } while (0);
                        p = qe;
                        return g | 0
                    }

                    function aN(e, t, i, r, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0;
                        y = e + 48 | 0;
                        o = a[y >> 2] | 0;
                        ZE(o) | 0;
                        A = e + 68 | 0;
                        w = s + 48 | 0;
                        x = i + 20 | 0;
                        _ = e + 94 | 0;
                        b = i + 124 | 0;
                        g = i + 56 | 0;
                        e: while (1) {
                            if (!o) break;
                            u = a[o >> 2] | 0;
                            o = a[o + 4 >> 2] | 0;
                            switch (a[u + 8 >> 2] | 0) {
                                case 10:
                                case 1:
                                    {
                                        if (!(xN(a[u + 20 >> 2] | 0, a[u + 16 >> 2] | 0) | 0)) {
                                            iS(y, u);
                                            Wh(u);
                                            u = 0
                                        }
                                        kN(u, t);
                                        continue e
                                    }
                                case 8:
                                    {
                                        if (!(xN(a[u + 20 >> 2] | 0, a[u + 16 >> 2] | 0) | 0)) {
                                            iS(y, u);
                                            Wh(u);
                                            u = 0
                                        }
                                        kN(u, t);
                                        continue e
                                    }
                                case 3:
                                    {
                                        if (!(TN(a[u + 16 >> 2] | 0) | 0)) {
                                            iS(y, u);
                                            Wh(u);
                                            u = 0
                                        }
                                        kN(u, t);
                                        continue e
                                    }
                                case 4:
                                    {
                                        if (!(EN(a[u + 16 >> 2] | 0) | 0)) {
                                            iS(y, u);
                                            Wh(u);
                                            u = 0
                                        }
                                        kN(u, t);
                                        continue e
                                    }
                                case 5:
                                    {
                                        h = u + 32 | 0;m = u + 20 | 0;l = a[m >> 2] | 0;do {
                                            if ((l | 0) < (t | 0)) {
                                                f = n[h >> 1] | 0;
                                                d = (a[w >> 2] | 0) + l | 0;
                                                p = u + 28 | 0;
                                                c = a[p >> 2] | 0;
                                                v = f << 16 >> 16 == 0;
                                                if (!(v | (c | 0) == 0)) {
                                                    a[m >> 2] = (c * 1e3 | 0) + l;
                                                    n[h >> 1] = f << 16 >> 16 > 0 ? (f & 65535) + 65535 & 65535 : -1
                                                }
                                                l = u + 36 | 0;
                                                if (a[l >> 2] | 0) {
                                                    h = ud() | 0;
                                                    if (h | 0) {
                                                        d = bo(a[(a[g >> 2] | 0) + 60 >> 2] | 0) | 0;
                                                        a[h + 8 >> 2] = 6;
                                                        a[h + 20 >> 2] = (lf(d, 0, a[l >> 2] | 0) | 0) * 1e3;
                                                        a[h + 56 >> 2] = e;
                                                        a[h + 24 >> 2] = a[u + 24 >> 2];
                                                        tS(y, h)
                                                    }
                                                } else {
                                                    c = a[u + 24 >> 2] | 0;
                                                    n[i >> 1] = c;
                                                    a[x >> 2] = e;
                                                    n[b >> 1] = n[_ >> 1] | 0;
                                                    gN(i, r, s, c >> 16, d)
                                                }
                                                if (!(a[p >> 2] | 0)) {
                                                    iS(y, u);
                                                    Wh(u);
                                                    continue e
                                                }
                                                if (v) {
                                                    iS(y, u);
                                                    Wh(u);
                                                    continue e
                                                } else {
                                                    u = a[m >> 2] | 0;
                                                    break
                                                }
                                            } else u = l
                                        } while (0);a[m >> 2] = u - t;
                                        continue e
                                    }
                                case 6:
                                    {
                                        h = u + 20 | 0;l = a[h >> 2] | 0;
                                        if ((l | 0) < (t | 0)) {
                                            m = a[u + 24 >> 2] | 0;
                                            n[i >> 1] = m;
                                            a[x >> 2] = e;
                                            n[b >> 1] = n[_ >> 1] | 0;
                                            gN(i, r, s, m >> 16, (a[w >> 2] | 0) + l | 0);
                                            iS(y, u);
                                            Wh(u);
                                            continue e
                                        } else {
                                            a[h >> 2] = l - t;
                                            continue e
                                        }
                                    }
                                case 7:
                                    {
                                        if (xN(a[u + 20 >> 2] | 0, a[u + 16 >> 2] | 0) | 0) continue e;iS(y, u);Wh(u);
                                        continue e
                                    }
                                default:
                                    {
                                        if (a[A >> 2] | 0) continue e;iS(y, u);Wh(u);
                                        continue e
                                    }
                            }
                        }
                        return
                    }

                    function sN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        i = a[e + 116 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            n = a[i >> 2] | 0;
                            if ((r[n + 112 >> 0] | 0) != 1) a[n + 88 >> 2] = t;
                            i = a[i + 4 >> 2] | 0
                        }
                        e = a[e + 8 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            i = a[e >> 2] | 0;
                            e: do {
                                if (!(a[i >> 2] | 0)) sN(i, t);
                                else {
                                    i = a[i + 20 >> 2] | 0;
                                    ZE(i) | 0;
                                    while (1) {
                                        if (!i) break e;
                                        sN(a[i >> 2] | 0, t);
                                        i = a[i + 4 >> 2] | 0
                                    }
                                }
                            } while (0);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function oN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = e + 100 | 0;
                        e: do {
                            if ((n[c >> 1] | 0) != -1 ? (f = i + 56 | 0, o = a[f >> 2] | 0, (r[o + 122 >> 0] | 0) != 1) : 0) {
                                l = e + 115 | 0;
                                if ((r[l >> 0] | 0) == 1) {
                                    if (a[e + 56 >> 2] | 0) break;
                                    r[l >> 0] = 0
                                }
                                o = a[o + 68 >> 2] | 0;
                                u = e + 84 | 0;
                                h = a[u >> 2] | 0;
                                do {
                                    if ((jd(o, h) | 0) == 1) {
                                        if ((Gd(o, h) | 0) != 1) break e
                                    } else {
                                        o = a[t + 92 >> 2] | 0;
                                        if ((jd(o, h) | 0) == 1)
                                            if ((Gd(o, h) | 0) == 1) break;
                                            else break e;
                                        else {
                                            h = Ds(h >>> 16 & 65535) | 0;
                                            if (h << 16 >> 16 == (a[u >> 2] & 65535) << 16 >> 16) break;
                                            else break e
                                        }
                                    }
                                } while (0);
                                h = a[t + 116 >> 2] | 0;
                                ZE(h) | 0;
                                o = 0;
                                while (1) {
                                    if (!h) break;
                                    u = a[h >> 2] | 0;
                                    if ((u | 0) != (e | 0)) {
                                        o = (vN(u) | 0) + o | 0;
                                        r[l >> 0] = 1
                                    }
                                    h = a[h + 4 >> 2] | 0
                                }
                                if ((o | 0) > 0) {
                                    o = a[e + 48 >> 2] | 0;
                                    ZE(o) | 0;
                                    while (1) {
                                        if (!o) break;
                                        u = a[o >> 2] | 0;
                                        o = a[o + 4 >> 2] | 0;
                                        if ((a[u + 8 >> 2] | 0) != 3) continue;
                                        u = Jh(a[u + 16 >> 2] | 0) | 0;
                                        if (!u) continue;
                                        if (r[(a[u + 4 >> 2] | 0) + 123 >> 0] | 0) continue;
                                        Eu(a[(a[f >> 2] | 0) + 112 >> 2] | 0)
                                    }
                                    o = a[(a[f >> 2] | 0) + 116 >> 2] | 0;
                                    if (o | 0 ? (mN(a[o + 120 >> 2] | 0) | 0) == 0 : 0) {
                                        u = NB(a[f >> 2] | 0) | 0;
                                        if (u | 0) {
                                            o = ol(a[u + 72 >> 2] | 0, 0) | 0;
                                            if ((o | 0) != 0 ? (s = Up(o) | 0, (s | 0) != 0) : 0) {
                                                if ((_N(s) | 0) > 1) break
                                            } else s = 0;
                                            l = bN(r[t + 185 >> 0] | 0, s, e) | 0;
                                            f = nC(Co(u) | 0) | 0;
                                            s = f;
                                            if ((l | 0) == 0 & (f | 0) != 0 ? nd(i) | 0 : 0) Io(a[(a[i + 32 >> 2] | 0) + 12 >> 2] | 0, 122, s)
                                        }
                                        n[i >> 1] = n[c >> 1] | 0;
                                        a[i + 20 >> 2] = e;
                                        n[i + 124 >> 1] = n[e + 94 >> 1] | 0;
                                        gN(i, 0, t, a[e + 72 >> 2] | 0, 0)
                                    }
                                }
                            }
                        } while (0);
                        return
                    }

                    function uN(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        e: do {
                            switch (a[e + 68 >> 2] | 0) {
                                case 0:
                                case 3:
                                    {
                                        t = a[e + 32 >> 2] | 0;
                                        if (!t) {
                                            if (KE(a[e + 56 >> 2] | 0) | 0) {
                                                i = 9;
                                                break e
                                            }
                                            if ((n[e + 100 >> 1] | 0) == -1) {
                                                t = 0;
                                                break e
                                            } else {
                                                i = 9;
                                                break e
                                            }
                                        }
                                        t = C_(a[t + 4 >> 2] | 0) | 0;
                                        if ((t | 0 ? Hv(t) | 0 : 0) ? dN(t) | 0 : 0) {
                                            i = 9;
                                            break e
                                        }
                                        ah(a[e + 24 >> 2] | 0, a[e + 28 >> 2] | 0);t = 0;
                                        break
                                    }
                                default:
                                    i = 9
                            }
                        } while (0);
                        if ((i | 0) == 9) t = 1;
                        return t | 0
                    }

                    function hN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return fN(e, t) | 0
                    }

                    function lN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = vu(e) | 0;
                        do {
                            if (e | 0)
                                if (!t) {
                                    qu(e, 65535, 0);
                                    break
                                } else {
                                    qu(e, 1, 1);
                                    break
                                }
                        } while (0);
                        return
                    }

                    function fN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = cN(e, t) | 0;
                        if (!e) e = 0;
                        else e = (r[e + 31 >> 0] | 0) == 1 ? 2 : 1;
                        return e | 0
                    }

                    function cN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        while (1) {
                            if (!e) {
                                e = 0;
                                break
                            }
                            if ((n[e + 28 >> 1] | 0) == t << 16 >> 16) break;
                            e = a[e >> 2] | 0
                        }
                        return e | 0
                    }

                    function dN(e) {
                        e = e | 0;
                        var t = 0;
                        do {
                            if (!e) {
                                sE();
                                e = 0
                            } else {
                                t = a[e + 324 >> 2] | 0;
                                if (t | 0 ? (a[e + 340 >> 2] | 0) == 12 : 0) {
                                    e = pN(a[t + 4 >> 2] | 0, a[(a[t + 12 >> 2] | 0) + 44 >> 2] | 0) | 0;
                                    break
                                }
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function pN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return KG[t & 63](e) | 0
                    }

                    function vN(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[e + 48 >> 2] | 0;
                        ZE(t) | 0;
                        e = 0;
                        while (1) {
                            if (!t) break;
                            e = e + ((a[(a[t >> 2] | 0) + 8 >> 2] | 0) == 3 & 1) | 0;
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function mN(e) {
                        e = e | 0;
                        return ((Cu(e) | 0) + -1 & 255) < 2 | 0
                    }

                    function _N(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        e = a[e + 48 >> 2] | 0;
                        ZE(e) | 0;
                        t = 0;
                        e: while (1) {
                            t: while (1) {
                                if (!e) break e;
                                i = a[e >> 2] | 0;
                                e = a[e + 4 >> 2] | 0;
                                switch (a[i + 8 >> 2] | 0) {
                                    case 10:
                                    case 8:
                                    case 1:
                                        {
                                            r = 5;
                                            break t
                                        }
                                    case 3:
                                        break;
                                    default:
                                        continue t
                                }
                                i = Jh(a[i + 16 >> 2] | 0) | 0;
                                if (i | 0) break
                            }
                            if ((r | 0) == 5) {
                                r = 0;
                                t = t + 1 | 0;
                                continue
                            }
                            i = a[i + 116 >> 2] | 0;ZE(i) | 0;
                            while (1) {
                                if (!i) continue e;
                                n = (_N(a[i >> 2] | 0) | 0) + t | 0;
                                i = a[i + 4 >> 2] | 0;
                                t = n
                            }
                        }
                        return t | 0
                    }

                    function bN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        e = e & 255;
                        if ((t | 0) != 0 ? (r = a[t + 36 >> 2] | 0, (r | 0) != 0) : 0) {
                            e = n[i + 94 >> 1] | 0;
                            e = (s[r + ((e & 65535) >>> 3 & 65535) >> 0] | 0) >>> (e & 7) & 1
                        }
                        return e | 0
                    }

                    function gN(e, t, i, s, o) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0;
                        y = p;
                        p = p + 16 | 0;
                        _ = y + 4 | 0;
                        b = y;
                        d = e + 20 | 0;
                        m = a[d >> 2] | 0;
                        g = e + 56 | 0;
                        u = a[g >> 2] | 0;
                        e: do {
                            if (u | 0) {
                                v = (a[i >> 2] | 0) == 0 ? i : 0;
                                l = zd(a[(a[m + 8 >> 2] | 0) + 208 >> 2] | 0) | 0;
                                c = i + 24 | 0;
                                h = a[c >> 2] | 0;
                                t: do {
                                    switch (h | 0) {
                                        case 8:
                                        case 0:
                                            {
                                                a[m + 84 >> 2] = l;
                                                if ((h | 0) == 8) {
                                                    a[m + 72 >> 2] = s;
                                                    n[m + 100 >> 1] = n[e >> 1] | 0
                                                }
                                                u = a[u + 68 >> 2] | 0;
                                                if ((jd(u, l) | 0) == 1)
                                                    if (!(Gd(u, l) | 0)) break e;
                                                    else break t;
                                                if (v | 0 ? (f = a[v + 92 >> 2] | 0, (jd(f, l) | 0) == 1) : 0)
                                                    if (!(Gd(f, l) | 0)) break e;
                                                    else break t;
                                                if ((Ds(l >>> 16 & 65535) | 0) << 16 >> 16 != (l & 65535) << 16 >> 16) break e;
                                                break
                                            }
                                        default:
                                            {}
                                    }
                                } while (0);
                                JE(_);
                                n[e + 2 >> 1] = -1;
                                if (o | 0 ? nd(e) | 0 : 0) iN(a[(a[e + 32 >> 2] | 0) + 12 >> 2] | 0, o);
                                l = m + 113 | 0;
                                if (r[l >> 0] | 0) {
                                    if (KE(a[(a[1698] | 0) + 144 >> 2] | 0) | 0) np(a[g >> 2] | 0, i);
                                    u = m + 48 | 0;
                                    rS(u, b);
                                    while (1) {
                                        h = a[b >> 2] | 0;
                                        if (!h) break;
                                        eS(_, h);
                                        rS(u, b)
                                    }
                                }
                                u = e + 130 | 0;
                                r[u >> 0] = 1;
                                if ((a[c >> 2] | 0) == 8) {
                                    r[u >> 0] = 4;
                                    u = a[(a[d >> 2] | 0) + 16 >> 2] | 0;
                                    if (!u) u = a[(a[(a[g >> 2] | 0) + 112 >> 2] | 0) + 76 >> 2] | 0;
                                    a[e + 140 >> 2] = a[u + 12 >> 2]
                                }
                                Wc(s, e);
                                if (r[l >> 0] | 0) {
                                    h = m + 48 | 0;
                                    if (!((KE(a[m + 56 >> 2] | 0) | 0) == 0 ? !(KE(a[(a[1698] | 0) + 132 >> 2] | 0) | 0) : 0)) {
                                        u = a[_ >> 2] | 0;
                                        ZE(u) | 0;
                                        while (1) {
                                            if (!u) break;
                                            s = a[u + 4 >> 2] | 0;
                                            Gh(a[u >> 2] | 0, 52);
                                            u = s
                                        }
                                        if (t | 0) yN(t, v, n[m + 94 >> 1] | 0)
                                    }
                                    rS(_, b);
                                    while (1) {
                                        u = a[b >> 2] | 0;
                                        if (!u) break;
                                        eS(h, u);
                                        rS(_, b)
                                    }
                                }
                                rp();
                                u = a[e + 32 >> 2] | 0;
                                if (u | 0 ? (a[b >> 2] = 0, _ = (mO(a[(a[u + 12 >> 2] | 0) + 284 >> 2] | 0, b) | 0) == 1, _ & (a[b >> 2] | 0) >>> 0 > 1) : 0) np(a[g >> 2] | 0, a[e + 16 >> 2] | 0)
                            }
                        } while (0);
                        p = y;
                        return
                    }

                    function yN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            r = a[e >> 2] | 0;
                            if ((r | 0) != (t | 0)) AN(r, i);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function AN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        i = a[e + 116 >> 2] | 0;
                        ZE(i) | 0;
                        r = t << 16 >> 16 == -1;
                        while (1) {
                            if (!i) break;
                            s = a[i >> 2] | 0;
                            if (!(!r ? (n[s + 94 >> 1] | 0) != t << 16 >> 16 : 0)) wN(s, 52);
                            i = a[i + 4 >> 2] | 0
                        }
                        i = a[e + 8 >> 2] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) break;
                            e = a[i >> 2] | 0;
                            if (!(a[e >> 2] | 0)) AN(e, t);
                            else yN(e, 0, t);
                            i = a[i + 4 >> 2] | 0
                        }
                        return
                    }

                    function wN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        e = a[e + 48 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            i = a[e + 4 >> 2] | 0;
                            Gh(a[e >> 2] | 0, t);
                            e = i
                        }
                        return
                    }

                    function xN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return SN(e, t) | 0
                    }

                    function kN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        if ((e | 0 ? (i = e + 48 | 0, n = i, r = a[n >> 2] | 0, n = a[n + 4 >> 2] | 0, !((n | 0) < 0 | (n | 0) == 0 & r >>> 0 < 1)) : 0) ? (n = sM(r | 0, n | 0, t | 0, ((t | 0) < 0) << 31 >> 31 | 0) | 0, r = P, i, a[i >> 2] = n, a[i + 4 >> 2] = r, (r | 0) < 0 | (r | 0) == 0 & n >>> 0 < 1) : 0) Gh(e, 67);
                        return
                    }

                    function TN(e) {
                        e = e | 0;
                        return (Jh(e) | 0) != 0 | 0
                    }

                    function EN(e) {
                        e = e | 0;
                        return (qh(e) | 0) != 0 | 0
                    }

                    function SN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = th(e) | 0;
                        if (!e) e = 0;
                        else e = PN(e, t) | 0;
                        return e | 0
                    }

                    function PN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = el(e, t) | 0;
                        if (!e) e = 0;
                        else e = rF(a[e + 12 >> 2] | 0) | 0;
                        return e | 0
                    }

                    function IN(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            h = 0;
                        h = (a[e + 8 >> 2] | 0) + (G(a[e + 20 >> 2] | 0, t & 65535) | 0) | 0;
                        u = a[e + 36 >> 2] | 0;
                        e = a[e + 16 >> 2] | 0;
                        t = i & 65535;
                        i = r[e + (xE(h + (o[u + 18 >> 1] | 0) | 0) | 0) + t >> 0] | 0;
                        n[s >> 1] = wE(e + (xE(h + (o[u + 10 >> 1] | 0) | 0) | 0) + (t << 1) | 0) | 0;
                        return i & 255 | 0
                    }

                    function MN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        yL(e + 2828 | 0, t, i);
                        return
                    }

                    function CN(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        s = e + 129 | 0;
                        if ((r[s >> 0] | 0) == 1) {
                            o = Fa() | 0;
                            u = e + 20 | 0;
                            h = e + 76 | 0;
                            i = e + 80 | 0;
                            e = 0;
                            while (1) {
                                if ((e | 0) == (o | 0)) break;
                                t = n[(a[u >> 2] | 0) + (e << 1) >> 1] | 0;
                                if (t << 16 >> 16 != -1 ? (a[h >> 2] & 2 | 0) == 0 : 0) T_(t, (a[i >> 2] | 0) == 0 & 1, 1);
                                e = e + 1 | 0
                            }
                            r[s >> 0] = 2
                        }
                        return
                    }

                    function ON(e, t, i, s, o, u, h, l, f) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        l = l | 0;
                        f = f | 0;
                        var c = 0,
                            d = 0,
                            p = 0;
                        do {
                            if (h | 0) {
                                h = i + 178 | 0;
                                c = n[h >> 1] | 0;
                                if (c << 16 >> 16 > 0) n[h >> 1] = (c & 65535) + 65535;
                                h = r[t + 53 >> 0] | 0;
                                if (h << 24 >> 24) {
                                    a[l >> 2] = h & 255;
                                    QB(t, a[s + 56 >> 2] | 0);
                                    break
                                }
                                c = a[(a[s + 56 >> 2] | 0) + 96 >> 2] | 0;
                                h = c & 65535;
                                if ((c & 65535 | 0) != 65535 ? (d = i + 172 | 0, (n[d >> 1] | 0) > 0) : 0) {
                                    n[d >> 1] = 0;
                                    h = -1
                                }
                                gL(i, t, s, u, (r[i + 189 >> 0] | 0) == 0 ? h : -1, l, o - (a[e + 80 >> 2] | 0) | 0)
                            }
                        } while (0);
                        do {
                            if (!(a[l >> 2] | 0)) {
                                if ((n[i + 178 >> 1] | 0) > 0 ? (gL(i, t, s, u, -1, l, o - (a[e + 80 >> 2] | 0) | 0), a[l >> 2] | 0) : 0) {
                                    p = 13;
                                    break
                                }
                                a[e + 68 >> 2] = 3;
                                a[f >> 2] = 0
                            } else p = 13
                        } while (0);
                        e: do {
                            if ((p | 0) == 13) switch (r[i + 191 >> 0] | 0) {
                                case 0:
                                    {
                                        h = o - (a[e + 80 >> 2] | 0) | 0;
                                        if ((h | 0) < 1) jh(e, 1, 45);
                                        else {
                                            if ((r[e + 112 >> 0] | 0) != 1) a[e + 88 >> 2] = h;
                                            jh(e, 1, 72)
                                        }
                                        a[e + 68 >> 2] = 3;a[f >> 2] = 0;
                                        break e
                                    }
                                case 1:
                                    {
                                        jh(e, 2, 46);a[e + 68 >> 2] = 3;a[f >> 2] = 0;
                                        break e
                                    }
                                default:
                                    {
                                        NE();
                                        break e
                                    }
                            }
                        } while (0);
                        return
                    }

                    function RN(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0;
                        A = p;
                        p = p + 32 | 0;
                        m = A + 8 | 0;
                        g = A;
                        h = Fa() | 0;
                        u = (ff() | 0) & 255;
                        u = u + 376 + (h + u + (u << 1) << 2) | 0;
                        d = t + 32 | 0;
                        do {
                            if ((a[d >> 2] | 0) != 0 ? (v = t + 38 | 0, (n[v >> 1] | 0) != -1) : 0) {
                                _ = bL(e) | 0;
                                c = (_ | 0) != 0;
                                f = c ? 2 : 0;
                                b = op(0) | 0;
                                if (!b) {
                                    sE();
                                    break
                                }
                                l = ff() | 0;
                                u = cf(l, h & 255, 6, a[b + 64 >> 2] | 0, u) | 0;
                                l = b + 68 | 0;
                                a[l >> 2] = u;
                                od(u, i);
                                go(a[l >> 2] | 0, 146, 1.0);
                                u = a[(a[l >> 2] | 0) + 80 >> 2] | 0;
                                h = ll(u) | 0;
                                if ((h | 0 ? (vI(u + 324 | 0), (a[u + 320 >> 2] | 0) == 1) : 0) ? (a[u + 332 >> 2] | 0) == (h | 0) : 0) NE();
                                u = a[(a[l >> 2] | 0) + 84 >> 2] | 0;
                                if (fl(u) | 0) vI(u + 156 | 0);
                                a[b + 76 >> 2] = f;
                                i = b + 60 | 0;
                                a[i >> 2] = e;
                                l = b + 84 | 0;
                                f = t + 8 | 0;
                                a[l >> 2] = a[f >> 2];
                                a[l + 4 >> 2] = a[f + 4 >> 2];
                                a[l + 8 >> 2] = a[f + 8 >> 2];
                                l = e + 104 | 0;
                                a[(a[l >> 2] | 0) + 36 >> 2] = b;
                                if (c) {
                                    u = bu() | 0;
                                    if (!u) {
                                        l_(b);
                                        break
                                    } else h = u
                                } else h = 0;
                                u = e + 148 | 0;
                                if ((r[u >> 0] | 0) != -1) nE(b + 152 | 0, 8, u, 8);
                                a[m >> 2] = 0;
                                a[m + 12 >> 2] = 65535;
                                a[m + 16 >> 2] = 0;
                                u = m + 20 | 0;
                                a[u >> 2] = 0;
                                a[m + 4 >> 2] = b;
                                a[m + 8 >> 2] = a[d >> 2];
                                if (s | 0) a[u >> 2] = s;
                                Lc(n[v >> 1] | 0, o[t + 40 >> 1] | 0, m);
                                _C(b) | 0;
                                u = (h | 0) == 0;
                                if (!u) {
                                    a[h >> 2] = 1;
                                    m = Co(b) | 0;
                                    a[h + 12 >> 2] = m;
                                    a[h + 16 >> 2] = m;
                                    gu(a[_ + 112 >> 2] | 0, h)
                                }
                                a[(a[l >> 2] | 0) + 36 >> 2] = 0;
                                tS((a[i >> 2] | 0) + 180 | 0, b + 24 | 0);
                                a[(a[i >> 2] | 0) + 16 >> 2] = 1;
                                a[e + 200 >> 2] = Co(b) | 0;
                                a[e + 196 >> 2] = 0;
                                if ((r[b + 124 >> 0] | 0) == 2) yC(e, b, 0, u & 1);
                                u = a[e + 300 >> 2] | 0;
                                if (u | 0) {
                                    a[g + 4 >> 2] = Co(b) | 0;
                                    a[g >> 2] = e;
                                    l$[u & 7](a[e + 304 >> 2] | 0, 0, g)
                                }
                            } else y = 3
                        } while (0);
                        if ((y | 0) == 3) NE();
                        p = A;
                        return
                    }

                    function DN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o;
                        QE(i);
                        switch (r[e + 42 >> 0] | 0) {
                            case 0:
                                {
                                    a[s >> 2] = i;i = a[e + 32 >> 2] | 0;
                                    if (!i) i = 0;
                                    else i = a[i + 88 >> 2] | 0;a[s + 4 >> 2] = i;n[s + 8 >> 1] = n[e + 36 >> 1] | 0;cL(s);
                                    break
                                }
                            case 1:
                                {
                                    a[s >> 2] = i;i = a[e + 32 >> 2] | 0;
                                    if (!i) i = 0;
                                    else i = a[i + 88 >> 2] | 0;a[s + 4 >> 2] = i;n[s + 8 >> 1] = n[e + 36 >> 1] | 0;dL(a[(a[t + 56 >> 2] | 0) + 60 >> 2] | 0, s);
                                    break
                                }
                            default:
                                {}
                        }
                        p = o;
                        return
                    }

                    function FN(e) {
                        e = e | 0;
                        var t = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == 2) break;
                            fL(a[a[7432 + (t << 2) >> 2] >> 2] | 0, e);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function BN(e, t, i, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        u = u | 0;
                        var l = 0.0,
                            f = 0.0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        m = p;
                        p = p + 32 | 0;
                        d = m + 24 | 0;
                        v = m;
                        a[d >> 2] = 0;
                        e: do {
                            if ((u | 0) != 1) {
                                c = a[e + 20 >> 2] | 0;
                                if (!c) {
                                    v = e + 44 | 0;
                                    a[v >> 2] = (a[v >> 2] | 0) + (i & 65535);
                                    break
                                }
                                e = e + 44 | 0;
                                _ = a[e >> 2] | 0;
                                u = _ + 2 | 0;
                                a[e >> 2] = u;
                                l = 1.0e3 / +((wE(_) | 0) & 65535);
                                i = _ + 3 | 0;
                                a[e >> 2] = i;
                                u = s[u >> 0] | 0;
                                a[e >> 2] = _ + 4;
                                f = +(s[i >> 0] | 0) / 100.0;
                                a[v + 20 >> 2] = 7110;
                                h[v >> 2] = l;
                                a[v + 4 >> 2] = u;
                                h[v + 8 >> 2] = f;
                                n[v + 12 >> 1] = n[c + 44 >> 1] | 0;
                                switch (r[c + 43 >> 0] | 0) {
                                    case 1:
                                        break;
                                    case 2:
                                        {
                                            lL(n[c + 36 >> 1] | 0, ~~(1.0e3 / l) & 65535, u, f);
                                            break e
                                        }
                                    default:
                                        break e
                                }
                                if (a[c + 32 >> 2] | 0 ? (DN(c, t, o), KE(a[o + 8 >> 2] | 0) | 0) : 0) {
                                    rS(o, d);
                                    while (1) {
                                        u = a[d >> 2] | 0;
                                        if (!u) break e;
                                        _ = a[u >> 2] | 0;
                                        eL(a[(a[_ + 72 >> 2] | 0) + 8 >> 2] | 0, 24, v);
                                        a[_ + 108 >> 2] = 0;
                                        rS(o, d)
                                    }
                                }
                            } else {
                                _ = e + 44 | 0;
                                a[_ >> 2] = (a[_ >> 2] | 0) + (i & 65535)
                            }
                        } while (0);
                        p = m;
                        return
                    }

                    function NN() {
                        var e = 0,
                            t = 0;
                        t = p;
                        p = p + 16 | 0;
                        e = t;
                        rS((a[1698] | 0) + 112 | 0, e);
                        e = a[e >> 2] | 0;
                        if (!e) {
                            NE();
                            e = 0
                        } else e = a[e >> 2] | 0;
                        p = t;
                        return e | 0
                    }

                    function LN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        e: do {
                            if (e | 0) {
                                e = a[e + 8 >> 2] | 0;
                                ZE(e) | 0;
                                while (1) {
                                    if (!e) break e;
                                    r = a[e >> 2] | 0;
                                    if (!(a[r >> 2] | 0)) oL(a[r + 92 >> 2] | 0, t, i);
                                    else uL(r, t, i);
                                    e = a[e + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function UN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = sL(e) | 0;
                        if (e | 0) a[e + 148 >> 2] = t;
                        return
                    }

                    function VN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = sL(e) | 0;
                        if (e | 0) a[e + 144 >> 2] = t;
                        return
                    }

                    function XN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = sL(e) | 0;
                        if (e | 0) a[e + 136 >> 2] = t;
                        return
                    }

                    function jN(e, t, i, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 32 | 0;
                        h = f + 24 | 0;
                        l = f;
                        a[h >> 2] = 0;
                        e: do {
                            if ((o | 0) == 1) {
                                l = e + 44 | 0;
                                a[l >> 2] = (a[l >> 2] | 0) + (i & 65535)
                            } else {
                                o = a[e + 20 >> 2] | 0;
                                if (!o) {
                                    l = e + 44 | 0;
                                    a[l >> 2] = (a[l >> 2] | 0) + (i & 65535);
                                    break
                                }
                                a[l + 20 >> 2] = u | 0 ? 7108 : 7109;
                                a[l >> 2] = u;
                                switch (r[o + 43 >> 0] | 0) {
                                    case 1:
                                        break;
                                    case 2:
                                        {
                                            aL(n[o + 36 >> 1] | 0, u);
                                            break e
                                        }
                                    default:
                                        break e
                                }
                                if (!(a[o + 32 >> 2] | 0)) {
                                    l = e + 44 | 0;
                                    a[l >> 2] = (a[l >> 2] | 0) + (i & 65535);
                                    break
                                }
                                DN(o, t, s);
                                if (!(KE(a[s + 8 >> 2] | 0) | 0)) {
                                    l = e + 44 | 0;
                                    a[l >> 2] = (a[l >> 2] | 0) + (i & 65535);
                                    break
                                }
                                rS(s, h);
                                while (1) {
                                    o = a[h >> 2] | 0;
                                    if (!o) break e;
                                    t = a[o >> 2] | 0;
                                    i = a[t + 72 >> 2] | 0;
                                    lN(Co(t) | 0, u);
                                    a[t + 108 >> 2] = 0;
                                    eL(a[i + 8 >> 2] | 0, 25, l);
                                    rS(s, h)
                                }
                            }
                        } while (0);
                        p = f;
                        return
                    }

                    function GN(e, t, i, o, u, l) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        o = o | 0;
                        u = u | 0;
                        l = l | 0;
                        var f = 0.0,
                            c = 0.0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0;
                        _ = p;
                        p = p + 32 | 0;
                        v = _ + 24 | 0;
                        m = _;
                        a[v >> 2] = 0;
                        e: do {
                            if ((u | 0) != 1) {
                                d = a[e + 20 >> 2] | 0;
                                if (!d) {
                                    m = e + 44 | 0;
                                    a[m >> 2] = (a[m >> 2] | 0) + (i & 65535);
                                    break
                                }
                                i = e + 44 | 0;
                                b = a[i >> 2] | 0;
                                u = b + 2 | 0;
                                a[i >> 2] = u;
                                f = 1.0e3 / +((wE(b) | 0) & 65535);
                                e = b + 3 | 0;
                                a[i >> 2] = e;
                                u = r[u >> 0] | 0;
                                a[i >> 2] = b + 4;
                                c = +(s[e >> 0] | 0) / 100.0;
                                e = (l | 0) != 0;
                                a[m + 20 >> 2] = e ? 7111 : 7112;
                                a[m >> 2] = l;
                                h[m + 4 >> 2] = f;
                                u = u & 255;
                                a[m + 8 >> 2] = u;
                                h[m + 12 >> 2] = c;
                                n[m + 16 >> 1] = n[d + 44 >> 1] | 0;
                                switch (r[d + 43 >> 0] | 0) {
                                    case 1:
                                        break;
                                    case 2:
                                        {
                                            tL(n[d + 36 >> 1] | 0, ~~(1.0e3 / f) & 65535, u, c, l);
                                            break e
                                        }
                                    default:
                                        break e
                                }
                                if (a[d + 32 >> 2] | 0 ? (DN(d, t, o), KE(a[o + 8 >> 2] | 0) | 0) : 0) {
                                    rS(o, v);
                                    while (1) {
                                        u = a[v >> 2] | 0;
                                        if (!u) break e;
                                        u = a[u >> 2] | 0;
                                        eL(a[(a[u + 72 >> 2] | 0) + 8 >> 2] | 0, 26, m);
                                        if (!e) lN(Co(u) | 0, 0);
                                        a[u + 108 >> 2] = 0;
                                        rS(o, v)
                                    }
                                }
                            } else {
                                b = e + 44 | 0;
                                a[b >> 2] = (a[b >> 2] | 0) + (i & 65535)
                            }
                        } while (0);
                        p = _;
                        return
                    }

                    function $N(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (!((e | 0) == 0 | (t | 0) == 0)) {
                                e = a[e + 324 >> 2] | 0;
                                if (!e) {
                                    sE();
                                    break
                                } else {
                                    ZN(a[e + 4 >> 2] | 0, a[(a[e + 12 >> 2] | 0) + 20 >> 2] | 0, t);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function HN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        switch (a[e + 8 >> 2] | 0) {
                            case 10:
                            case 7:
                            case 8:
                            case 1:
                                {
                                    xu(a[e + 20 >> 2] | 0, t);
                                    break
                                }
                            case 3:
                            case 4:
                                {
                                    qN(a[e + 16 >> 2] | 0, t);
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function WN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0;
                        n = a[i >> 2] | 0;
                        a[i >> 2] = n + 1;
                        i = r[n >> 0] | 0;
                        switch (t | 0) {
                            case 9483:
                                {
                                    r[e + 117 >> 0] = i;go(a[e + 8 >> 2] | 0, 0, +(i & 255) / 127.0 * (+(s[e + 116 >> 0] | 0) / 127.0));
                                    break
                                }
                            case 9482:
                                {
                                    go(a[e + 8 >> 2] | 0, 5, +((i & 255) + -64 | 0) * .015625 * 30.0);
                                    break
                                }
                            case 9479:
                                {
                                    r[e + 116 >> 0] = i;go(a[e + 8 >> 2] | 0, 0, +(i & 255) / 127.0 * (+(s[e + 117 >> 0] | 0) / 127.0));
                                    break
                                }
                            default:
                                {}
                        }
                        return
                    }

                    function YN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        a[r >> 2] = 0;
                        a[e + 68 >> 2] = 0;
                        e = e + 48 | 0;
                        rS(e, r);
                        while (1) {
                            i = a[r >> 2] | 0;
                            if (!i) break;
                            i = a[i >> 2] | 0;
                            HN(i, t);
                            Wh(i);
                            rS(e, r)
                        }
                        p = n;
                        return
                    }

                    function zN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 16 | 0;
                        f = v;
                        i = a[t >> 2] | 0;
                        a[f >> 2] = i;
                        c = e + 126 | 0;
                        d = t + 4 | 0;
                        o = 0;
                        r = i;
                        e: while (1) {
                            if (o) break;
                            while (1) {
                                h = wE(r) | 0;
                                l = r + 3 | 0;
                                a[f >> 2] = l;
                                o = s[r + 2 >> 0] | 0;
                                u = h & 65535;
                                do {
                                    if (h << 16 >> 16 != 9220)
                                        if ((h + -9472 & 65535) < 102) {
                                            WN(e, u, f);
                                            i = a[t >> 2] | 0;
                                            r = a[f >> 2] | 0;
                                            break
                                        } else {
                                            r = l + o | 0;
                                            a[f >> 2] = r;
                                            break
                                        }
                                    else {
                                        r = r + 4 | 0;
                                        a[f >> 2] = r;
                                        n[c >> 1] = s[l >> 0] | 0
                                    }
                                } while (0);
                                if (((a[d >> 2] | 0) + i | 0) == (r | 0)) {
                                    o = 1;
                                    continue e
                                }
                            }
                        }
                        p = v;
                        return
                    }

                    function qN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = Jh(e) | 0;
                        if (e | 0) JN(e, t);
                        return
                    }

                    function JN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        n = s;
                        a[n >> 2] = 0;
                        i = e + 116 | 0;
                        rS(i, n);
                        while (1) {
                            r = a[n >> 2] | 0;
                            if (!r) break;
                            r = a[r >> 2] | 0;
                            YN(r, t);
                            Wd(r);
                            rS(i, n)
                        }
                        i = e + 8 | 0;
                        rS(i, n);
                        while (1) {
                            e = a[n >> 2] | 0;
                            if (!e) break;
                            e = a[e >> 2] | 0;
                            if (!(a[e >> 2] | 0)) {
                                JN(e, t);
                                Ad(e)
                            } else {
                                QN(e, t);
                                yd(e)
                            }
                            rS(i, n)
                        }
                        p = s;
                        return
                    }

                    function QN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        n = p;
                        p = p + 16 | 0;
                        r = n;
                        a[r >> 2] = 0;
                        e = e + 20 | 0;
                        rS(e, r);
                        while (1) {
                            i = a[r >> 2] | 0;
                            if (!i) break;
                            i = a[i >> 2] | 0;
                            JN(i, t);
                            Ad(i);
                            rS(e, r)
                        }
                        p = n;
                        return
                    }

                    function ZN(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        l$[t & 7](e, i, 1);
                        return
                    }

                    function KN(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0,
                            u = 0.0,
                            l = 0,
                            f = 0.0,
                            c = 0;
                        u = +h[t + 4 >> 2];
                        l = a[t + 8 >> 2] | 0;
                        f = +h[t + 12 >> 2];
                        o = n[t + 16 >> 1] | 0;
                        t = (a[t >> 2] | 0) != 0;
                        i = e + 69 | 0;
                        s = r[i >> 0] | 0;
                        e: do {
                            if (!t) {
                                if ((s & -2) << 24 >> 24 != 2) c = 5
                            } else {
                                switch (s << 24 >> 24) {
                                    case 1:
                                        break e;
                                    case 3:
                                        break;
                                    default:
                                        {
                                            c = 5;
                                            break e
                                        }
                                }
                                El(a[e + 92 >> 2] | 0, 146, 0.0, 0, 0, 0.0)
                            }
                        } while (0);
                        if ((c | 0) == 5) {
                            jB(e, 146, t ? 0.0 : 1.0, u, l, f, o);
                            r[i >> 0] = t ? 1 : 2
                        }
                        return
                    }

                    function eL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            r = a[e >> 2] | 0;
                            switch (a[r >> 2] | 0) {
                                case 0:
                                    {
                                        u$[t & 63](r, i);
                                        break
                                    }
                                case 1:
                                    {
                                        eL(a[r + 20 >> 2] | 0, t, i);
                                        break
                                    }
                                default:
                                    {}
                            }
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function tL(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        n = n | 0;
                        e = iL(e) | 0;
                        if (e | 0) rL(e, t, i, r, n);
                        return
                    }

                    function iL(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        do {
                            if (!(rf(0) | 0)) {
                                sE();
                                e = 0
                            } else {
                                t = e << 16 >> 16;
                                if (e << 16 >> 16 >= 0 ? (i = a[1687] | 0, (a[i + 52 >> 2] | 0) > (t | 0)) : 0) {
                                    e = (a[i + 12 >> 2] | 0) + (t * 84 | 0) | 0;
                                    break
                                }
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function rL(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = +n;
                        s = s | 0;
                        var o = 0,
                            u = 0;
                        eo();
                        do {
                            if (s) {
                                s = t & 65535;
                                o = e + 12 | 0;
                                u = a[o >> 2] | 0;
                                if (!(t << 16 >> 16)) {
                                    Io(u, 148, 1);
                                    El(a[o >> 2] | 0, 146, 0.0, s, i, n);
                                    s = 1;
                                    break
                                } else {
                                    El(u, 146, 0.0, s, i, n);
                                    s = 0;
                                    break
                                }
                            } else {
                                s = e + 12 | 0;
                                Io(a[s >> 2] | 0, 148, 0);
                                El(a[s >> 2] | 0, 146, 1.0, t & 65535, i, n);
                                s = 1
                            }
                        } while (0);
                        r[e + 28 >> 0] = s;
                        so();
                        return
                    }

                    function nL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        n = a[t >> 2] | 0;
                        i = e + 69 | 0;
                        e: do {
                            switch (r[i >> 0] | 0) {
                                case 1:
                                    {
                                        t = a[e + 92 >> 2] | 0;
                                        if (!n) {
                                            El(t, 146, 1.0, 0, 0, 0.0);
                                            r[i >> 0] = 2;
                                            break e
                                        } else {
                                            El(t, 146, 0.0, 0, 0, 0.0);
                                            break e
                                        }
                                    }
                                case 2:
                                    {
                                        if (n | 0) El(a[e + 92 >> 2] | 0, 146, 0.0, 0, 0, 0.0);
                                        break
                                    }
                                case 3:
                                    {
                                        if (n | 0) El(a[e + 92 >> 2] | 0, 146, 0.0, 0, 0, 0.0);
                                        break
                                    }
                                case 0:
                                    {
                                        t = a[e + 92 >> 2] | 0;
                                        if (!n) {
                                            El(t, 146, 1.0, 0, 0, 0.0);
                                            break e
                                        } else {
                                            El(t, 146, 0.0, 0, 0, 0.0);
                                            break e
                                        }
                                    }
                                default:
                                    {}
                            }
                        } while (0);
                        return
                    }

                    function aL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = iL(e) | 0;
                        if (e | 0) rL(e, n[((t | 0) == 0 ? e + 24 | 0 : e + 26 | 0) >> 1] | 0, 0, 1.0, t);
                        return
                    }

                    function sL(e) {
                        e = e | 0;
                        var t = 0;
                        if (!((e | 0) != 0 ? (t = a[e + 208 >> 2] | 0, (Bo(t) | 0) != 0) : 0)) {
                            sE();
                            t = 0
                        }
                        return t | 0
                    }

                    function oL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        Qo(e, t, i);
                        return
                    }

                    function uL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        e = a[e + 20 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            oL(a[(a[e >> 2] | 0) + 92 >> 2] | 0, t, i);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function hL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 69 | 0;
                        if ((r[i >> 0] | 0) != 3) {
                            jB(e, 146, 0.0, +h[t >> 2], a[t + 4 >> 2] | 0, +h[t + 8 >> 2], n[t + 12 >> 1] | 0);
                            r[i >> 0] = 3
                        }
                        return
                    }

                    function lL(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = +n;
                        e = iL(e) | 0;
                        if (e | 0) {
                            eo();
                            El(a[e + 12 >> 2] | 0, 146, 0.0, t & 65535, i, n);
                            r[e + 28 >> 0] = 2;
                            so()
                        }
                        return
                    }

                    function fL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = Fa() | 0;
                        oS(e) | 0;
                        while (1) {
                            if (!e) break;
                            s = a[(a[e >> 2] | 0) + 180 >> 2] | 0;
                            ZE(s) | 0;
                            while (1) {
                                if (!s) break;
                                u = a[s >> 2] | 0;
                                e: do {
                                    if ((r[u + 131 >> 0] | 0) == 1) {
                                        o = u + 20 | 0;
                                        i = 0;
                                        while (1) {
                                            if (i >>> 0 >= h >>> 0) break e;
                                            if ((n[(a[o >> 2] | 0) + (i << 1) >> 1] | 0) == t << 16 >> 16) break;
                                            else i = i + 1 | 0
                                        }
                                        yu(u);
                                        r[u + 127 >> 0] = 0;
                                        mu(u, 0, 65)
                                    }
                                } while (0);
                                s = a[s + 4 >> 2] | 0
                            }
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function cL(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1866] | 0;
                        oS(t) | 0;
                        while (1) {
                            if (!t) break;
                            pL(e, a[t >> 2] | 0);
                            t = a[t + 4 >> 2] | 0
                        }
                        return
                    }

                    function dL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 280 >> 2] | 0;
                        if (!i) pL(t, e);
                        else mL(i, t);
                        return
                    }

                    function pL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        e: do {
                            if (a[t + 16 >> 2] | 0) {
                                t = a[t + 180 >> 2] | 0;
                                ZE(t) | 0;
                                i = e + 4 | 0;
                                r = e + 8 | 0;
                                while (1) {
                                    if (!t) break e;
                                    _L(a[t >> 2] | 0, a[e >> 2] | 0, a[i >> 2] | 0, n[r >> 1] | 0);
                                    t = a[t + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function vL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        pL(e, t);
                        return
                    }

                    function mL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e = a[e + 12 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            vL(t, a[e >> 2] | 0);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function _L(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0;
                        e: do {
                            if (!(r[e + 122 >> 0] | 0)) {
                                switch (a[e + 84 >> 2] | 0) {
                                    case 1:
                                        {
                                            s = a[e + 88 >> 2] | 0;o = Bd(a[s + 8 >> 2] | 0) | 0;s = mv(s, a[e + 92 >> 2] | 0) | 0;u = 6;
                                            break
                                        }
                                    case 2:
                                        {
                                            s = a[e + 88 >> 2] | 0;o = Bd(a[s + 8 >> 2] | 0) | 0;s = _v(s, a[e + 92 >> 2] | 0) | 0;u = 6;
                                            break
                                        }
                                    case 3:
                                        {
                                            o = Bd(a[(a[e + 88 >> 2] | 0) + 8 >> 2] | 0) | 0;s = a[e + 92 >> 2] | 0;u = 6;
                                            break
                                        }
                                    default:
                                        {}
                                }
                                do {
                                    if ((u | 0) == 6 ? !((o | 0) == 0 | (s & 65535 | 0) == 65535) : 0) {
                                        if (i | 0 ? !((JI(o, i) | 0) == 0 ? (s & 65535) << 16 >> 16 == n << 16 >> 16 : 0) : 0) break;
                                        if (a[e + 72 >> 2] | 0) {
                                            o = e + 108 | 0;
                                            u = a[o >> 2] | 0;
                                            s = e + 100 | 0;
                                            if (u | 0) iS(u, s);
                                            tS(t, s);
                                            a[o >> 2] = t
                                        }
                                    }
                                } while (0);
                                s = a[e + 48 >> 2] | 0;
                                ZE(s) | 0;
                                while (1) {
                                    if (!s) break e;
                                    _L(a[s >> 2] | 0, t, i, n);
                                    s = a[s + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function bL(e) {
                        e = e | 0;
                        var t = 0;
                        e: do {
                            if (!(a[e + 16 >> 2] | 0)) e = 0;
                            else {
                                t = a[e + 180 >> 2] | 0;
                                ZE(t) | 0;
                                while (1) {
                                    if (!t) {
                                        e = 0;
                                        break e
                                    }
                                    e = a[t >> 2] | 0;
                                    if ((a[e + 112 >> 2] | 0 ? (r[e + 121 >> 0] | 0) == 0 : 0) ? (r[e + 130 >> 0] | 0) == 0 : 0) break e;
                                    t = a[t + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        return e | 0
                    }

                    function gL(e, t, i, s, o, u, h) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        h = h | 0;
                        var l = 0,
                            f = 0;
                        l = e + 178 | 0;
                        f = (n[l >> 1] | 0) == 0;
                        if (!s)
                            if (f) s = 5;
                            else {
                                l = 11;
                                s = 11
                            }
                        else if (f) s = 5;
                        else {
                            n[l >> 1] = 0;
                            s = 5
                        }
                        e: do {
                            if ((s | 0) == 5) switch (r[e + 190 >> 0] | 0) {
                                case 0:
                                    {
                                        l = 10;s = 11;
                                        break e
                                    }
                                case 2:
                                    {
                                        l = 1;s = 11;
                                        break e
                                    }
                                case 3:
                                    {
                                        l = 2;s = 11;
                                        break e
                                    }
                                case 4:
                                    {
                                        l = 3;s = 11;
                                        break e
                                    }
                                case 5:
                                    {
                                        l = 4;s = 11;
                                        break e
                                    }
                                default:
                                    {
                                        if (!(r[e + 189 >> 0] | 0)) {
                                            l = 9;
                                            s = 11;
                                            break e
                                        }
                                        r[u >> 0] = 0;
                                        break e
                                    }
                            }
                        } while (0);
                        if ((s | 0) == 11) {
                            f = i + 24 | 0;
                            a[f >> 2] = e;
                            r[u >> 0] = ov(i, t, 0 - h | 0, l, o, 0) | 0;
                            a[f >> 2] = 0
                        }
                        return
                    }

                    function yL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        gS(i, 0, 28) | 0;
                        f = a[e >> 2] | 0;
                        t = t & 65535;
                        r[i + 26 >> 0] = TE(f, t, 0) | 0;
                        n[i + 24 >> 1] = EE(f, t, 1) | 0;
                        u = a[f + 8 >> 2] | 0;
                        h = f + 20 | 0;
                        s = u + (G(a[h >> 2] | 0, t) | 0) | 0;
                        l = o[(a[f + 36 >> 2] | 0) + 4 >> 1] | 0;
                        a[i + 12 >> 2] = xE(s + l + 4 | 0) | 0;
                        f = a[f + 16 >> 2] | 0;
                        a[i >> 2] = f + (xE(u + (G(a[h >> 2] | 0, t) | 0) + l | 0) | 0);
                        l = a[e >> 2] | 0;
                        h = a[l + 8 >> 2] | 0;
                        u = l + 20 | 0;
                        f = h + (G(a[u >> 2] | 0, t) | 0) | 0;
                        s = o[(a[l + 36 >> 2] | 0) + 6 >> 1] | 0;
                        a[i + 16 >> 2] = xE(f + s + 4 | 0) | 0;
                        l = a[l + 16 >> 2] | 0;
                        a[i + 4 >> 2] = l + (xE(h + (G(a[u >> 2] | 0, t) | 0) + s | 0) | 0);
                        ME(a[e >> 2] | 0, t, 4, i + 8 | 0, i + 20 | 0);
                        return
                    }

                    function AL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        e: do {
                            if (rf(0) | 0) {
                                if (e << 16 >> 16 < 0) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                if ((t | 0) == -1) e = 0;
                                else {
                                    e = a[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((e << 16 >> 16) * 84 | 0) + 56 >> 2] | 0;
                                    ZE(e) | 0;
                                    while (1) {
                                        if (!e) {
                                            e = 0;
                                            break e
                                        }
                                        if ((a[(a[e >> 2] | 0) + 8 >> 2] | 0) == (t | 0)) {
                                            e = 1;
                                            break e
                                        }
                                        e = a[e + 4 >> 2] | 0
                                    }
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function wL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = t + 284 | 0;
                        n = a[o >> 2] | 0;
                        do {
                            if (n | 0) {
                                s = e + 284 | 0;
                                t = a[s >> 2] | 0;
                                if (!t) {
                                    t = Dl() | 0;
                                    a[s >> 2] = t;
                                    if (!t) break;
                                    e = a[o >> 2] | 0;
                                    i = t + 48 | 0;
                                    do {
                                        a[t >> 2] = a[e >> 2];
                                        t = t + 4 | 0;
                                        e = e + 4 | 0
                                    } while ((t | 0) < (i | 0));
                                    break
                                }
                                e = a[n + 16 >> 2] | 0;
                                if ((e | 0) != 2147483647) {
                                    i = t + 16 | 0;
                                    if ((a[i >> 2] | 0) != 2147483647)
                                        if ((e | 0) == 1) {
                                            t = 1;
                                            u = 8
                                        } else e = n;
                                    else {
                                        t = e;
                                        u = 8
                                    }
                                    if ((u | 0) == 8) {
                                        a[i >> 2] = t;
                                        e = a[o >> 2] | 0;
                                        t = a[s >> 2] | 0
                                    }
                                    u = t + 40 | 0;
                                    r[u >> 0] = r[u >> 0] | r[e + 40 >> 0]
                                }
                            }
                        } while (0);
                        return
                    }

                    function xL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0.0,
                            s = 0,
                            o = 0;
                        o = t + 288 | 0;
                        t = a[o >> 2] | 0;
                        do {
                            if (t | 0) {
                                s = e + 288 | 0;
                                e = a[s >> 2] | 0;
                                if (!e) {
                                    t = Dl() | 0;
                                    a[s >> 2] = t;
                                    if (!t) break;
                                    e = a[o >> 2] | 0;
                                    i = t + 48 | 0;
                                    do {
                                        a[t >> 2] = a[e >> 2];
                                        t = t + 4 | 0;
                                        e = e + 4 | 0
                                    } while ((t | 0) < (i | 0));
                                    break
                                }
                                i = a[t + 4 >> 2] | 0;
                                n = (a[c >> 2] = i, +h[c >> 2]);
                                if ((i | 0) != 2147483647) {
                                    t = e + 4 | 0;
                                    e = a[t >> 2] | 0;
                                    if ((e | 0) == 2147483647) a[t >> 2] = i;
                                    else h[t >> 2] = n * (a[c >> 2] = e, +h[c >> 2]);
                                    s = (a[s >> 2] | 0) + 37 | 0;
                                    r[s >> 0] = r[s >> 0] | r[(a[o >> 2] | 0) + 37 >> 0]
                                }
                            }
                        } while (0);
                        return
                    }

                    function kL(e) {
                        e = e | 0;
                        var t = 0;
                        e = a[e + 48 >> 2] | 0;
                        ZE(e) | 0;
                        e: while (1) {
                            if (!e) {
                                e = 0;
                                break
                            }
                            t = a[e >> 2] | 0;
                            e = a[e + 4 >> 2] | 0;
                            switch (a[t + 8 >> 2] | 0) {
                                case 10:
                                case 8:
                                case 1:
                                    if ((Mh(a[t + 12 >> 2] | 0, a[t + 20 >> 2] | 0) | 0) == 1) {
                                        e = 1;
                                        break e
                                    } else continue e;
                                case 3:
                                    {
                                        t = Jh(a[t + 16 >> 2] | 0) | 0;
                                        if (!t) continue e;
                                        if ((KB(t) | 0) == 1) {
                                            e = 1;
                                            break e
                                        } else continue e
                                    }
                                case 4:
                                    {
                                        t = qh(a[t + 16 >> 2] | 0) | 0;
                                        if (!t) continue e;
                                        if ((TL(a[t + 36 >> 2] | 0) | 0) == 1) {
                                            e = 1;
                                            break e
                                        } else continue e
                                    }
                                default:
                                    continue e
                            }
                        }
                        return e | 0
                    }

                    function TL(e) {
                        e = e | 0;
                        if ((e | 0) != 0 ? (KB(e) | 0) == 1 : 0) e = 1;
                        else e = 0;
                        return e | 0
                    }

                    function EL(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0;
                        g = p;
                        p = p + 16 | 0;
                        _ = g;
                        t = a[1687] | 0;
                        e: do {
                            if (t | 0 ? (i = a[t + 12 >> 2] | 0, u = e << 16 >> 16, a[i + (u * 84 | 0) + 52 >> 2] | 0) : 0) {
                                c = a[i + (u * 84 | 0) + 44 >> 2] | 0;
                                ZE(c) | 0;
                                while (1) {
                                    if (!c) break e;
                                    d = a[c >> 2] | 0;
                                    v = d + 48 | 0;
                                    e = a[v >> 2] | 0;
                                    t: do {
                                        if ((r[d + 28 >> 0] | 0) == 1 & (e | 0) == 1) {
                                            if (!(hN(a[(a[d + 12 >> 2] | 0) + 204 >> 2] | 0, n[d + 30 >> 1] | 0) | 0)) {
                                                b = a[d + 32 >> 2] | 0;
                                                m = d + 36 | 0;
                                                a[m >> 2] = b;
                                                a[v >> 2] = 2;
                                                f = 12
                                            }
                                        } else {
                                            switch (e | 0) {
                                                case 2:
                                                    {
                                                        b = d + 36 | 0;m = b;b = a[b >> 2] | 0;f = 12;
                                                        break t
                                                    }
                                                case 0:
                                                    break;
                                                default:
                                                    {
                                                        l = e;f = 26;
                                                        break t
                                                    }
                                            }
                                            e = d + 12 | 0;
                                            t = a[e >> 2] | 0;
                                            if (t | 0) {
                                                SL(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((o[d + 20 >> 1] | 0) * 84 | 0) + 12 >> 2] | 0, t);
                                                uo(a[e >> 2] | 0);
                                                a[e >> 2] = 0;
                                                f = 25
                                            }
                                        }
                                    } while (0);
                                    do {
                                        if ((f | 0) == 12 ? (f = 0, (b | 0) >= 0) : 0) {
                                            t = a[1687] | 0;
                                            f = b - (a[t + 32 >> 2] | 0) | 0;
                                            a[m >> 2] = (f | 0) > 0 ? f : 0;
                                            if ((f | 0) < 1) {
                                                u = d + 30 | 0;
                                                e = n[u >> 1] | 0;
                                                if (e << 16 >> 16 == -1) {
                                                    e = a[t + 12 >> 2] | 0;
                                                    t = o[d + 20 >> 1] | 0;
                                                    a[v >> 2] = 0;
                                                    i = d + 26 | 0;
                                                    if ((n[i >> 1] | 0) == -1) {
                                                        f = 25;
                                                        break
                                                    }
                                                    rS(7488, _);
                                                    u = a[_ >> 2] | 0;
                                                    if (!u) sE();
                                                    else {
                                                        f = a[u >> 2] | 0;
                                                        a[f + 8 >> 2] = o[i >> 1];
                                                        a[f + 12 >> 2] = 2;
                                                        tS(e + (t * 84 | 0) + 56 | 0, u)
                                                    }
                                                } else {
                                                    a[v >> 2] = 3;
                                                    t = d + 12 | 0;
                                                    i = a[t >> 2] | 0;
                                                    if (!i) {
                                                        i = cf(1, 0, 5, a[d + 16 >> 2] | 0, 389) | 0;
                                                        a[t >> 2] = i;
                                                        go(i, n[u >> 1] | 0, +h[d + 8 >> 2]);
                                                        k_(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + ((o[d + 20 >> 1] | 0) * 84 | 0) + 12 >> 2] | 0, a[t >> 2] | 0);
                                                        i = a[t >> 2] | 0;
                                                        e = n[u >> 1] | 0
                                                    }
                                                    El(i, e, 1.0, o[d + 26 >> 1] | 0, s[d + 23 >> 0] | 0, +h[d + 44 >> 2])
                                                }
                                                a[m >> 2] = -1;
                                                f = 25
                                            } else f = 25
                                        }
                                    } while (0);
                                    if ((f | 0) == 25) {
                                        l = a[v >> 2] | 0;
                                        f = 26
                                    }
                                    if (((f | 0) == 26 ? (f = 0, (l | 0) == 3) : 0) ? (hN(a[(a[d + 12 >> 2] | 0) + 204 >> 2] | 0, n[d + 30 >> 1] | 0) | 0) == 0 : 0) a[v >> 2] = 0;
                                    c = a[c + 4 >> 2] | 0
                                }
                            }
                        } while (0);
                        p = g;
                        return
                    }

                    function SL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0;
                        i = e;
                        while (1) {
                            if (!i) break;
                            n = i + 44 | 0;
                            i = a[n >> 2] | 0;
                            if ((i | 0) == (t | 0)) {
                                s = 4;
                                break
                            }
                        }
                        if ((s | 0) == 4) {
                            a[n >> 2] = a[t + 44 >> 2];
                            r[e + 8 >> 0] = 1
                        }
                        return
                    }

                    function PL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var r = 0.0,
                            n = 0.0;
                        e = a[7720 + (e << 2) >> 2] | 0;
                        r = +h[e + 176 + (t * 72 | 0) + 28 >> 2];
                        n = +h[e + 176 + (t * 72 | 0) + 44 >> 2];
                        FL(t, r + (n - r) * +DS(a[e + 176 + (t * 72 | 0) + 60 >> 2] | 0, i, +h[e + 176 + (t * 72 | 0) + 64 >> 2]));
                        return
                    }

                    function IL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var n = 0,
                            s = 0,
                            u = 0;
                        u = p;
                        p = p + 544 | 0;
                        n = u + 272 | 0;
                        s = u;
                        do {
                            if (mf((a[7720 + (e << 2) >> 2] | 0) + 4 | 0, s) | 0) {
                                if ((bI(t) | 0) > 0) {
                                    if (!(Af(s, t, n) | 0)) break
                                } else if (!(gf((o[s + 260 >> 1] | 0) + 65535 & 65535, n) | 0)) break;
                                DL(e, s + 4 | 0, n + 8 | 0, r[s + 262 >> 0] | 0, i)
                            }
                        } while (0);
                        p = u;
                        return
                    }

                    function ML(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = r | 0;
                        var a = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 544 | 0;
                        a = u + 264 | 0;
                        o = u;
                        e: do {
                            if (mf(e, a) | 0 ? Af(a, t, o) | 0 : 0) {
                                t = a + 262 | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) >= (s[t >> 0] | 0 | 0)) break e;
                                    CL(n[a + 4 + (e << 1) >> 1] | 0, n[o + 8 + (e << 1) >> 1] | 0, i, r);
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        p = u;
                        return
                    }

                    function CL(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = r | 0;
                        var o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 880 | 0;
                        l = d + 696 | 0;
                        f = d + 528 | 0;
                        u = d + 512 | 0;
                        c = d;
                        o = d + 864 | 0;
                        yM(l | 0, 0, 168) | 0;
                        yM(f | 0, 0, 168) | 0;
                        a[u >> 2] = 0;
                        a[u + 4 >> 2] = 0;
                        a[u + 8 >> 2] = 0;
                        a[u + 12 >> 2] = 0;
                        kf(e, l) | 0;
                        kf(t, f) | 0;
                        OL(e, t, u, i, r);
                        gc(e, u, r);
                        t = l + 167 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (s[t >> 0] | 0 | 0)) break;
                            u = l + 36 + (e << 1) | 0;
                            RL(n[u >> 1] | 0, n[f + 36 + (e << 1) >> 1] | 0, c, i, o, r);
                            xc(n[u >> 1] | 0, +h[c >> 2], r);
                            e = e + 1 | 0
                        }
                        t = l + 166 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (s[t >> 0] | 0 | 0)) break;
                            o = l + 20 + (e << 1) | 0;
                            u = Rf(n[o >> 1] | 0, n[f + 20 + (e << 1) >> 1] | 0, c, i, r, 0) | 0;
                            if ((u | 0) > 0) wc(n[o >> 1] | 0, c, u, r, 0);
                            e = e + 1 | 0
                        }
                        p = d;
                        return
                    }

                    function OL(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        n = n | 0;
                        var s = 0,
                            o = 0.0,
                            u = 0,
                            l = 0;
                        s = p;
                        p = p + 192 | 0;
                        u = s + 16 | 0;
                        l = s;
                        a[l >> 2] = 0;
                        a[l + 4 >> 2] = 0;
                        a[l + 8 >> 2] = 0;
                        a[l + 12 >> 2] = 0;
                        kf(t, u) | 0;
                        Ac(e, l, n);
                        o = +h[l >> 2];
                        h[i >> 2] = o + (+h[u + 4 >> 2] - o) * r;
                        o = +h[l + 8 >> 2];
                        h[i + 8 >> 2] = o + (+h[u + 12 >> 2] - o) * r;
                        o = +h[l + 12 >> 2];
                        h[i + 12 >> 2] = o + (+h[u + 16 >> 2] - o) * r;
                        o = +h[l + 4 >> 2];
                        h[i + 4 >> 2] = o + (+h[u + 8 >> 2] - o) * r;
                        p = s;
                        return
                    }

                    function RL(e, t, i, r, a, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = +r;
                        a = a | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            l = 0.0,
                            f = 0;
                        o = p;
                        p = p + 16 | 0;
                        u = o + 4 | 0;
                        f = o;
                        h[f >> 2] = 0.0;
                        Lf(t, u);
                        Tc(e, f, s);
                        l = +h[f >> 2];
                        h[i >> 2] = l + (+h[u + 4 >> 2] - l) * r;
                        n[a >> 1] = n[u + 8 >> 1] | 0;
                        p = o;
                        return
                    }

                    function DL(e, t, i, r, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        u = +u;
                        var l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0;
                        E = p;
                        p = p + 880 | 0;
                        A = E + 344 | 0;
                        w = E + 176 | 0;
                        x = E + 8 | 0;
                        k = E + 4 | 0;
                        T = E;
                        y = E + 360 | 0;
                        g = r & 255;
                        m = (a[7720 + (e << 2) >> 2] | 0) + 156 | 0;
                        _ = w + 167 | 0;
                        b = w + 166 | 0;
                        v = 0;
                        while (1) {
                            if ((v | 0) == (g | 0)) break;
                            d = t + (v << 1) | 0;
                            r = i + (v << 1) | 0;
                            OL(n[d >> 1] | 0, n[r >> 1] | 0, A, u, a[m >> 2] | 0);
                            FL(v, +h[A >> 2]);
                            kf(n[d >> 1] | 0, w) | 0;
                            kf(n[r >> 1] | 0, x) | 0;
                            r = 0;
                            while (1) {
                                if ((r | 0) >= (s[_ >> 0] | 0 | 0)) {
                                    e = 0;
                                    break
                                }
                                RL(n[w + 36 + (r << 1) >> 1] | 0, n[x + 36 + (r << 1) >> 1] | 0, k, u, T, a[m >> 2] | 0);
                                BL(v, o[T >> 1] | 0, +h[k >> 2]);
                                r = r + 1 | 0
                            }
                            while (1) {
                                if ((e | 0) >= (s[b >> 0] | 0 | 0)) break;
                                l = w + 20 + (e << 1) | 0;
                                d = Pf(n[l >> 1] | 0, k, T) | 0;
                                f = Mf(n[l >> 1] | 0) | 0;
                                if (!((d | 0) != 1 | (f | 0) == 0)) {
                                    c = x + 20 + (e << 1) | 0;
                                    r = 0;
                                    while (1) {
                                        d = Rf(n[l >> 1] | 0, n[c >> 1] | 0, y, u, a[m >> 2] | 0, r) | 0;
                                        if ((d | 0) < 1) break;
                                        NL(v, f, y);
                                        r = d + (r & 65535) & 65535
                                    }
                                }
                                e = e + 1 | 0
                            }
                            v = v + 1 | 0
                        }
                        p = E;
                        return
                    }

                    function FL(e, t) {
                        e = e | 0;
                        t = +t;
                        XL(e, t);
                        return
                    }

                    function BL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        VL(e, t, i);
                        return
                    }

                    function NL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        LL(e, t, i);
                        return
                    }

                    function LL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0.0;
                        t = Bf(t) | 0;
                        if (t | 0) {
                            r = +(o[t + 8 >> 1] | 0);
                            UL(e, a[t + 4 >> 2] | 0, i, ~~(r < 128.0 ? r : 128.0) >>> 0)
                        }
                        return
                    }

                    function UL(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        n = 0;
                        while (1) {
                            if ((n | 0) == (r | 0)) break;
                            it(e | 0, t | 0, n | 0, + +h[i + (n << 2) >> 2]);
                            n = n + 1 | 0
                        }
                        _t(e | 0, t | 0);
                        return
                    }

                    function VL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        Ke(e | 0, t | 0, +i);
                        return
                    }

                    function XL(e, t) {
                        e = e | 0;
                        t = +t;
                        et(e | 0, +t);
                        return
                    }

                    function jL() {
                        return a[1685] | 0
                    }

                    function GL(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0;
                        n = a[e >> 2] | 0;
                        e: while (1) {
                            s = n;
                            while (1) {
                                if (!s) break e;
                                o = $L(t, s, i, r) | 0;
                                n = a[s >> 2] | 0;
                                if (!o) {
                                    e = s;
                                    continue e
                                }
                                a[e >> 2] = n;
                                vo(s);
                                s = n
                            }
                        }
                        return
                    }

                    function $L(e, t, i, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        var o = 0.0,
                            u = 0,
                            l = 0;
                        u = t + 20 | 0;
                        l = a[u >> 2] | 0;
                        if (!(r[t + 31 >> 0] | 0)) {
                            i = i - l | 0;
                            s = a[t + 24 >> 2] | 0;
                            if (!(r[t + 30 >> 0] | 0)) {
                                l = i >>> 0 >= s >>> 0;
                                o = l ? 1.0 : +(i >>> 0) / +(s >>> 0);
                                i = l & 1
                            } else {
                                o = +(((i >>> 0) % (s >>> 0) | 0) >>> 0) / +(s >>> 0);
                                i = 0
                            }
                            o = +qR(a[t + 12 >> 2] | 0, o, +h[t + 16 >> 2]);
                            o = +Ml(+h[t + 8 >> 2], +h[t + 4 >> 2], o);
                            Cl(e, n[t + 28 >> 1] | 0, (h[c >> 2] = o, a[c >> 2] | 0))
                        } else {
                            a[u >> 2] = l + s;
                            i = 0
                        }
                        return i | 0
                    }

                    function HL(e) {
                        e = e | 0;
                        WL(e);
                        return
                    }

                    function WL(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            eo();
                            YL(e);
                            so()
                        }
                        return
                    }

                    function YL(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[e + 180 >> 2] | 0;
                        ZE(i) | 0;
                        t = e + 192 | 0;
                        e = i;
                        while (1) {
                            if (!e) break;
                            zL(a[e >> 2] | 0, a[t >> 2] | 0);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function zL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0.0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 16 | 0;
                        u = d;
                        if (!(r[e + 126 >> 0] | 0)) {
                            c = e + 68 | 0;
                            i = a[c >> 2] | 0;
                            l = +qL(+h[i + 244 >> 2]);
                            mF(a[i + 288 >> 2] | 0, u, 0) | 0;
                            i = a[c >> 2] | 0;
                            n = a[i + 80 >> 2] | 0;
                            if (ll(n) | 0) {
                                mI(n + 324 | 0);
                                i = a[c >> 2] | 0
                            }
                            n = a[i + 84 >> 2] | 0;
                            if (fl(n) | 0) {
                                mI(n + 156 | 0);
                                i = a[c >> 2] | 0
                            }
                            ho(i);
                            switch (a[e + 84 >> 2] | 0) {
                                case 0:
                                    break;
                                case 1:
                                    {
                                        o = a[e + 88 >> 2] | 0;s = mv(o, a[e + 92 >> 2] | 0) | 0;f = 10;
                                        break
                                    }
                                case 2:
                                    {
                                        o = a[e + 88 >> 2] | 0;s = _v(o, a[e + 92 >> 2] | 0) | 0;f = 10;
                                        break
                                    }
                                case 3:
                                    {
                                        s = a[e + 92 >> 2] | 0;o = a[e + 88 >> 2] | 0;f = 10;
                                        break
                                    }
                                default:
                                    if (!(cC(t) | 0)) QL(t, Ls() | 0, 1.0)
                            }
                            if ((((f | 0) == 10 ? o | 0 : 0) ? JL(a[o + 8 >> 2] | 0, s) | 0 : 0) ? (cC(t) | 0) == 0 : 0) QL(t, Ls() | 0, 1.0);
                            up(a[c >> 2] | 0, t);
                            Uc(a[c >> 2] | 0, l);
                            go(a[c >> 2] | 0, 146, +h[u >> 2]);
                            i = a[c >> 2] | 0;
                            n = a[i + 80 >> 2] | 0;
                            if (ll(n) | 0) {
                                vI(n + 324 | 0);
                                i = a[c >> 2] | 0
                            }
                            i = a[i + 84 >> 2] | 0;
                            if (fl(i) | 0) vI(i + 156 | 0)
                        }
                        p = d;
                        return
                    }

                    function qL(e) {
                        e = +e;
                        return +e
                    }

                    function JL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return Bc(Pc(e) | 0, t & 65535) | 0
                    }

                    function QL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        var s = 0,
                            o = 0,
                            u = 0;
                        s = ZL(e, t) | 0;
                        if ((s | 0) >= 0 ? (n[e + 512 + (s * 12 | 0) >> 1] = t, h[e + 512 + (s * 12 | 0) + 4 >> 2] = i, r[e + 512 + (s * 12 | 0) + 2 >> 0] = 1, o = e + 680 | 0, u = a[o >> 2] | 0, (s | 0) >= (u | 0)) : 0) a[o >> 2] = u + 1;
                        return
                    }

                    function ZL(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        r = a[e + 680 >> 2] | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (r | 0)) {
                                s = 5;
                                break
                            }
                            if ((n[e + 512 + (i * 12 | 0) >> 1] | 0) == t << 16 >> 16) break;
                            i = i + 1 | 0
                        }
                        if ((s | 0) == 5)
                            if ((i | 0) > 7) {
                                sE();
                                i = -1
                            }
                        return i | 0
                    }

                    function KL(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0;
                        T = p;
                        p = p + 32 | 0;
                        A = T + 16 | 0;
                        w = T;
                        x = e + 4 | 0;
                        m = e + 64 | 0;
                        a[m >> 2] = 0;
                        k = e + 3368 | 0;
                        a[k >> 2] = 0;
                        e: do {
                            if (eU(x, t, i) | 0) {
                                if ((a[m >> 2] | 0) >>> 0 < 393216) {
                                    sE();
                                    t = 0;
                                    break
                                }
                                tU(x, 7, A);
                                g = A + 4 | 0;
                                y = A + 8 | 0;
                                if (((iU(e + 424 | 0, a[g >> 2] | 0) | 0) != 0 ? (tU(x, 8, A), rU(e + 528 | 0, a[g >> 2] | 0), tU(x, 14, A), (nU(e + 592 | 0, a[g >> 2] | 0) | 0) != 0) : 0) ? (tU(x, 9, A), (aU(e + 716 | 0, a[g >> 2] | 0) | 0) != 0) : 0) {
                                    tU(x, 17, A);
                                    if (a[y >> 2] | 0 ? (sU(e + 824 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 16, A);
                                    if (a[y >> 2] | 0 ? (oU(e + 1268 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 15, A);
                                    if (a[y >> 2] | 0 ? (Ja(e + 1388 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 10, A);
                                    if (a[y >> 2] | 0 ? ($a(e + 1808 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 11, A);
                                    if (a[y >> 2] | 0 ? (Ha(e + 1920 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 12, A);
                                    if (a[y >> 2] | 0 ? (uU(e + 2004 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 18, A);
                                    if (a[y >> 2] | 0 ? (hU(e + 2064 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 19, A);
                                    if (a[y >> 2] | 0 ? (Ya(e + 2128 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                        t = 0;
                                        break
                                    }
                                    tU(x, 20, A);
                                    t = a[y >> 2] | 0;
                                    if (!t) {
                                        a[e + 3380 >> 2] = 0;
                                        u = 0;
                                        i = 0;
                                        t = 0
                                    } else {
                                        u = a[g >> 2] | 0;
                                        v = u + 7 & -8;
                                        a[e + 3388 >> 2] = e + 3380;
                                        a[e + 3396 >> 2] = e + 3384;
                                        u = u + t - v | 0;
                                        i = 1;
                                        t = v
                                    }
                                    v = e + 3392 | 0;
                                    a[v >> 2] = t;
                                    c = e + 3404 | 0;
                                    a[c >> 2] = i;
                                    d = e + 3400 | 0;
                                    a[d >> 2] = u;
                                    do {
                                        if ((a[m >> 2] | 0) >>> 0 > 589823) {
                                            a[w >> 2] = 0;
                                            tU(x, 23, A);
                                            t = (a[g >> 2] | 0) + 3 & -4;
                                            l = e + 3352 | 0;
                                            a[l >> 2] = t;
                                            u = e + 76 | 0;
                                            i = 0;
                                            while (1) {
                                                t = t + (i * 12 | 0) | 0;
                                                if ((i | 0) >= (o[u >> 1] << 1 | 0)) break;
                                                JE(t);
                                                i = i + 1 | 0;
                                                t = a[l >> 2] | 0
                                            }
                                            a[w >> 2] = t;
                                            h = e + 3356 | 0;
                                            JE(h);
                                            u = e + 78 | 0;
                                            i = 0;
                                            while (1) {
                                                if ((i | 0) >= (o[u >> 1] | 0)) break;
                                                zE(t);
                                                eS(h, t);
                                                i = i + 1 | 0;
                                                t = t + 8 | 0
                                            }
                                            a[w >> 2] = t;
                                            t = a[m >> 2] | 0;
                                            do {
                                                if (t >>> 0 > 19202047) {
                                                    if ((s[e + 100 >> 0] | 0) >= 2) {
                                                        _ = 45;
                                                        break
                                                    }
                                                    i = e + 102 | 0;
                                                    t = 0;
                                                    while (1) {
                                                        if ((t | 0) >= (o[i >> 1] | 0)) break;
                                                        rS(h, w);
                                                        u = a[w >> 2] | 0;
                                                        if (u | 0) eS((a[l >> 2] | 0) + 12 | 0, u);
                                                        t = t + 1 | 0
                                                    }
                                                    f = a[m >> 2] | 0;
                                                    _ = 44
                                                } else {
                                                    f = t;
                                                    _ = 44
                                                }
                                            } while (0);
                                            if ((_ | 0) == 44 ? f >>> 0 > 4194303 : 0) _ = 45;
                                            if (((_ | 0) == 45 ? (tU(x, 30, A), a[y >> 2] | 0) : 0) ? (is(e + 2200 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            if ((a[m >> 2] | 0) >>> 0 > 5242879) {
                                                tU(x, 31, A);
                                                if (a[y >> 2] | 0 ? (lU(e + 2260 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 6291455) break;
                                                tU(x, 63, A);
                                                t = a[y >> 2] | 0;
                                                do {
                                                    if (t | 0) {
                                                        if ((a[m >> 2] | 0) >>> 0 <= 19267583) {
                                                            a[e + 3408 >> 2] = a[g >> 2];
                                                            a[e + 3412 >> 2] = t;
                                                            break
                                                        }
                                                        t = e + 3292 | 0;
                                                        if (!(fU(t, a[g >> 2] | 0) | 0)) {
                                                            t = 0;
                                                            break e
                                                        } else {
                                                            f = a[t >> 2] | 0;
                                                            cU(a[f + 8 >> 2] | 0, a[f + 16 >> 2] | 0, n[a[f + 36 >> 2] >> 1] | 0, w);
                                                            a[e + 3408 >> 2] = a[w >> 2];
                                                            a[e + 3412 >> 2] = a[w + 4 >> 2];
                                                            break
                                                        }
                                                    }
                                                } while (0);
                                                if ((a[m >> 2] | 0) >>> 0 <= 8454399) break;
                                                tU(x, 32, A);
                                                if (a[y >> 2] | 0 ? (dU(e + 972 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                tU(x, 33, A);
                                                if (a[y >> 2] | 0 ? (pU(e + 1100 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 18153471) break;
                                                tU(x, 37, A);
                                                if (a[y >> 2] | 0 ? (vU(e + 2328 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 18219007) break;
                                                tU(x, 38, A);
                                                if (a[y >> 2] | 0 ? (mU(e + 2448 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 19070975) break;
                                                tU(x, 39, A);
                                                if (a[y >> 2] | 0 ? (_U(e + 2520 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 19136511) break;
                                                tU(x, 40, A);
                                                if (a[y >> 2] | 0 ? (bU(e + 2584 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                    t = 0;
                                                    break e
                                                }
                                                if ((a[m >> 2] | 0) >>> 0 <= 19267583) break;
                                                tU(x, 27, A);
                                                if (!(a[y >> 2] | 0)) t = a[c >> 2] | 0;
                                                else {
                                                    if (!(gU(e + 3228 | 0, a[g >> 2] | 0) | 0)) {
                                                        t = 0;
                                                        break e
                                                    }
                                                    t = a[e + 3276 >> 2] | 0;
                                                    a[c >> 2] = t
                                                }
                                                if (!t) break;
                                                c = a[v >> 2] | 0;
                                                v = c + (t << 11) | 0;
                                                a[e + 3388 >> 2] = v;
                                                v = v + (t << 2) | 0;
                                                a[e + 3396 >> 2] = v;
                                                if (((a[d >> 2] | 0) + c | 0) >>> 0 >= (v + (t << 2) | 0) >>> 0) break;
                                                sE();
                                                t = 0;
                                                break e
                                            }
                                        } else a[e + 3352 >> 2] = 0
                                    } while (0);
                                    do {
                                        if (((a[m >> 2] | 0) + -19464192 | 0) >>> 0 < 289896704) {
                                            tU(x, 43, A);
                                            if (a[y >> 2] | 0 ? (Ja(e + 1448 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 44, A);
                                            if (a[y >> 2] | 0 ? (Ja(e + 1508 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 45, A);
                                            if (a[y >> 2] | 0 ? (Ja(e + 1568 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 46, A);
                                            if (a[y >> 2] | 0 ? (Ja(e + 1628 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 47, A);
                                            if (a[y >> 2] | 0 ? (Ja(e + 1688 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 48, A);
                                            if (!(a[y >> 2] | 0)) break;
                                            if (!(Ja(e + 1748 | 0, a[g >> 2] | 0) | 0)) {
                                                t = 0;
                                                break e
                                            }
                                        } else {
                                            tU(x, 15, A);
                                            if (a[y >> 2] | 0) {
                                                if (!(Ja(e + 1448 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                                if (!(Ja(e + 1508 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                                if (!(Ja(e + 1568 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                                if (!(Ja(e + 1628 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                                if (!(Ja(e + 1688 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                                if (!(Ja(e + 1748 | 0, a[g >> 2] | 0) | 0)) {
                                                    t = 0;
                                                    break e
                                                }
                                            }
                                        }
                                    } while (0);
                                    t = a[m >> 2] | 0;
                                    do {
                                        if (t >>> 0 > 19922943) {
                                            tU(x, 49, A);
                                            if (a[y >> 2] | 0 ? (yU(e + 2672 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            t = a[m >> 2] | 0;
                                            if (t >>> 0 <= 20185087) break;
                                            tU(x, 50, A);
                                            if (a[y >> 2] | 0 ? (AU(e + 2736 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 51, A);
                                            if (a[y >> 2] | 0 ? (wU(e + 2828 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            t = a[m >> 2] | 0;
                                            if (t >>> 0 <= 20250623) break;
                                            tU(x, 54, A);
                                            if (a[y >> 2] | 0 ? (xU(e + 2908 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 55, A);
                                            if (a[y >> 2] | 0 ? (kU(e + 2976 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            tU(x, 56, A);
                                            if (a[y >> 2] | 0 ? (TU(e + 3056 | 0, a[g >> 2] | 0) | 0) == 0 : 0) {
                                                t = 0;
                                                break e
                                            }
                                            t = a[m >> 2] | 0;
                                            if (t >>> 0 <= 20250623) break;
                                            if (!(a[e + 764 >> 2] | 0)) break;
                                            if ((a[e + 60 >> 2] | 0) == 12) break;
                                            sE();
                                            t = 0;
                                            break e
                                        }
                                    } while (0);
                                    f = a[e + 80 >> 2] | 0;
                                    i = 0;
                                    u = f;
                                    while (1) {
                                        if (i >>> 0 >= 16) break;
                                        if (r[u >> 0] | 0) {
                                            _ = 125;
                                            break
                                        }
                                        i = i + 1 | 0;
                                        u = u + 1 | 0
                                    }
                                    t: do {
                                        if ((_ | 0) == 125) {
                                            i = vs() | 0;
                                            if (!i) {
                                                NE();
                                                break
                                            } else {
                                                h = 1;
                                                l = 0;
                                                u = f
                                            }
                                            while (1) {
                                                if ((l | 0) == 16) break;
                                                m = (r[i >> 0] | 0) == (r[u >> 0] | 0) ? h : 0;
                                                i = i + 1 | 0;
                                                h = m;
                                                l = l + 1 | 0;
                                                u = u + 1 | 0
                                            }
                                            if (h | 0) break;
                                            do {
                                                if (t >>> 0 > 18219007) {
                                                    u = e + 2496 | 0;
                                                    h = w + 8 | 0;
                                                    l = w + 12 | 0;
                                                    f = w + 4 | 0;
                                                    i = e + 2448 | 0;
                                                    t = 0;
                                                    while (1) {
                                                        if (t >>> 0 >= (a[u >> 2] | 0) >>> 0) {
                                                            _ = 146;
                                                            break
                                                        }
                                                        EU(a[i >> 2] | 0, t & 65535, w);
                                                        switch (r[h >> 0] | 0) {
                                                            case 1:
                                                                {
                                                                    b = dc(a[l >> 2] & 65535) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 2:
                                                                {
                                                                    b = cc(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 3:
                                                                {
                                                                    b = Ws(a[l >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 4:
                                                                {
                                                                    b = $f(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 5:
                                                                {
                                                                    b = Xf(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 6:
                                                                {
                                                                    b = Us(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 7:
                                                                {
                                                                    b = Is(a[w >> 2] | 0, a[f >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 8:
                                                                {
                                                                    b = Fs(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            case 9:
                                                                {
                                                                    b = Ns(a[w >> 2] | 0) | 0;_ = 143;
                                                                    break
                                                                }
                                                            default:
                                                                {}
                                                        }
                                                        if ((_ | 0) == 143 ? (_ = 0, (b | 0) == 0) : 0) {
                                                            _ = 144;
                                                            break
                                                        }
                                                        t = t + 1 | 0
                                                    }
                                                    if ((_ | 0) == 144) break;
                                                    else if ((_ | 0) == 146) break t
                                                }
                                            } while (0);
                                            NE()
                                        }
                                    } while (0);
                                    tU(x, 21, A);
                                    do {
                                        if (a[y >> 2] | 0) {
                                            t = e + 3372 | 0;
                                            i = a[t >> 2] | 0;
                                            if (!i) break;
                                            aE(i, 64);
                                            x = SU(a[g >> 2] | 0, a[y >> 2] | 0, a[t >> 2] | 0, 64) | 0;
                                            a[k >> 2] = x;
                                            if (!x) {
                                                t = 0;
                                                break e
                                            }
                                        }
                                    } while (0);
                                    t = 1
                                } else t = 0
                            } else {
                                sE();
                                t = 0
                            }
                        } while (0);
                        p = T;
                        return t | 0
                    }

                    function eU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            p = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        p = AE(e + 4 | 0, t, 64, e + 100 | 0, e + 228 | 0, e + 356 | 0) | 0;
                        a[e >> 2] = p;
                        if (!p) u = 0;
                        else {
                            a[e + 48 >> 2] = a[p >> 2];
                            u = p + 8 | 0;
                            d = a[u >> 2] | 0;
                            v = p + 36 | 0;
                            f = a[v >> 2] | 0;
                            a[e + 52 >> 2] = s[d + (o[f + 6 >> 1] | 0) >> 0];
                            a[e + 56 >> 2] = s[d + (o[f + 8 >> 1] | 0) >> 0];
                            m = xE(d + (o[f + 4 >> 1] | 0) | 0) | 0;
                            a[e + 60 >> 2] = m;
                            l = p + 16 | 0;
                            c = a[l >> 2] | 0;
                            a[e + 76 >> 2] = c + (xE(d + (o[f + 10 >> 1] | 0) | 0) | 0);
                            f = n[p + 24 >> 1] | 0;
                            if ((f & 65535) > 23) {
                                c = a[u >> 2] | 0;
                                d = a[v >> 2] | 0;
                                n[e + 72 >> 1] = wE(c + (o[d + 48 >> 1] | 0) | 0) | 0;
                                n[e + 74 >> 1] = wE(c + (o[d + 50 >> 1] | 0) | 0) | 0;
                                if ((f & 65535) > 26) {
                                    l = a[l >> 2] | 0;
                                    a[e + 80 >> 2] = l + (xE(c + (o[d + 52 >> 1] | 0) | 0) | 0);
                                    if ((f & 65535) > 29) a[e + 92 >> 2] = xE((a[u >> 2] | 0) + (o[(a[v >> 2] | 0) + 58 >> 1] | 0) | 0) | 0;
                                    else _ = 8
                                } else _ = 5
                            } else {
                                n[e + 72 >> 1] = 0;
                                n[e + 74 >> 1] = 0;
                                _ = 5
                            }
                            if ((_ | 0) == 5) {
                                a[e + 80 >> 2] = 0;
                                _ = 8
                            }
                            if ((_ | 0) == 8) h[e + 92 >> 2] = 1.0;
                            if (m >>> 0 > 17235967) {
                                p = a[p + 12 >> 2] | 0;
                                l = a[u >> 2] | 0;
                                u = a[v >> 2] | 0;
                                a[e + 84 >> 2] = p + (xE(l + (o[u + 68 >> 1] | 0) | 0) | 0);
                                if (m >>> 0 > 17957119) {
                                    a[e + 88 >> 2] = s[l + (o[u + 70 >> 1] | 0) >> 0];
                                    if (m >>> 0 > 19202047) {
                                        r[e + 96 >> 0] = r[l + (o[u + 82 >> 1] | 0) >> 0] | 0;
                                        u = wE(l + (o[u + 84 >> 1] | 0) | 0) | 0
                                    } else _ = 15
                                } else _ = 12
                            } else {
                                a[e + 84 >> 2] = 11354;
                                _ = 12
                            }
                            if ((_ | 0) == 12) {
                                a[e + 88 >> 2] = 1;
                                _ = 15
                            }
                            if ((_ | 0) == 15) {
                                r[e + 96 >> 0] = -1;
                                u = 0
                            }
                            n[e + 98 >> 1] = u;
                            a[e + 64 >> 2] = i;
                            a[e + 68 >> 2] = t;
                            u = 1
                        }
                        return u | 0
                    }

                    function tU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = i + 4 | 0;
                        a[f >> 2] = 0;
                        l = i + 8 | 0;
                        a[l >> 2] = 0;
                        e: do {
                            switch (t | 0) {
                                case 56:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 20250623) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 112 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 55:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 20250623) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 110 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 54:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 20250623) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 108 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 51:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 20185087) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 102 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 50:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 20185087) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 100 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 49:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 19922943) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 98 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 40:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 19136511) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 80 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 48:
                                case 47:
                                case 46:
                                case 45:
                                case 44:
                                case 43:
                                case 21:
                                case 19:
                                case 16:
                                case 18:
                                case 17:
                                case 15:
                                case 14:
                                case 13:
                                case 12:
                                case 11:
                                case 10:
                                case 9:
                                case 8:
                                case 7:
                                    {
                                        u = a[e >> 2] | 0;h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + (t << 1) >> 1] | 0) | 0;a[l >> 2] = xE(h + 4 | 0) | 0;a[f >> 2] = (a[u + 16 >> 2] | 0) + (xE(h) | 0);
                                        break
                                    }
                                case 23:
                                    {
                                        e = a[e >> 2] | 0;
                                        if ((o[e + 24 >> 1] | 0) > 23) {
                                            h = (a[e + 8 >> 2] | 0) + (o[(a[e + 36 >> 2] | 0) + 46 >> 1] | 0) | 0;
                                            a[l >> 2] = xE(h + 4 | 0) | 0;
                                            l = a[e + 16 >> 2] | 0;
                                            a[f >> 2] = l + (xE(h) | 0);
                                            break e
                                        } else {
                                            a[f >> 2] = 0;
                                            a[l >> 2] = 0;
                                            break e
                                        }
                                    }
                                case 20:
                                    {
                                        n = a[e + 60 >> 2] | 0;do {
                                            if (n >>> 0 >= 2097153) {
                                                s = a[e >> 2] | 0;
                                                u = a[s + 8 >> 2] | 0;
                                                h = a[s + 36 >> 2] | 0;
                                                if (n >>> 0 < 6291457) {
                                                    u = u + (o[h + 56 >> 1] | 0) | 0;
                                                    h = xE(u + 4 | 0) | 0;
                                                    a[l >> 2] = h;
                                                    l = a[s + 16 >> 2] | 0;
                                                    a[f >> 2] = l + (xE(u) | 0);
                                                    e = (a[e + 64 >> 2] | 0) + (a[e + 68 >> 2] | 0) - h | 0;
                                                    break
                                                } else {
                                                    e = u + (o[h + 124 >> 1] | 0) | 0;
                                                    a[l >> 2] = xE(e + 4 | 0) | 0;
                                                    l = a[s + 16 >> 2] | 0;
                                                    e = l + (xE(e) | 0) | 0;
                                                    break
                                                }
                                            } else {
                                                h = a[e >> 2] | 0;
                                                e = (a[h + 8 >> 2] | 0) + (o[(a[h + 36 >> 2] | 0) + 40 >> 1] | 0) | 0;
                                                a[l >> 2] = xE(e + 4 | 0) | 0;
                                                l = a[h + 16 >> 2] | 0;
                                                e = l + (xE(e) | 0) | 0
                                            }
                                        } while (0);a[f >> 2] = e;
                                        break
                                    }
                                case 27:
                                    {
                                        e = a[e >> 2] | 0;
                                        if ((o[e + 24 >> 1] | 0) > 27) {
                                            h = (a[e + 8 >> 2] | 0) + (o[(a[e + 36 >> 2] | 0) + 54 >> 1] | 0) | 0;
                                            a[l >> 2] = xE(h + 4 | 0) | 0;
                                            l = a[e + 16 >> 2] | 0;
                                            a[f >> 2] = l + (xE(h) | 0);
                                            break e
                                        } else {
                                            a[f >> 2] = 0;
                                            a[l >> 2] = 0;
                                            break e
                                        }
                                    }
                                case 30:
                                    {
                                        e = a[e >> 2] | 0;
                                        if ((o[e + 24 >> 1] | 0) > 30) {
                                            h = (a[e + 8 >> 2] | 0) + (o[(a[e + 36 >> 2] | 0) + 60 >> 1] | 0) | 0;
                                            a[l >> 2] = xE(h + 4 | 0) | 0;
                                            l = a[e + 16 >> 2] | 0;
                                            a[f >> 2] = l + (xE(h) | 0);
                                            break e
                                        } else {
                                            a[f >> 2] = 0;
                                            a[l >> 2] = 0;
                                            break e
                                        }
                                    }
                                case 31:
                                    {
                                        e = a[e >> 2] | 0;
                                        if ((o[e + 24 >> 1] | 0) > 31) {
                                            h = (a[e + 8 >> 2] | 0) + (o[(a[e + 36 >> 2] | 0) + 62 >> 1] | 0) | 0;
                                            a[l >> 2] = xE(h + 4 | 0) | 0;
                                            l = a[e + 16 >> 2] | 0;
                                            a[f >> 2] = l + (xE(h) | 0);
                                            break e
                                        } else {
                                            a[f >> 2] = 0;
                                            a[l >> 2] = 0;
                                            break e
                                        }
                                    }
                                case 63:
                                    {
                                        e = a[e >> 2] | 0;
                                        if ((o[e + 24 >> 1] | 0) > 63) {
                                            h = (a[e + 8 >> 2] | 0) + (o[(a[e + 36 >> 2] | 0) + 126 >> 1] | 0) | 0;
                                            a[l >> 2] = xE(h + 4 | 0) | 0;
                                            l = a[e + 16 >> 2] | 0;
                                            a[f >> 2] = l + (xE(h) | 0);
                                            break e
                                        } else {
                                            a[f >> 2] = 0;
                                            a[l >> 2] = 0;
                                            break e
                                        }
                                    }
                                case 32:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 8454655) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 64 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 33:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 8454655) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 66 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 36:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 18022399) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 72 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 37:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 18153471) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 74 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 38:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 18219007) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 76 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                case 39:
                                    if ((a[e + 60 >> 2] | 0) >>> 0 > 19070975) {
                                        u = a[e >> 2] | 0;
                                        h = (a[u + 8 >> 2] | 0) + (o[(a[u + 36 >> 2] | 0) + 78 >> 1] | 0) | 0;
                                        a[l >> 2] = xE(h + 4 | 0) | 0;
                                        l = a[u + 16 >> 2] | 0;
                                        a[f >> 2] = l + (xE(h) | 0);
                                        break e
                                    } else {
                                        a[f >> 2] = 0;
                                        a[l >> 2] = 0;
                                        break e
                                    }
                                default:
                                    {}
                            }
                        } while (0);
                        r[i >> 0] = t;
                        return
                    }

                    function iU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 10, e + 52 | 0, e + 72 | 0, e + 92 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function rU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (t | 0) a[e + 48 >> 2] = a[t >> 2];
                        return
                    }

                    function nU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        t = AE(e + 4 | 0, t, 14, e + 52 | 0, e + 80 | 0, e + 108 | 0) | 0;
                        a[e >> 2] = t;
                        e: do {
                            if (!t) t = 0;
                            else {
                                i = a[t >> 2] | 0;
                                r = e + 48 | 0;
                                a[r >> 2] = i;
                                t = 0;
                                while (1) {
                                    if (t >>> 0 >= i >>> 0) {
                                        t = 1;
                                        break e
                                    }
                                    i = a[e >> 2] | 0;
                                    FE(a[i + 8 >> 2] | 0, a[i + 20 >> 2] | 0, a[i + 36 >> 2] | 0, t, 7, -1);
                                    i = a[e >> 2] | 0;
                                    FE(a[i + 8 >> 2] | 0, a[i + 20 >> 2] | 0, a[i + 36 >> 2] | 0, t, 8, -1);
                                    t = t + 1 | 0;
                                    i = a[r >> 2] | 0
                                }
                            }
                        } while (0);
                        return t | 0
                    }

                    function aU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 11, e + 52 | 0, e + 74 | 0, e + 96 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function sU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = AE(e + 4 | 0, t, 19, e + 52 | 0, e + 90 | 0, e + 128 | 0) | 0;
                        a[e >> 2] = i;
                        e: do {
                            if (i) {
                                t = a[i >> 2] | 0;
                                r = e + 48 | 0;
                                a[r >> 2] = t;
                                if ((o[i + 24 >> 1] | 0) > 13) {
                                    i = 0;
                                    while (1) {
                                        if (i >>> 0 >= t >>> 0) {
                                            t = 1;
                                            break e
                                        }
                                        t = a[e >> 2] | 0;
                                        FE(a[t + 8 >> 2] | 0, a[t + 20 >> 2] | 0, a[t + 36 >> 2] | 0, i, 12, -1);
                                        t = a[e >> 2] | 0;
                                        FE(a[t + 8 >> 2] | 0, a[t + 20 >> 2] | 0, a[t + 36 >> 2] | 0, i, 13, -1);
                                        i = i + 1 | 0;
                                        t = a[r >> 2] | 0
                                    }
                                } else t = 1
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function oU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 13, e + 52 | 0, e + 78 | 0, e + 104 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function uU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function hU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function lU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 3, e + 52 | 0, e + 58 | 0, e + 64 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function fU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 1, e + 52 | 0, e + 54 | 0, e + 56 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function cU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = e + (i & 65535) | 0;
                        a[r + 4 >> 2] = xE(e + 4 | 0) | 0;
                        a[r >> 2] = t + (xE(e) | 0);
                        return
                    }

                    function dU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        i = AE(e + 4 | 0, t, 15, e + 52 | 0, e + 82 | 0, e + 112 | 0) | 0;
                        a[e >> 2] = i;
                        e: do {
                            if (i) {
                                t = a[i >> 2] | 0;
                                r = e + 48 | 0;
                                a[r >> 2] = t;
                                if ((o[i + 24 >> 1] | 0) > 13) {
                                    i = 0;
                                    while (1) {
                                        if (i >>> 0 >= t >>> 0) {
                                            t = 1;
                                            break e
                                        }
                                        t = a[e >> 2] | 0;
                                        FE(a[t + 8 >> 2] | 0, a[t + 20 >> 2] | 0, a[t + 36 >> 2] | 0, i, 12, -1);
                                        t = a[e >> 2] | 0;
                                        FE(a[t + 8 >> 2] | 0, a[t + 20 >> 2] | 0, a[t + 36 >> 2] | 0, i, 13, -1);
                                        i = i + 1 | 0;
                                        t = a[r >> 2] | 0
                                    }
                                } else t = 1
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function pU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        t = AE(e + 4 | 0, t, 23, e + 52 | 0, e + 98 | 0, e + 144 | 0) | 0;
                        a[e >> 2] = t;
                        e: do {
                            if (t) {
                                i = a[t >> 2] | 0;
                                s = e + 48 | 0;
                                a[s >> 2] = i;
                                if ((o[t + 24 >> 1] | 0) > 15 ? (n[(a[t + 40 >> 2] | 0) + 36 >> 1] | 0) == 0 : 0) {
                                    r = 0;
                                    while (1) {
                                        t = r & 65535;
                                        if (i >>> 0 <= t >>> 0) {
                                            t = 1;
                                            break e
                                        }
                                        i = a[e >> 2] | 0;
                                        DE(a[i + 8 >> 2] | 0, a[i + 20 >> 2] | 0, n[(a[i + 36 >> 2] | 0) + 36 >> 1] | 0, t, -1);
                                        r = r + 1 << 16 >> 16;
                                        i = a[s >> 2] | 0
                                    }
                                } else t = 1
                            } else t = 0
                        } while (0);
                        return t | 0
                    }

                    function vU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 13, e + 52 | 0, e + 78 | 0, e + 104 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function mU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 4, e + 52 | 0, e + 60 | 0, e + 68 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function _U(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function bU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 7, e + 52 | 0, e + 66 | 0, e + 80 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function gU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function yU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 2, e + 52 | 0, e + 56 | 0, e + 60 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function AU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 8, e + 52 | 0, e + 68 | 0, e + 84 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function wU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 5, e + 52 | 0, e + 62 | 0, e + 72 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function xU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 3, e + 52 | 0, e + 58 | 0, e + 64 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function kU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 5, e + 52 | 0, e + 62 | 0, e + 72 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function TU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        t = AE(e + 4 | 0, t, 10, e + 52 | 0, e + 72 | 0, e + 92 | 0) | 0;
                        a[e >> 2] = t;
                        if (!t) t = 0;
                        else {
                            a[e + 48 >> 2] = a[t >> 2];
                            t = 1
                        }
                        return t | 0
                    }

                    function EU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        t = t & 65535;
                        r[i + 8 >> 0] = TE(e, t, 0) | 0;
                        a[i >> 2] = IE(e, t, 1) | 0;
                        a[i + 4 >> 2] = IE(e, t, 2) | 0;
                        a[i + 12 >> 2] = SE(e, t, 3) | 0;
                        return
                    }

                    function SU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if ((e | 0) == 0 | (t | 0) < 1) {
                            sE();
                            e = 0
                        } else e = PU(e, t, i, r) | 0;
                        return e | 0
                    }

                    function PU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (!(fE(e, t) | 0)) {
                            sE();
                            e = 0
                        } else e = IU(e, i, r) | 0;
                        return e | 0
                    }

                    function IU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        r = (t | 0) == 0;
                        do {
                            if (r & (i | 0) == 0) {
                                r = oi(40) | 0;
                                if (!r) {
                                    sE();
                                    r = 0
                                } else {
                                    n = 1;
                                    t = r;
                                    i = 40;
                                    s = 8
                                }
                            } else {
                                if ((i | 0) < 40) {
                                    sE();
                                    r = 0;
                                    break
                                }
                                if (r) {
                                    sE();
                                    r = 0
                                } else {
                                    n = 0;
                                    s = 8
                                }
                            }
                        } while (0);
                        do {
                            if ((s | 0) == 8) {
                                aE(t, i);
                                o = t;
                                s = o + 3 & -4;
                                r = s;
                                if ((36 - o + s | 0) >>> 0 <= i >>> 0) {
                                    a[r + 12 >> 2] = t;
                                    a[r + 20 >> 2] = i;
                                    a[r + 24 >> 2] = n;
                                    a[r >> 2] = 284;
                                    a[r + 4 >> 2] = e;
                                    break
                                }
                                sE();
                                if ((n | 0) == 1) {
                                    si(t);
                                    r = 0
                                } else r = 0
                            }
                        } while (0);
                        return r | 0
                    }

                    function MU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        if (!(a[e + 72 >> 2] | 0)) {
                            if (!(KL(e, t, i) | 0)) {
                                sE();
                                Sm(e)
                            }
                        } else sE();
                        return
                    }

                    function CU(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 32 | 0;
                        t = r;
                        switch (a[e + 56 >> 2] | 0) {
                            case 3:
                            case 2:
                            case 0:
                                {
                                    e = a[e + 472 >> 2] & 65535;
                                    break
                                }
                            case 1:
                                {
                                    i = e + 424 | 0;e = a[e + 472 >> 2] | 0;e: do {
                                        if (!(Nc(i, e + 65535 & 65535, t) | 0)) e = 0;
                                        else {
                                            e = e & 65535;
                                            while (1) {
                                                if ((a[t >> 2] | 0) != 2147483647) break e;
                                                e = e + -1 << 16 >> 16;
                                                if (!(Nc(i, (e & 65535) + 65535 & 65535, t) | 0)) {
                                                    e = 0;
                                                    break
                                                }
                                            }
                                        }
                                    } while (0);
                                    break
                                }
                            default:
                                e = 0
                        }
                        p = r;
                        return e | 0
                    }

                    function OU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 16 | 0;
                        r = v + 8 | 0;
                        l = v;
                        o = a[e + 3400 >> 2] | 0;
                        do {
                            if (o) {
                                c = a[e + 3392 >> 2] | 0;
                                h = a[e + 64 >> 2] | 0;
                                if (h >>> 0 <= 16777215) {
                                    c = DU(t, i, c, o) | 0;
                                    d = e + 3388 | 0;
                                    a[a[d >> 2] >> 2] = c;
                                    BU((FU(a[a[d >> 2] >> 2] | 0) | 0) & 65535);
                                    ai(a[a[d >> 2] >> 2] | 0, r) | 0;
                                    d = 11;
                                    break
                                }
                                s = c;
                                f = e + 3388 | 0;
                                r = a[f >> 2] | 0;
                                if ((r | 0) != (e + 3380 | 0))
                                    if ((s + 2048 | 0) >>> 0 > r >>> 0) o = (a[e + 3404 >> 2] | 0) == 1 ? r - s | 0 : 2048;
                                    else o = 2048;
                                s = a[e + 3408 >> 2] | 0;
                                a[l >> 2] = s;
                                r = a[e + 3412 >> 2] | 0;
                                u = l + 4 | 0;
                                a[u >> 2] = r;
                                if (h >>> 0 > 19267583) {
                                    s = a[e + 3292 >> 2] | 0;
                                    cU(a[s + 8 >> 2] | 0, a[s + 16 >> 2] | 0, n[a[s + 36 >> 2] >> 1] | 0, l);
                                    s = a[l >> 2] | 0;
                                    r = a[u >> 2] | 0
                                }
                                RU(s, r, t, i, c, o);
                                a[a[f >> 2] >> 2] = 0;
                                if (!(a[a[f >> 2] >> 2] | 0)) r = 0;
                                else d = 11
                            } else {
                                sE();
                                d = 11
                            }
                        } while (0);
                        if ((d | 0) == 11) {
                            NU(a[e + 3396 >> 2] | 0);
                            r = 1
                        }
                        p = v;
                        return r | 0
                    }

                    function RU(e, t, i, r, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0;
                        do {
                            if (!(fE(e, t) | 0)) sE();
                            else {
                                o = cE(e, t) | 0;
                                if ((o | 0) < 0 | (o | 0) > (t | 0)) {
                                    sE();
                                    break
                                }
                                s = GU(0, n, s) | 0;
                                if (!s) {
                                    sE();
                                    break
                                }
                                o = a[s + 4 >> 2] | 0;
                                a[o + 4 >> 2] = e;
                                a[o + 8 >> 2] = t;
                                a[s + 8 >> 2] = r;
                                if (!r) n = 0;
                                else n = bI(r) | 0;
                                a[s + 16 >> 2] = n;
                                HU(o, i);
                                a[o + 40 >> 2] = 2;
                                while (1) {}
                            }
                        } while (0);
                        return
                    }

                    function DU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        e = LU(e, t, i, r) | 0;
                        e: do {
                            if (!e) e = 0;
                            else {
                                t: while (1) {
                                    switch (UU(e) | 0) {
                                        case 2:
                                            break e;
                                        case 3:
                                            break t;
                                        default:
                                            {}
                                    }
                                    gi();
                                    yi()
                                }
                                VU(e);Lv(e);e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function FU(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else e = KG[a[(a[e >> 2] | 0) + 16 >> 2] & 63](e) | 0;
                        return e | 0
                    }

                    function BU(e) {
                        e = e | 0;
                        var t = 0;
                        t = p;
                        p = p + 16 | 0;
                        if (e >>> 0 <= 65535) kI(t);
                        p = t;
                        return
                    }

                    function NU(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        return
                    }

                    function LU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if ((bI(t) | 0) < 0) {
                            sE();
                            e = 0
                        } else e = XU(e, t, i, r) | 0;
                        return e | 0
                    }

                    function UU(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 3
                        } else e = KG[a[(a[e >> 2] | 0) + 12 >> 2] & 63](e) | 0;
                        return e | 0
                    }

                    function VU(e) {
                        e = e | 0;
                        KG[a[(a[e >> 2] | 0) + 36 >> 2] & 63](e) | 0;
                        return
                    }

                    function XU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        h = p;
                        p = p + 16 | 0;
                        u = h;
                        kI(u);
                        u = a[u >> 2] | 0;
                        s = jU(u) | 0;
                        e: do {
                            if ((s | 0) >= 0 ? (n = GU(u, i, r) | 0, (n | 0) != 0) : 0) {
                                o = a[n + 4 >> 2] | 0;
                                do {
                                    if (a[n + 24 >> 2] | 0) {
                                        i = oi(($U(16) | 0) + 4 | 0) | 0;
                                        a[o + 36 >> 2] = i;
                                        if (!i) {
                                            Lv(n);
                                            n = 0;
                                            break e
                                        } else {
                                            a[o + 4 >> 2] = i + 3 & -4;
                                            i = 16;
                                            break
                                        }
                                    } else {
                                        l = i;
                                        i = l + 3 + s & -4;
                                        a[o + 4 >> 2] = i;
                                        i = l + r - i | 0
                                    }
                                } while (0);
                                a[o + 8 >> 2] = $U(i) | 0;
                                mS(a[n + 8 >> 2] | 0, u, t);
                                HU(o, e);
                                a[o + 40 >> 2] = 2
                            } else n = 0
                        } while (0);
                        p = h;
                        return n | 0
                    }

                    function jU(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        TI(t);
                        p = i;
                        return e + 104 + (a[t >> 2] | 0) | 0
                    }

                    function GU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        o = h + 12 | 0;
                        u = h;
                        s = jU(e) | 0;
                        do {
                            if ((s | 0) < 0) {
                                sE();
                                i = 0
                            } else {
                                TI(o);
                                r = (t | 0) == 0;
                                if (r & (i | 0) == 0) {
                                    i = oi(s) | 0;
                                    if (!i) {
                                        sE();
                                        i = 0;
                                        break
                                    } else {
                                        n = 1;
                                        r = i;
                                        i = s
                                    }
                                } else {
                                    if ((s | 0) > (i | 0)) {
                                        sE();
                                        i = 0;
                                        break
                                    }
                                    if (r) {
                                        sE();
                                        i = 0;
                                        break
                                    } else {
                                        n = 0;
                                        r = t
                                    }
                                }
                                aE(r, i);
                                FS(r, i, u);
                                s = BS(u, 36, 4) | 0;
                                a[s + 8 >> 2] = BS(u, e, 1) | 0;
                                t = BS(u, 60, 4) | 0;
                                a[s + 4 >> 2] = t;
                                a[s + 16 >> 2] = e;
                                a[s + 12 >> 2] = r;
                                a[s + 20 >> 2] = i;
                                a[s + 24 >> 2] = n;
                                a[s >> 2] = 172;
                                o = a[o >> 2] | 0;
                                a[t + 24 >> 2] = BS(u, o, 1) | 0;
                                a[t + 28 >> 2] = o;
                                u = e + 36 + s | 0;
                                a[t + 44 >> 2] = u;
                                a[t + 48 >> 2] = i + r - u;
                                i = s
                            }
                        } while (0);
                        p = h;
                        return i | 0
                    }

                    function $U(e) {
                        e = e | 0;
                        return ((e | 0) > 4 ? e : 4) & 2147483644 | 0
                    }

                    function HU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!t) WU(e, 0);
                        else WU(e, t);
                        return
                    }

                    function WU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e >> 2] = t;
                        a[e + 16 >> 2] = t;
                        a[e + 20 >> 2] = 0;
                        a[e + 52 >> 2] = 0;
                        return
                    }

                    function YU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = a[e + 3388 >> 2] | 0;
                        if (!(a[i >> 2] | 0)) {
                            a[i >> 2] = t;
                            a[e + 3376 >> 2] = 1;
                            e = 1
                        } else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function zU(e) {
                        e = e | 0;
                        if (!(a[e + 72 >> 2] | 0)) {
                            sE();
                            e = 0
                        } else e = (a[e + 3400 >> 2] | 0) != 0 & 1;
                        return e | 0
                    }

                    function qU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0,
                            G = 0,
                            $ = 0,
                            H = 0,
                            W = 0,
                            Y = 0,
                            z = 0,
                            q = 0,
                            J = 0,
                            Q = 0,
                            Z = 0.0;
                        Q = p;
                        p = p + 224 | 0;
                        G = Q + 184 | 0;
                        o = Q + 128 | 0;
                        W = Q + 124 | 0;
                        Y = Q + 120 | 0;
                        z = Q + 64 | 0;
                        q = Q;
                        if (t << 16 >> 16 != -1 ? (Nc(e + 424 | 0, t, G) | 0) != 0 : 0) {
                            a[i + 8 >> 2] = Gp(e, t) | 0;
                            a[i >> 2] = a[G >> 2];
                            a[i + 12 >> 2] = a[G + 8 >> 2];
                            H = a[G + 20 >> 2] | 0;
                            $ = (H | 0) == -1;
                            F = i + 16 | 0;
                            a[F >> 2] = $ ? -1 : H;
                            a[F + 4 >> 2] = $ ? -1 : 0;
                            F = i + 4 | 0;
                            a[F >> 2] = 0;
                            $ = i + 64 | 0;
                            r[$ >> 0] = 0;
                            H = i + 56 | 0;
                            n[H >> 1] = -1;
                            B = i + 58 | 0;
                            n[B >> 1] = 0;
                            N = i + 60 | 0;
                            n[N >> 1] = 0;
                            n[i + 62 >> 1] = n[G + 30 >> 1] | 0;
                            t = 0;
                            while (1) {
                                if ((t | 0) == 16) break;
                                n[i + 24 + (t << 1) >> 1] = -1;
                                t = t + 1 | 0
                            }
                            n[z >> 1] = 0;
                            n[z + 2 >> 1] = -1;
                            r[z + 4 >> 0] = 0;
                            L = z + 5 | 0;
                            r[L >> 0] = 0;
                            U = z + 7 | 0;
                            r[U >> 0] = 0;
                            V = z + 8 | 0;
                            r[V >> 0] = 100;
                            a[i + 116 >> 2] = 65535;
                            a[i + 112 >> 2] = 11354;
                            h[i + 120 >> 2] = 0.0;
                            r[i + 65 >> 0] = r[G + 29 >> 0] | 0;
                            X = i + 67 | 0;
                            r[X >> 0] = 100;
                            A = z + 12 | 0;
                            T = ((a[e + 64 >> 2] | 0) >>> 0 < 20250624) << 31 >> 31;
                            a[A >> 2] = T;
                            w = i + 68 | 0;
                            a[w >> 2] = T;
                            NO(o);
                            T = a[o + 4 >> 2] | 0;
                            x = z + 16 | 0;
                            a[x >> 2] = T;
                            Z = +h[o + 8 >> 2];
                            k = z + 20 | 0;
                            h[k >> 2] = Z;
                            JU(W, Y, (a[c >> 2] = T, +h[c >> 2]), Z);
                            T = i + 72 | 0;
                            a[T >> 2] = a[W >> 2];
                            E = i + 76 | 0;
                            a[E >> 2] = a[Y >> 2];
                            u = a[o + 16 >> 2] | 0;
                            S = z + 24 | 0;
                            a[S >> 2] = u;
                            P = i + 80 | 0;
                            a[P >> 2] = u;
                            u = a[o + 20 >> 2] | 0;
                            I = z + 28 | 0;
                            a[I >> 2] = u;
                            M = i + 84 | 0;
                            a[M >> 2] = u;
                            u = a[o + 24 >> 2] | 0;
                            C = z + 32 | 0;
                            a[C >> 2] = u;
                            O = i + 88 | 0;
                            a[O >> 2] = u;
                            u = a[o + 28 >> 2] | 0;
                            R = z + 36 | 0;
                            a[R >> 2] = u;
                            D = i + 92 | 0;
                            a[D >> 2] = u;
                            u = a[o + 32 >> 2] | 0;
                            t = z + 40 | 0;
                            a[t >> 2] = u;
                            o = i + 96 | 0;
                            a[o >> 2] = u;
                            u = z + 44 | 0;
                            n[u >> 1] = -1;
                            l = i + 100 | 0;
                            n[l >> 1] = -1;
                            f = z + 46 | 0;
                            n[f >> 1] = -1;
                            d = i + 102 | 0;
                            n[d >> 1] = -1;
                            v = z + 48 | 0;
                            n[v >> 1] = -1;
                            m = i + 104 | 0;
                            n[m >> 1] = -1;
                            _ = z + 50 | 0;
                            n[_ >> 1] = -1;
                            b = i + 106 | 0;
                            n[b >> 1] = -1;
                            g = z + 52 | 0;
                            n[g >> 1] = -1;
                            y = i + 108 | 0;
                            n[y >> 1] = -1;
                            switch (a[G + 12 >> 2] | 0) {
                                case 2:
                                    {
                                        Fp(e + 592 | 0, n[G + 4 >> 1] | 0, q);j = a[q + 28 >> 2] | 0;a[F >> 2] = a[q + 16 >> 2];n[N >> 1] = s[q + 26 >> 0] | 0;J = 10;
                                        break
                                    }
                                case 3:
                                    {
                                        Ip(e + 824 | 0, n[G + 4 >> 1] | 0, q, a[e + 56 >> 2] | 0);j = a[q + 24 >> 2] | 0;a[F >> 2] = a[q + 12 >> 2];n[N >> 1] = n[q + 32 >> 1] | 0;J = 10;
                                        break
                                    }
                                case 8:
                                    {
                                        md(e + 972 | 0, n[G + 4 >> 1] | 0, q, a[e + 56 >> 2] | 0);j = a[q + 32 >> 2] | 0;n[B >> 1] = n[q + 42 >> 1] | 0;n[N >> 1] = n[q + 40 >> 1] | 0;J = 10;
                                        break
                                    }
                                default:
                                    {}
                            }
                            if ((J | 0) == 10 ? (j | 0) != -1 : 0) {
                                pf(a[e + 1388 >> 2] | 0, j, q);
                                bv(q, e, z, i);
                                a[w >> 2] = a[A >> 2];
                                JU(W, Y, +h[x >> 2], +h[k >> 2]);
                                a[T >> 2] = a[W >> 2];
                                a[E >> 2] = a[Y >> 2];
                                a[P >> 2] = a[S >> 2];
                                a[M >> 2] = a[I >> 2];
                                a[O >> 2] = a[C >> 2];
                                a[D >> 2] = a[R >> 2];
                                a[o >> 2] = a[t >> 2];
                                n[l >> 1] = n[u >> 1] | 0;
                                n[d >> 1] = n[f >> 1] | 0;
                                n[m >> 1] = n[v >> 1] | 0;
                                n[b >> 1] = n[_ >> 1] | 0;
                                n[y >> 1] = n[g >> 1] | 0
                            }
                            t = n[z >> 1] | 0;
                            if (t << 16 >> 16) n[H >> 1] = t;
                            r[$ >> 0] = r[L >> 0] | 0;
                            r[i + 66 >> 0] = r[U >> 0] | 0;
                            r[X >> 0] = r[V >> 0] | 0;
                            t = 1
                        } else t = 0;
                        p = Q;
                        return t | 0
                    }

                    function JU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        QU(e, t, i, r);
                        return
                    }

                    function QU(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = +i;
                        r = +r;
                        i = i * 2.0;
                        r = r * 2.0;
                        h[e >> 2] = +sR(i < r ? i : r);
                        h[t >> 2] = +sR(r < 6.2831854820251465 ? r : 6.2831854820251465);
                        return
                    }

                    function ZU(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0;
                        f = p;
                        p = p + 288 | 0;
                        i = f + 248 | 0;
                        o = f;
                        u = f + 192 | 0;
                        h = f + 128 | 0;
                        e: do {
                            if (t << 16 >> 16 != -1 ? (n[u >> 1] = 0, l = u + 2 | 0, n[l >> 1] = -1, r[u + 4 >> 0] = 0, r[u + 5 >> 0] = 0, r[u + 7 >> 0] = 0, (Nc(e + 424 | 0, t, i) | 0) != 0) : 0) {
                                switch (a[i + 12 >> 2] | 0) {
                                    case 2:
                                        {
                                            Fp(e + 592 | 0, n[i + 4 >> 1] | 0, h);t = a[h + 28 >> 2] | 0;
                                            break
                                        }
                                    case 3:
                                        {
                                            Ip(e + 824 | 0, n[i + 4 >> 1] | 0, h, a[e + 56 >> 2] | 0);t = a[h + 24 >> 2] | 0;
                                            break
                                        }
                                    default:
                                        {
                                            t = -1;
                                            break e
                                        }
                                }
                                if (((t | 0) != -1 ? (pf(a[e + 1388 >> 2] | 0, t, h), bv(h, e, u, o), (n[u >> 1] | 0) != 0) : 0) ? (s = n[l >> 1] | 0, s << 16 >> 16 != -1) : 0) t = KE(a[(a[e + 3352 >> 2] | 0) + (((s & 65535) << 1) * 12 | 0) + 8 >> 2] | 0) | 0;
                                else t = -1
                            } else t = -1
                        } while (0);
                        p = f;
                        return t | 0
                    }

                    function KU(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        a[2067] = (a[2067] | 0) + 1;
                        if ((a[2067] | 0) == 1 ? (i = kS(e, t, i) | 0, a[1622] = i, (i | 0) == 0) : 0) eV();
                        return
                    }

                    function eV() {
                        var e = 0;
                        a[2067] = (a[2067] | 0) + -1;
                        e = a[1622] | 0;
                        if ((a[2067] | 0) == 0 & (e | 0) != 0) {
                            TS(e, 27);
                            a[1622] = 0
                        }
                        return
                    }

                    function tV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        iV(t);
                        return
                    }

                    function iV(e) {
                        e = e | 0;
                        SS(a[1622] | 0, e);
                        return
                    }

                    function rV(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = a[e + 12 >> 2] | 0;
                        if ((t | 0) < 1) e = 104;
                        else {
                            i = a[e + 4 >> 2] | 0;
                            e = (rn(~~+h[e >> 2], i, a[e + 8 >> 2] | 0, t) | 0) + 8 + ((i | 0) < 2 ? 216 : (i | 0) == 2 ? 232 : 328) | 0
                        }
                        return e | 0
                    }

                    function nV(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0;
                        aE(t, i);
                        f = t + 7 & -8;
                        t = f;
                        i = f + 96 | 0;
                        a[t + 12 >> 2] = a[e + 16 >> 2];
                        l = e + 4 | 0;
                        n = a[l >> 2] | 0;
                        r[t + 16 >> 0] = n;
                        s = e + 12 | 0;
                        u = a[s >> 2] | 0;
                        r[t + 18 >> 0] = u;
                        r[t + 19 >> 0] = 1;
                        if ((u | 0) >= 1) {
                            e: do {
                                if ((n | 0) >= 2)
                                    if ((n | 0) == 2) {
                                        n = 0;
                                        while (1) {
                                            if ((n | 0) == 4) {
                                                n = 224;
                                                break e
                                            }
                                            a[t + 28 + (n << 2) >> 2] = zS(i) | 0;
                                            n = n + 1 | 0;
                                            i = i + 32 | 0
                                        }
                                    } else {
                                        n = 0;
                                        while (1) {
                                            if ((n | 0) == 4) {
                                                n = 320;
                                                break e
                                            }
                                            a[t + 28 + (n << 2) >> 2] = qS(i) | 0;
                                            n = n + 1 | 0;
                                            i = i + 56 | 0
                                        }
                                    }
                                else {
                                    n = 0;
                                    while (1) {
                                        if ((n | 0) == 4) {
                                            n = 208;
                                            break e
                                        }
                                        a[t + 28 + (n << 2) >> 2] = WS(i) | 0;
                                        n = n + 1 | 0;
                                        i = i + 28 | 0
                                    }
                                }
                            } while (0);o = a[l >> 2] | 0;o = (rn(~~+h[e >> 2], o, a[e + 8 >> 2] | 0, a[s >> 2] | 0) | 0) / (o | 0) | 0;u = (o | 0) / 4 | 0;i = 0;
                            while (1) {
                                if ((i | 0) == 4) break;
                                rP(a[t + 28 + (i << 2) >> 2] | 0, u);
                                i = i + 1 | 0
                            }
                            e = 0;i = n + f | 0;
                            while (1) {
                                if ((e | 0) == 4) break;
                                s = t + 28 + (e << 2) | 0;
                                n = 0;
                                while (1) {
                                    if ((n | 0) >= (a[l >> 2] | 0)) break;
                                    iP(a[s >> 2] | 0, n, i);
                                    n = n + 1 | 0;
                                    i = i + u | 0
                                }
                                e = e + 1 | 0
                            }
                            i = (o | 0) / 16 | 0;a[t + 20 >> 2] = i;a[t + 24 >> 2] = i;i = 0;
                            while (1) {
                                if ((i | 0) == 4) break;
                                r[t + 52 + i >> 0] = 4;
                                i = i + 1 | 0
                            }
                            if (!(ES(a[1622] | 0, f) | 0)) {
                                iV(t);
                                t = 0
                            }
                        }
                        return t | 0
                    }

                    function aV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0;
                        e: do {
                            if ((r[e + 18 >> 0] | 0) > 0) {
                                i = 0;
                                while (1) {
                                    if ((i | 0) == 4) {
                                        i = 0;
                                        break
                                    }
                                    n = e + 28 + (i << 2) | 0;
                                    a[(a[n >> 2] | 0) + 4 >> 2] = t;
                                    r[(a[n >> 2] | 0) + 8 >> 0] = 0;
                                    i = i + 1 | 0
                                }
                                while (1) {
                                    if ((i | 0) == 4) break e;
                                    YS(t, 0, a[e + 28 + (i << 2) >> 2] | 0);
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        a[e + 4 >> 2] = t;
                        return
                    }

                    function sV() {
                        var e = 0;
                        e = a[2068] | 0;
                        a[2068] = e + 1;
                        if (!e) {
                            aS(8232);
                            JE(6796)
                        }
                        return
                    }

                    function oV() {
                        var e = 0;
                        e = (a[2068] | 0) + -1 | 0;
                        a[2068] = e;
                        e: do {
                            if (!e) {
                                while (1) {
                                    e = a[1699] | 0;
                                    if (!(ZE(e) | 0)) break;
                                    uV(a[e >> 2] | 0)
                                }
                                while (1) {
                                    e = a[2058] | 0;
                                    if (!(oS(e) | 0)) break e;
                                    hV(a[e >> 2] | 0)
                                }
                            }
                        } while (0);
                        return
                    }

                    function uV(e) {
                        e = e | 0;
                        var t = 0;
                        do {
                            if (e)
                                if ((cI(a[e + 156 >> 2] | 0) | 0) > 0) {
                                    sE();
                                    break
                                } else {
                                    t = e + 160 | 0;
                                    iS(6796, t);
                                    a[t >> 2] = 0;
                                    Uv(a[e + 168 >> 2] | 0);
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function hV(e) {
                        e = e | 0;
                        var t = 0;
                        do {
                            if (!e) sE();
                            else {
                                if ((cI(a[e + 324 >> 2] | 0) | 0) > 0) {
                                    sE();
                                    break
                                }
                                t = a[e + 336 >> 2] | 0;
                                if (t | 0) lV(t, e);
                                t = e + 136 | 0;
                                lS(8232, t);
                                a[t >> 2] = 0;
                                Uv(a[e + 148 >> 2] | 0)
                            }
                        } while (0);
                        return
                    }

                    function lV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0;
                        e: do {
                            if ((e | 0) == 0 | (t | 0) == 0) sE();
                            else {
                                u = e + 8 | 0;
                                h = a[u >> 2] | 0;
                                if (!h) {
                                    sE();
                                    break
                                }
                                l = t + 336 | 0;
                                if (!(a[l >> 2] | 0)) {
                                    sE();
                                    break
                                }
                                r = a[e >> 2] | 0;
                                t: do {
                                    if (r | 0) {
                                        i = a[r + 332 >> 2] | 0;
                                        while (1) {
                                            if ((i | 0) == (t | 0)) break;
                                            i = a[i + 332 >> 2] | 0;
                                            if ((i | 0) == (r | 0)) break t
                                        }
                                        s = (r | 0) == (t | 0);
                                        if (s ? (n = e + 4 | 0, (a[n >> 2] | 0) == (t | 0)) : 0) {
                                            a[e >> 2] = 0;
                                            a[n >> 2] = 0;
                                            r = t + 328 | 0;
                                            i = t + 332 | 0
                                        } else o = 15;
                                        do {
                                            if ((o | 0) == 15) {
                                                i = t + 332 | 0;
                                                n = t + 328 | 0;
                                                o = a[n >> 2] | 0;
                                                a[o + 332 >> 2] = a[i >> 2];
                                                r = a[i >> 2] | 0;
                                                a[r + 328 >> 2] = o;
                                                if (s) {
                                                    a[e >> 2] = r;
                                                    r = n;
                                                    break
                                                }
                                                r = e + 4 | 0;
                                                if ((a[r >> 2] | 0) == (t | 0)) {
                                                    a[r >> 2] = a[n >> 2];
                                                    r = n
                                                } else r = n
                                            }
                                        } while (0);
                                        a[i >> 2] = t;
                                        a[r >> 2] = t;
                                        a[l >> 2] = 0;
                                        a[u >> 2] = h + -1;
                                        break e
                                    }
                                } while (0);
                                sE()
                            }
                        } while (0);
                        return
                    }

                    function fV(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 32 | 0;
                        s = h + 16 | 0;
                        u = h + 12 | 0;
                        o = h;
                        if (!e) {
                            a[s >> 2] = 0;
                            e = s
                        }
                        s = cV(t, i, 348, u) | 0;
                        if (!s) {
                            sE();
                            s = 0
                        } else {
                            FS(s, 348, o);
                            s = BS(o, 340, 8) | 0;
                            a[s + 148 >> 2] = a[u >> 2];
                            dV(s);
                            a[s + 56 >> 2] = a[e >> 2];
                            dV(s + 64 | 0);
                            a[s + 120 >> 2] = a[e >> 2];
                            i = s + 156 | 0;
                            pV(i);
                            e = s + 260 | 0;
                            vV(e);
                            o = s + 196 | 0;
                            t = s + 280 | 0;
                            a[o >> 2] = 16843009;
                            a[o + 4 >> 2] = 16843009;
                            n[o + 8 >> 1] = 257;
                            a[t >> 2] = 16843009;
                            r[t + 4 >> 0] = 1;
                            t = s + 208 | 0;
                            o = t + 52 | 0;
                            do {
                                a[t >> 2] = a[i >> 2];
                                t = t + 4 | 0;
                                i = i + 4 | 0
                            } while ((t | 0) < (o | 0));
                            u = s + 288 | 0;
                            a[u >> 2] = a[e >> 2];
                            a[u + 4 >> 2] = a[e + 4 >> 2];
                            a[u + 8 >> 2] = a[e + 8 >> 2];
                            a[u + 12 >> 2] = a[e + 12 >> 2];
                            a[u + 16 >> 2] = a[e + 16 >> 2];
                            a[u + 20 >> 2] = a[e + 20 >> 2];
                            a[u + 24 >> 2] = a[e + 24 >> 2];
                            r[s + 316 >> 0] = 0;
                            a[s + 332 >> 2] = s;
                            a[s + 328 >> 2] = s;
                            a[s + 336 >> 2] = 0;
                            a[s + 320 >> 2] = 0;
                            dI(s + 324 | 0, 0);
                            u = s + 136 | 0;
                            qE(u);
                            a[u >> 2] = s;
                            hS(8232, u)
                        }
                        p = h;
                        return s | 0
                    }

                    function cV(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        var n = 0;
                        a[r >> 2] = 0;
                        if (!((e | 0) == 0 & (t | 0) == 0))
                            if ((t | 0) < (i | 0)) {
                                sE();
                                e = 0
                            } else {
                                t = 0;
                                n = 5
                            }
                        else {
                            e = oi(i) | 0;
                            t = e;
                            n = 5
                        }
                        do {
                            if ((n | 0) == 5)
                                if (!e) {
                                    sE();
                                    e = 0;
                                    break
                                } else {
                                    aE(e, i);
                                    a[r >> 2] = t;
                                    break
                                }
                        } while (0);
                        return e | 0
                    }

                    function dV(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 8276;
                        i = e + 64 | 0;
                        do {
                            a[e >> 2] = a[t >> 2];
                            e = e + 4 | 0;
                            t = t + 4 | 0
                        } while ((e | 0) < (i | 0));
                        return
                    }

                    function pV(e) {
                        e = e | 0;
                        a[e + 4 >> 2] = 2147483647;
                        a[e + 8 >> 2] = 2147483647;
                        a[e + 12 >> 2] = 2147483647;
                        a[e + 16 >> 2] = 2147483647;
                        a[e + 20 >> 2] = 2147483647;
                        a[e + 24 >> 2] = 2147483647;
                        a[e + 28 >> 2] = 2147483647;
                        a[e >> 2] = 2147483647;
                        a[e + 32 >> 2] = 2147483647;
                        a[e + 36 >> 2] = 2147483647;
                        return
                    }

                    function vV(e) {
                        e = e | 0;
                        a[e >> 2] = 2147483647;
                        a[e + 8 >> 2] = 2147483647;
                        a[e + 4 >> 2] = 2147483647;
                        a[e + 12 >> 2] = 2147483647;
                        a[e + 16 >> 2] = 2147483647;
                        return
                    }

                    function mV(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        if (e) {
                            n = e;
                            s = e + 64 | 0;
                            o = n + 64 | 0;
                            do {
                                a[n >> 2] = a[s >> 2];
                                n = n + 4 | 0;
                                s = s + 4 | 0
                            } while ((n | 0) < (o | 0));
                            a[e + 128 >> 2] = a[e + 132 >> 2];
                            i = e + 316 | 0;
                            if ((r[i >> 0] | 0) == 1) {
                                t = a[e + 336 >> 2] | 0;
                                n = e + 156 | 0;
                                s = e + 208 | 0;
                                o = n + 52 | 0;
                                do {
                                    a[n >> 2] = a[s >> 2];
                                    n = n + 4 | 0;
                                    s = s + 4 | 0
                                } while ((n | 0) < (o | 0));
                                o = e + 260 | 0;
                                s = e + 288 | 0;
                                a[o >> 2] = a[s >> 2];
                                a[o + 4 >> 2] = a[s + 4 >> 2];
                                a[o + 8 >> 2] = a[s + 8 >> 2];
                                a[o + 12 >> 2] = a[s + 12 >> 2];
                                a[o + 16 >> 2] = a[s + 16 >> 2];
                                a[o + 20 >> 2] = a[s + 20 >> 2];
                                a[o + 24 >> 2] = a[s + 24 >> 2];
                                r[e + 152 >> 0] = 1;
                                r[i >> 0] = 0;
                                if (t | 0) r[(a[t + 12 >> 2] | 0) + 152 >> 0] = 1
                            }
                        } else sE();
                        return
                    }

                    function _V(e) {
                        e = e | 0;
                        if (!e) sE();
                        else {
                            dV(e + 64 | 0);
                            pV(e + 208 | 0);
                            vV(e + 288 | 0);
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function bV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[e + 64 >> 2] = a[t >> 2];
                                    a[e + 68 >> 2] = a[t + 4 >> 2];
                                    a[e + 72 >> 2] = a[t + 8 >> 2];
                                    r[e + 316 >> 0] = 1;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function gV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[e + 100 >> 2] = a[t >> 2];
                                    a[e + 104 >> 2] = a[t + 4 >> 2];
                                    a[e + 108 >> 2] = a[t + 8 >> 2];
                                    r[e + 316 >> 0] = 1;
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function yV(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var n = 0.0,
                            a = 0.0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0,
                            c = 0.0;
                        do {
                            if (e) {
                                if (!t) {
                                    sE();
                                    break
                                }
                                if (!i) {
                                    sE();
                                    break
                                }
                                f = +h[t >> 2];
                                c = +h[t + 4 >> 2];
                                s = +h[t + 8 >> 2];
                                o = +C(+(f * f + c * c + s * s));
                                u = +h[i >> 2];
                                l = +h[i + 4 >> 2];
                                n = +h[i + 8 >> 2];
                                a = +C(+(u * u + l * l + n * n));
                                if (+M(+o) < 1.1754943508222875e-38) {
                                    sE();
                                    break
                                }
                                if (+M(+a) < 1.1754943508222875e-38) {
                                    sE();
                                    break
                                } else {
                                    h[e + 76 >> 2] = f / o;
                                    h[e + 80 >> 2] = c / o;
                                    h[e + 84 >> 2] = s / o;
                                    h[e + 88 >> 2] = u / a;
                                    h[e + 92 >> 2] = l / a;
                                    h[e + 96 >> 2] = n / a;
                                    r[e + 316 >> 0] = 1;
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function AV(e, t, i, n) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        n = +n;
                        var s = 0,
                            o = 0,
                            u = 0;
                        u = p;
                        p = p + 16 | 0;
                        s = u + 4 | 0;
                        o = u;
                        if (!e) sE();
                        else {
                            jo(s, o, t, i);
                            a[e + 212 >> 2] = a[s >> 2];
                            a[e + 216 >> 2] = a[o >> 2];
                            h[e + 220 >> 2] = n;
                            r[e + 316 >> 0] = 1
                        }
                        p = u;
                        return
                    }

                    function wV(e, t, i) {
                        e = +e;
                        t = +t;
                        i = +i;
                        var r = 0,
                            n = 0,
                            a = 0;
                        r = p;
                        p = p + 16 | 0;
                        a = r + 4 | 0;
                        n = r;
                        jo(a, n, e, t);
                        xV(+h[a >> 2], +h[n >> 2], i);
                        p = r;
                        return
                    }

                    function xV(e, t, i) {
                        e = +e;
                        t = +t;
                        i = +i;
                        h[1709] = e;
                        h[1710] = t;
                        h[1711] = i;
                        return
                    }

                    function kV(e, t, i) {
                        e = e | 0;
                        t = +t;
                        i = +i;
                        if (!e) sE();
                        else {
                            h[e + 224 >> 2] = t;
                            h[e + 228 >> 2] = i;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function TV(e, t) {
                        e = +e;
                        t = +t;
                        EV(e, t);
                        return
                    }

                    function EV(e, t) {
                        e = +e;
                        t = +t;
                        h[1712] = e;
                        h[1713] = t;
                        return
                    }

                    function SV(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else {
                            h[e + 240 >> 2] = t;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function PV(e) {
                        e = +e;
                        IV(e);
                        return
                    }

                    function IV(e) {
                        e = +e;
                        h[1716] = e;
                        return
                    }

                    function MV(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else {
                            h[e + 208 >> 2] = t;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function CV(e) {
                        e = +e;
                        OV(e);
                        return
                    }

                    function OV(e) {
                        e = +e;
                        h[1708] = e;
                        return
                    }

                    function RV(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else {
                            h[e + 112 >> 2] = t;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function DV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            a[e + 288 >> 2] = t & 65535;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function FV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            a[e + 292 >> 2] = t & 65535;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function BV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) sE();
                        else {
                            a[e + 300 >> 2] = t & 65535;
                            r[e + 316 >> 0] = 1
                        }
                        return
                    }

                    function NV(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s + 12 | 0;
                        n = s;
                        e = cV(t, i, 180, r) | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else {
                            FS(e, 180, n);
                            e = BS(n, 172, 8) | 0;
                            a[e + 168 >> 2] = a[r >> 2];
                            LV(e);
                            LV(e + 72 | 0);
                            dI(e + 156 | 0, 0);
                            n = e + 160 | 0;
                            zE(n);
                            a[n >> 2] = e;
                            tS(6796, n)
                        }
                        p = s;
                        return e | 0
                    }

                    function LV(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 8340;
                        i = e + 72 | 0;
                        do {
                            a[e >> 2] = a[t >> 2];
                            e = e + 4 | 0;
                            t = t + 4 | 0
                        } while ((e | 0) < (i | 0));
                        return
                    }

                    function UV(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        if (!e) sE();
                        else {
                            t = e;
                            i = e + 72 | 0;
                            r = t + 72 | 0;
                            do {
                                a[t >> 2] = a[i >> 2];
                                t = t + 4 | 0;
                                i = i + 4 | 0
                            } while ((t | 0) < (r | 0));
                            a[e + 144 >> 2] = a[e + 148 >> 2];
                            a[e + 152 >> 2] = 1
                        }
                        return
                    }

                    function VV(e) {
                        e = e | 0;
                        if (!e) sE();
                        else LV(e + 72 | 0);
                        return
                    }

                    function XV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[e + 72 >> 2] = a[t >> 2];
                                    a[e + 76 >> 2] = a[t + 4 >> 2];
                                    a[e + 80 >> 2] = a[t + 8 >> 2];
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function jV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[e + 108 >> 2] = a[t >> 2];
                                    a[e + 112 >> 2] = a[t + 4 >> 2];
                                    a[e + 116 >> 2] = a[t + 8 >> 2];
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function GV(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0.0,
                            n = 0.0,
                            a = 0.0,
                            s = 0.0,
                            o = 0.0,
                            u = 0.0,
                            l = 0.0,
                            f = 0.0;
                        do {
                            if (e) {
                                if (!t) {
                                    sE();
                                    break
                                }
                                if (!i) {
                                    sE();
                                    break
                                }
                                l = +h[t >> 2];
                                f = +h[t + 4 >> 2];
                                a = +h[t + 8 >> 2];
                                s = +C(+(l * l + f * f + a * a));
                                o = +h[i >> 2];
                                u = +h[i + 4 >> 2];
                                r = +h[i + 8 >> 2];
                                n = +C(+(o * o + u * u + r * r));
                                if (+M(+s) < 1.1754943508222875e-38) {
                                    sE();
                                    break
                                }
                                if (+M(+n) < 1.1754943508222875e-38) {
                                    sE();
                                    break
                                } else {
                                    h[e + 84 >> 2] = l / s;
                                    h[e + 88 >> 2] = f / s;
                                    h[e + 92 >> 2] = a / s;
                                    h[e + 96 >> 2] = o / n;
                                    h[e + 100 >> 2] = u / n;
                                    h[e + 104 >> 2] = r / n;
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function $V(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else h[e + 120 >> 2] = t;
                        return
                    }

                    function HV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (e)
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    a[e + 124 >> 2] = a[t >> 2];
                                    a[e + 128 >> 2] = a[t + 4 >> 2];
                                    a[e + 132 >> 2] = a[t + 8 >> 2];
                                    break
                                }
                            else sE()
                        } while (0);
                        return
                    }

                    function WV(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else h[e + 136 >> 2] = t;
                        return
                    }

                    function YV(e, t) {
                        e = e | 0;
                        t = +t;
                        if (!e) sE();
                        else h[e + 140 >> 2] = t;
                        return
                    }

                    function zV() {
                        dI(7428, 0);
                        a[1842] = YE(10790) | 0;
                        JE(7332);
                        return
                    }

                    function qV() {
                        a[1842] = 0;
                        return
                    }

                    function JV(e) {
                        e = e | 0;
                        if (!e) e = 3816;
                        else e = (bI(e) | 0) + 3817 | 0;
                        return e | 0
                    }

                    function QV(e, t, i, r, n, a) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        a = a | 0;
                        return ZV(e, t, i, r, n, a) | 0
                    }

                    function ZV(e, t, i, s, o, u) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        s = s | 0;
                        o = o | 0;
                        u = u | 0;
                        var h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = p;
                        p = p + 16 | 0;
                        l = c + 12 | 0;
                        f = c;
                        do {
                            if ((e | 0) == 0 | (t | 0) < 1) {
                                sE();
                                o = 0
                            } else {
                                if ((((r[e >> 0] | 0) == 64 ? (r[e + 1 >> 0] | 0) == 85 : 0) ? (r[e + 2 >> 0] | 0) == 84 : 0) ? (r[e + 3 >> 0] | 0) == 70 : 0) {
                                    if (!(KV(e, t) | 0)) {
                                        sE();
                                        o = 0;
                                        break
                                    }
                                    h = JV(s) | 0;
                                    if ((h | 0) < 0) {
                                        o = 0;
                                        break
                                    }
                                    o = cV(o, u, h, l) | 0;
                                    if (!o) {
                                        sE();
                                        o = 0;
                                        break
                                    }
                                    FS(o, h, f);
                                    o = BS(f, 312, 8) | 0;
                                    a[o + 16 >> 2] = a[l >> 2];
                                    h = Rv(BS(f, 3488, 1) | 0) | 0;
                                    u = o + 8 | 0;
                                    a[u >> 2] = h;
                                    MU(h, e, t);
                                    h = a[u >> 2] | 0;
                                    if (a[h + 72 >> 2] | 0 ? a[h + 68 >> 2] | 0 : 0) {
                                        a[o + 12 >> 2] = e;
                                        a[o + 20 >> 2] = t;
                                        if (((s | 0) != 0 & (zU(h) | 0) != 0 ? r[s >> 0] | 0 : 0) ? (t = (bI(s) | 0) + 1 | 0, f = BS(f, t, 1) | 0, mS(f, t, s), (OU(a[u >> 2] | 0, i, f) | 0) == 0) : 0) {
                                            NE();
                                            wm(o);
                                            o = 0;
                                            break
                                        }
                                        dI(o + 36 | 0, 0);
                                        n[o + 302 >> 1] = 0;
                                        Rm(o) | 0;
                                        eX(o);
                                        break
                                    }
                                    sE();
                                    o = 0;
                                    break
                                }
                                sE();
                                o = 0
                            }
                        } while (0);
                        p = c;
                        return o | 0
                    }

                    function KV(e, t) {
                        e = e | 0;
                        t = t | 0;
                        return iX(e, t) | 0
                    }

                    function eX(e) {
                        e = e | 0;
                        tX(e);
                        return
                    }

                    function tX(e) {
                        e = e | 0;
                        a[1864] = (a[1864] | 0) + 1;
                        zE(e);
                        a[e >> 2] = e;
                        eS(7332, e);
                        a[e + 24 >> 2] = 1;
                        return
                    }

                    function iX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = e + t | 0;
                        t = a[1833] | 0;
                        ZE(t) | 0;
                        while (1) {
                            if (!t) {
                                e = 1;
                                break
                            }
                            n = a[t >> 2] | 0;
                            r = a[n + 12 >> 2] | 0;
                            if (r >>> 0 < i >>> 0 ? ((a[n + 20 >> 2] | 0) + r | 0) >>> 0 > e >>> 0 : 0) {
                                e = 0;
                                break
                            }
                            t = a[t + 4 >> 2] | 0
                        }
                        return e | 0
                    }

                    function rX(e, t, i, r, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        s = s | 0;
                        var o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 16 | 0;
                        o = h + 12 | 0;
                        u = h;
                        do {
                            if ((e | 0) == 0 | (t | 0) < 1) {
                                sE();
                                r = 0
                            } else {
                                r = cV(r, s, 3816, o) | 0;
                                if (!r) {
                                    sE();
                                    r = 0;
                                    break
                                }
                                FS(r, 3816, u);
                                r = BS(u, 312, 8) | 0;
                                a[r + 16 >> 2] = a[o >> 2];
                                u = Rv(BS(u, 3488, 1) | 0) | 0;
                                s = r + 8 | 0;
                                a[s >> 2] = u;
                                MU(u, e, t);
                                a[r + 12 >> 2] = e;
                                a[r + 20 >> 2] = t;
                                if ((i | 0) != 0 & (zU(a[s >> 2] | 0) | 0) != 0 ? (YU(a[s >> 2] | 0, i) | 0) == 0 : 0) {
                                    NE();
                                    wm(r);
                                    r = 0;
                                    break
                                }
                                n[r + 302 >> 1] = 0;
                                Rm(r) | 0;
                                eX(r)
                            }
                        } while (0);
                        p = h;
                        return r | 0
                    }

                    function nX() {
                        var e = 0;
                        while (1) {
                            e = aX() | 0;
                            if (!e) break;
                            wm(e)
                        }
                        return
                    }

                    function aX() {
                        var e = 0;
                        e = a[1833] | 0;
                        if (!(ZE(e) | 0)) e = 0;
                        else {
                            e = a[e >> 2] | 0;
                            Am(e)
                        }
                        return e | 0
                    }

                    function sX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((t | 0) < 0) e = 0;
                        else {
                            if (!e) e = bp(t) | 0;
                            e = Ep(e, t) | 0
                        }
                        return e | 0
                    }

                    function oX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!t) e = 0;
                        else {
                            if (!e) e = gp(t) | 0;
                            e = xp(e, t) | 0
                        }
                        return e | 0
                    }

                    function uX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (t >>> 0 > 65535) e = 0;
                        else {
                            if (!e) e = hX(t) | 0;
                            e = lX(e, t) | 0
                        }
                        return e | 0
                    }

                    function hX(e) {
                        e = e | 0;
                        return fX(e) | 0
                    }

                    function lX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) e = 0;
                        else e = ((CU(a[e + 8 >> 2] | 0) | 0) & 65535 | 0) > (t | 0) & 1;
                        return e | 0
                    }

                    function fX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = a[1833] | 0;
                        ZE(i) | 0;
                        while (1) {
                            if (!i) {
                                t = 0;
                                break
                            }
                            t = a[i >> 2] | 0;
                            if (lX(t, e) | 0) break;
                            i = a[i + 4 >> 2] | 0
                        }
                        return t | 0
                    }

                    function cX() {
                        var e = 0;
                        e = a[1833] | 0;
                        if (!(ZE(e) | 0)) e = 0;
                        else e = a[e >> 2] | 0;
                        return e | 0
                    }

                    function dX(e) {
                        e = e | 0;
                        var t = 0;
                        if (!e) {
                            e = cX() | 0;
                            if (!e) {
                                sE();
                                e = -1
                            } else t = 4
                        } else t = 4;
                        if ((t | 0) == 4) e = (CU(a[e + 8 >> 2] | 0) | 0) & 65535;
                        return e | 0
                    }

                    function pX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if (t >>> 0 > 65535) {
                                sE();
                                e = 0
                            } else {
                                if (!e) {
                                    e = hX(t) | 0;
                                    if (!e) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                }
                                e = Gp(a[e + 8 >> 2] | 0, t & 65535) | 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function vX(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        do {
                            if (t) {
                                if (!i) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                if (!e) {
                                    e = gp(t) | 0;
                                    if (!e) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                }
                                e = e + 8 | 0;
                                if (!(Mc(a[e >> 2] | 0, t, r) | 0)) e = 0;
                                else e = qU(a[e >> 2] | 0, n[r >> 1] | 0, i) | 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = s;
                        return e | 0
                    }

                    function mX(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        r = s;
                        do {
                            if (i) {
                                if (!e) {
                                    e = bp(t) | 0;
                                    if (!e) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                }
                                e = e + 8 | 0;
                                if (!(Ic(a[e >> 2] | 0, t, r) | 0)) e = 0;
                                else e = qU(a[e >> 2] | 0, n[r >> 1] | 0, i) | 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = s;
                        return e | 0
                    }

                    function _X(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        do {
                            if (!i) {
                                sE();
                                e = 0
                            } else {
                                if (!e) {
                                    e = hX(t) | 0;
                                    if (!e) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                }
                                e = qU(a[e + 8 >> 2] | 0, t & 65535, i) | 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function bX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        do {
                            if (t) {
                                if (!e) {
                                    e = gp(t) | 0;
                                    if (!e) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                }
                                e = e + 8 | 0;
                                if (!(Mc(a[e >> 2] | 0, t, i) | 0)) e = 0;
                                else e = ZU(a[e >> 2] | 0, n[i >> 1] | 0) | 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = r;
                        return e | 0
                    }

                    function gX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        if (!e) {
                            e = bp(t) | 0;
                            if (!e) {
                                sE();
                                e = 0
                            } else r = 4
                        } else r = 4;
                        if ((r | 0) == 4) {
                            e = e + 8 | 0;
                            if (!(Ic(a[e >> 2] | 0, t, i) | 0)) e = 0;
                            else e = ZU(a[e >> 2] | 0, n[i >> 1] | 0) | 0
                        }
                        p = s;
                        return e | 0
                    }

                    function yX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        r = p;
                        p = p + 16 | 0;
                        i = r;
                        t = oi(80) | 0;
                        if (!t) {
                            sE();
                            t = 0
                        } else {
                            aE(t, 80);
                            if (!e) a[i >> 2] = 0;
                            else i = e;
                            a[t + 4 >> 2] = a[i >> 2]
                        }
                        p = r;
                        return t | 0
                    }

                    function AX(e) {
                        e = e | 0;
                        var t = 0;
                        if (!e) sE();
                        else {
                            t = a[e + 72 >> 2] | 0;
                            if (t | 0) wm(t);
                            wX(e);
                            xX(e);
                            t = a[e + 32 >> 2] | 0;
                            if (t | 0) si(t);
                            t = a[e + 64 >> 2] | 0;
                            if (t | 0) si(t);
                            si(e)
                        }
                        return
                    }

                    function wX(e) {
                        e = e | 0;
                        kX(e + 8 | 0);
                        return
                    }

                    function xX(e) {
                        e = e | 0;
                        var t = 0;
                        if (!(a[e + 4 >> 2] | 0)) {
                            e = e + 76 | 0;
                            t = a[e >> 2] | 0;
                            if (t | 0) {
                                Lv(t);
                                a[e >> 2] = 0
                            }
                        } else kX(e + 40 | 0);
                        return
                    }

                    function kX(e) {
                        e = e | 0;
                        if (a[e >> 2] | 0) {
                            if (!(TX(e) | 0)) {
                                NI(a[e >> 2] | 0);
                                TX(e) | 0
                            }
                            FI(a[e >> 2] | 0, 0, 0, 0, 0, 0, 0, 0) | 0;
                            TX(e) | 0;
                            SI(a[e >> 2] | 0) | 0;
                            a[e >> 2] = 0
                        }
                        return
                    }

                    function TX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        i = p;
                        p = p + 16 | 0;
                        r = i;
                        LI(a[e >> 2] | 0, r) | 0;
                        switch (a[r >> 2] | 0) {
                            case 1:
                                {
                                    t = 3;
                                    break
                                }
                            case 2:
                                {
                                    e = 1;
                                    break
                                }
                            default:
                                {
                                    a[e + 20 >> 2] = 1;t = 3
                                }
                        }
                        if ((t | 0) == 3) e = 0;
                        p = i;
                        return e | 0
                    }

                    function EX(e, t, i, n, s) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        s = s | 0;
                        var o = 0;
                        do {
                            if ((i | 0) != 0 ? (r[i >> 0] | 0) != 0 : 0) {
                                if ((a[e >> 2] | 0) == 1) {
                                    sE();
                                    e = 0;
                                    break
                                }
                                if (!(a[e + 72 >> 2] | 0)) {
                                    a[e >> 2] = 1;
                                    SX(e, i);
                                    PX(e, n, s);
                                    e = 1;
                                    break
                                } else {
                                    sE();
                                    e = 0;
                                    break
                                }
                            } else o = 3
                        } while (0);
                        if ((o | 0) == 3) {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function SX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[e + 24 >> 2] = 3816;
                        MX(e + 8 | 0, t);
                        return
                    }

                    function PX(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        do {
                            if (i | 0 ? r[i >> 0] | 0 : 0)
                                if (!(a[e + 4 >> 2] | 0)) {
                                    a[e + 76 >> 2] = LU(t, i, 0, 0) | 0;
                                    break
                                } else {
                                    a[e + 56 >> 2] = IX() | 0;
                                    MX(e + 40 | 0, i);
                                    break
                                }
                        } while (0);
                        return
                    }

                    function IX() {
                        return jU(0) | 0
                    }

                    function MX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        EI(e) | 0;
                        if (II(a[e >> 2] | 0, 0, t) | 0) a[e + 20 >> 2] = 1;
                        if (FI(a[e >> 2] | 0, 0, 0, 0, 0, 0, 0, 0) | 0) a[e + 20 >> 2] = 1;
                        return
                    }

                    function CX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        do {
                            if (e) {
                                if ((a[e >> 2] | 0) == 1) {
                                    r = (OX(e) | 0) & 1;
                                    n = e + 72 | 0;
                                    if (r & (RX(e) | 0)) {
                                        t = a[n >> 2] | 0;
                                        if (!t) {
                                            t = e + 76 | 0;
                                            i = e + 32 | 0;
                                            r = rX(a[e + 12 >> 2] | 0, a[e + 16 >> 2] | 0, a[t >> 2] | 0, a[i >> 2] | 0, a[e + 24 >> 2] | 0) | 0;
                                            a[n >> 2] = r;
                                            if (!r) {
                                                a[e >> 2] = 3;
                                                break
                                            }
                                            a[r + 16 >> 2] = a[i >> 2];
                                            a[i >> 2] = 0;
                                            if (a[t >> 2] | 0) {
                                                a[(a[r + 8 >> 2] | 0) + 3376 >> 2] = 0;
                                                a[t >> 2] = 0
                                            }
                                            t = Rm(r) | 0;
                                            if (!t) i = 12;
                                            else {
                                                DX(t);
                                                i = 12
                                            }
                                        }
                                    } else i = 12;
                                    if ((i | 0) == 12) {
                                        t = a[n >> 2] | 0;
                                        if (!t) break
                                    }
                                    t = Rm(t) | 0;
                                    if (!t) {
                                        a[e >> 2] = 2;
                                        break
                                    }
                                    n = (FU(t) | 0) & 65535;
                                    if ((FX(t) | 0) >= (n | 0)) {
                                        if (!(BX(t) | 0)) t = 2;
                                        else {
                                            sE();
                                            t = 3
                                        }
                                        a[e >> 2] = t
                                    }
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function OX(e) {
                        e = e | 0;
                        var t = 0;
                        t = jX(e + 8 | 0) | 0;
                        if (a[e + 28 >> 2] | 0) {
                            sE();
                            a[e >> 2] = 3
                        }
                        return t | 0
                    }

                    function RX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        e: do {
                            if (!(a[e + 4 >> 2] | 0)) {
                                t = e + 76 | 0;
                                e = a[t >> 2] | 0;
                                if (!e) t = 1;
                                else switch (UU(e) | 0) {
                                    case 1:
                                        {
                                            t = 0;
                                            break e
                                        }
                                    case 3:
                                        {
                                            NE();Lv(a[t >> 2] | 0);a[t >> 2] = 0;t = 1;
                                            break e
                                        }
                                    default:
                                        {
                                            t = 1;
                                            break e
                                        }
                                }
                            } else {
                                t = jX(e + 40 | 0) | 0;
                                t = a[e + 60 >> 2] | 0 ? 1 : t;
                                if (t) {
                                    i = a[e + 44 >> 2] | 0;
                                    if ((i | 0) != 0 ? (r = e + 76 | 0, (a[r >> 2] | 0) == 0) : 0) {
                                        n = e + 64 | 0;
                                        i = SU(i, a[e + 48 >> 2] | 0, a[n >> 2] | 0, a[e + 56 >> 2] | 0) | 0;
                                        a[r >> 2] = i;
                                        a[i + 24 >> 2] = 1;
                                        a[n >> 2] = 0
                                    }
                                } else t = 0
                            }
                        } while (0);
                        return t | 0
                    }

                    function DX(e) {
                        e = e | 0;
                        var t = 0;
                        do {
                            if (e) {
                                if ((gn(e) | 0) != 1) {
                                    sE();
                                    break
                                }
                                if ((KG[a[(a[e >> 2] | 0) + 4 >> 2] & 63](e) | 0) != 2 ? (t = NX(e) | 0, t | 0) : 0) {
                                    a[e >> 2] = 328;
                                    e = e + 4 | 0;
                                    a[t + 12 >> 2] = a[e >> 2];
                                    a[e >> 2] = t
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function FX(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if ((KG[a[(a[e >> 2] | 0) + 4 >> 2] & 63](e) | 0) == 2) {
                                    e = a[(a[e + 4 >> 2] | 0) + 16 >> 2] | 0;
                                    break
                                } else {
                                    e = (FU(e) | 0) & 65535;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function BX(e) {
                        e = e | 0;
                        do {
                            if (e)
                                if ((KG[a[(a[e >> 2] | 0) + 4 >> 2] & 63](e) | 0) == 2) {
                                    e = a[(a[e + 4 >> 2] | 0) + 20 >> 2] | 0;
                                    break
                                } else {
                                    e = (FU(e) | 0) & 65535;
                                    break
                                }
                            else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function NX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0;
                        y = p;
                        p = p + 80 | 0;
                        s = y + 72 | 0;
                        m = y + 68 | 0;
                        _ = y;
                        g = FU(e) | 0;
                        b = g & 65535;
                        e: do {
                            if (g << 16 >> 16) {
                                t = LX(b) | 0;
                                if (!t) t = 0;
                                else {
                                    g = t + 8 | 0;
                                    o = e + 32 | 0;
                                    u = _ + 8 | 0;
                                    h = _ + 12 | 0;
                                    l = _ + 16 | 0;
                                    f = _ + 36 | 0;
                                    c = _ + 40 | 0;
                                    n = 0;
                                    while (1) {
                                        if ((n | 0) == (b | 0)) break e;
                                        d = UX(e, n & 65535) | 0;
                                        VX(e, d, s, m);
                                        v = a[g >> 2] | 0;
                                        i = a[o >> 2] | 0;
                                        i = i | 0 ? i + 264 | 0 : 0;
                                        if ((zP(i, a[s >> 2] | 0, a[m >> 2] | 0) | 0) == 1) YP(i, a[s >> 2] | 0, a[m >> 2] | 0);
                                        i = _;
                                        r = i + 68 | 0;
                                        do {
                                            a[i >> 2] = 0;
                                            i = i + 4 | 0
                                        } while ((i | 0) < (r | 0));
                                        RP(a[s >> 2] | 0, a[m >> 2] | 0, _);
                                        a[v + (n * 84 | 0) + 76 >> 2] = 0;
                                        r = Ne(a[t >> 2] | 0, a[s >> 2] | 0, a[m >> 2] | 0, a[u >> 2] | 0, a[h >> 2] | 0, a[l >> 2] | 0, a[f >> 2] | 0, a[c >> 2] | 0, 28, t | 0) | 0;
                                        a[v + (n * 84 | 0) >> 2] = a[t >> 2];
                                        a[v + (n * 84 | 0) + 4 >> 2] = r;
                                        a[v + (n * 84 | 0) + 8 >> 2] = 9;
                                        a[v + (n * 84 | 0) + 80 >> 2] = d;
                                        n = n + 1 | 0
                                    }
                                }
                            } else {
                                NE();
                                t = 0
                            }
                        } while (0);
                        p = y;
                        return t | 0
                    }

                    function LX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        t = oi(24) | 0;
                        do {
                            if (t) {
                                aE(t, 24);
                                r = be(e | 0) | 0;
                                a[t >> 2] = r;
                                if ((r | 0) < 0) {
                                    sE();
                                    si(t);
                                    t = 0;
                                    break
                                }
                                i = e * 84 | 0;
                                r = oi(i) | 0;
                                a[t + 8 >> 2] = r;
                                if (!r) {
                                    sE();
                                    si(t);
                                    t = 0;
                                    break
                                } else {
                                    aE(r, i);
                                    a[t + 4 >> 2] = e;
                                    break
                                }
                            } else {
                                sE();
                                t = 0
                            }
                        } while (0);
                        return t | 0
                    }

                    function UX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else e = e$[a[(a[e >> 2] | 0) + 32 >> 2] & 31](e, t) | 0;
                        return e | 0
                    }

                    function VX(e, t, i, r) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        if (!((ZG[a[a[e >> 2] >> 2] & 7]() | 0) == 1 ? (wn(e, t, i, r) | 0) != 0 : 0)) sE();
                        return
                    }

                    function XX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        i = e + 16 | 0;
                        a[i >> 2] = (a[i >> 2] | 0) + 1;
                        if (!t) a[e + 20 >> 2] = 1;
                        return
                    }

                    function jX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0;
                        do {
                            if (a[e >> 2] | 0)
                                if (TX(e) | 0) {
                                    t = e + 24 | 0;
                                    if (a[t >> 2] | 0) {
                                        kX(e);
                                        e = 1;
                                        break
                                    }
                                    i = e + 8 | 0;
                                    DI(a[e >> 2] | 0, i) | 0;
                                    NI(a[e >> 2] | 0);
                                    r = e + 16 | 0;
                                    n = oi((a[r >> 2] | 0) + (a[i >> 2] | 0) | 0) | 0;
                                    a[t >> 2] = n;
                                    r = n + (a[r >> 2] | 0) | 0;
                                    a[e + 4 >> 2] = r;
                                    t = i;
                                    i = a[t >> 2] | 0;
                                    t = a[t + 4 >> 2] | 0;
                                    if (FI(a[e >> 2] | 0, 0, 0, i, t, r, i, t) | 0) {
                                        a[e + 20 >> 2] = 1;
                                        e = 0
                                    } else e = 0
                                } else e = 0;
                            else e = 1
                        } while (0);
                        return e | 0
                    }

                    function GX(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 3
                        } else {
                            CX(e);
                            e = a[e >> 2] | 0
                        }
                        return e | 0
                    }

                    function $X(e) {
                        e = e | 0;
                        var t = 0;
                        if (e)
                            if ((a[e >> 2] | 0) == 2) {
                                t = e + 72 | 0;
                                e = a[t >> 2] | 0;
                                a[t >> 2] = 0
                            } else e = 0;
                        else {
                            sE();
                            e = 0
                        }
                        return e | 0
                    }

                    function HX(e) {
                        e = e | 0;
                        var t = 0.0,
                            i = 0;
                        if (e) {
                            e = Rm(e) | 0;
                            if (!e) t = 1.0;
                            else {
                                i = FU(e) | 0;
                                e = FX(e) | 0;
                                return +((e | 0) == (i & 65535 | 0) ? 1.0 : +(e | 0) / +(i & 65535))
                            }
                        } else t = 0.0;
                        return +t
                    }

                    function WX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        if ((e | 0) != 0 & (t | 0) != 0) {
                            e = YX(e, t) | 0;
                            if ((e | 0) == -1) e = -1;
                            else i = 3
                        } else {
                            e = 0;
                            i = 3
                        }
                        return e | 0
                    }

                    function YX(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0;
                        r = p;
                        p = p + 64 | 0;
                        i = r;
                        if (!(zX(e, t, i) | 0)) {
                            sE();
                            e = -1
                        } else {
                            e = a[i + 20 >> 2] | 0;
                            e = (e << 5 | 8) + 2632 + ((a[i + 28 >> 2] | 0) * 453 | 0) + (G((a[i + 24 >> 2] << 2) + 720 | 0, e) | 0) | 0
                        }
                        p = r;
                        return e | 0
                    }

                    function zX(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0;
                        C = p;
                        p = p + 2832 | 0;
                        _ = C + 280 | 0;
                        f = C + 8 | 0;
                        I = C;
                        if ((Oa(_, e, t) | 0) != 0 ? (a[_ + 68 >> 2] | 0) != 0 : 0) {
                            b = a[_ + 72 >> 2] | 0;
                            g = a[_ + 64 >> 2] | 0;
                            o = _ + 60 | 0;
                            y = a[o >> 2] | 0;
                            A = a[_ + 76 >> 2] | 0;
                            u = _ + 2504 | 0;
                            m = r[u >> 0] | 0;
                            h = _ + 540 | 0;
                            w = m << 24 >> 24 ? a[_ + 588 >> 2] | 0 : 0;
                            x = a[_ + 1368 >> 2] & 65535;
                            k = s[_ + 412 >> 0] | 0;
                            T = a[_ + 1580 >> 2] & 65535;
                            E = a[_ + 972 >> 2] | 0;
                            S = a[_ + 1036 >> 2] | 0;
                            P = a[_ + 1816 >> 2] | 0;
                            if (m << 24 >> 24)
                                if (y >>> 0 > 17367040) {
                                    l = f + 262 | 0;
                                    e = 1;
                                    t = 0;
                                    while (1) {
                                        if ((t | 0) >= (w | 0)) break;
                                        Ps(h, t & 65535, f);
                                        m = s[l >> 0] | 0;
                                        e = (e & 65535) >>> 0 < m >>> 0 ? m : e;
                                        t = t + 1 | 0
                                    }
                                    if (r[u >> 0] | 0)
                                        if ((a[o >> 2] | 0) >>> 0 > 17367040) {
                                            Ss(a[_ + 2172 >> 2] | 0, 0, f);
                                            v = e;
                                            m = (a[_ + 2220 >> 2] | 0) + (((r[a[f >> 2] >> 0] | 0) == 0) << 31 >> 31) | 0
                                        } else {
                                            v = e;
                                            m = 8
                                        }
                                    else {
                                        v = e;
                                        m = 0
                                    }
                                } else {
                                    v = 8;
                                    m = 8
                                }
                            else {
                                v = 0;
                                m = 0
                            }
                            d = _ + 2536 | 0;
                            e = a[d >> 2] | 0;
                            if (!e) {
                                h = a[_ + 480 >> 2] | 0;
                                Ts(a[h + 8 >> 2] | 0, a[h + 16 >> 2] | 0, n[a[h + 36 >> 2] >> 1] | 0, f);
                                h = (a[f >> 2] | 0) + 3 & -4;
                                e = h;
                                l = a[_ + 464 >> 2] | 0;
                                a[e >> 2] = l;
                                f = e + 4 | 0;
                                a[f >> 2] = h + 8;
                                c = I + 4 | 0;
                                o = _ + 416 | 0;
                                t = 0;
                                while (1) {
                                    u = t & 65535;
                                    if (l >>> 0 <= u >>> 0) break;
                                    Es(a[o >> 2] | 0, t, I);
                                    a[(a[f >> 2] | 0) + (u << 2) >> 2] = s[c >> 0];
                                    t = t + 1 << 16 >> 16
                                }
                                a[d >> 2] = e;
                                if (!h) e = 0;
                                else M = 17
                            } else M = 17;
                            if ((M | 0) == 17) e = a[e >> 2] | 0;
                            a[i >> 2] = b;
                            a[i + 4 >> 2] = g;
                            a[i + 8 >> 2] = y;
                            a[i + 12 >> 2] = A;
                            a[i + 16 >> 2] = w;
                            a[i + 20 >> 2] = x;
                            a[i + 24 >> 2] = k;
                            a[i + 28 >> 2] = T;
                            a[i + 32 >> 2] = E;
                            a[i + 36 >> 2] = S;
                            a[i + 40 >> 2] = P;
                            a[i + 44 >> 2] = v;
                            a[i + 48 >> 2] = m;
                            a[i + 52 >> 2] = e;
                            e = 1
                        } else e = 0;
                        p = C;
                        return e | 0
                    }

                    function qX(e, t, i, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        h = p;
                        p = p + 64 | 0;
                        u = h;
                        do {
                            if ((e | 0) == 0 | (t | 0) < 4) sE();
                            else {
                                if (!(Da() | 0)) {
                                    sE();
                                    break
                                }
                                o = rf(0) | 0;
                                if ((o | 0) == 1 | (a[2103] | 0) == 1) {
                                    a[1721] = 1;
                                    JX()
                                }
                                QX(68);
                                if ((((r[e >> 0] | 0) == 64 ? (r[e + 1 >> 0] | 0) == 85 : 0) ? (r[e + 2 >> 0] | 0) == 84 : 0) ? (r[e + 3 >> 0] | 0) == 70 : 0) {
                                    if (!(zX(e, t, u) | 0)) {
                                        sE();
                                        break
                                    }
                                    if ((a[549] | 0) == -1) a[549] = a[u + 48 >> 2];
                                    s = a[u + 24 >> 2] | 0;
                                    ZX(s);
                                    o = (i | 0) == 0;
                                    if (o & (n | 0) == 0) {
                                        a[2104] = 1;
                                        if (!(KX(u, 0, 0) | 0)) {
                                            sE();
                                            JX();
                                            break
                                        }
                                    } else {
                                        if (o) {
                                            sE();
                                            break
                                        }
                                        o = a[u + 20 >> 2] | 0;
                                        s = (G(o, (s << 2) + 720 | 0) | 0) + 2632 + (o << 5 | 8) + ((a[u + 28 >> 2] | 0) * 453 | 0) | 0;
                                        if (!(KX(u, i, s) | 0)) {
                                            sE();
                                            JX();
                                            break
                                        }
                                        if (s >>> 0 > n >>> 0) {
                                            sE();
                                            break
                                        }
                                    }
                                    ej(e, t) | 0;
                                    a[1721] = 1;
                                    break
                                }
                                sE()
                            }
                        } while (0);
                        p = h;
                        return
                    }

                    function JX() {
                        var e = 0;
                        e = (Da() | 0) == 0;
                        if (!(e | (a[1721] | 0) == 0)) {
                            QX(59);
                            Dj();
                            eo();
                            mm();
                            Fj();
                            wj(0, 0) | 0;
                            if (a[2105] | 0) {
                                Ia();
                                a[2105] = 0
                            }
                            Bj();
                            so();
                            Uv(a[2108] | 0);
                            a[2108] = 0;
                            a[2104] = 0;
                            a[1721] = 0;
                            a[2109] = 0;
                            a[2110] = 0;
                            ij()
                        }
                        return
                    }

                    function QX(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        eo();
                        t = 0;
                        while (1) {
                            if ((t | 0) == 2) break;
                            i = a[a[7432 + (t << 2) >> 2] >> 2] | 0;
                            oS(i) | 0;
                            while (1) {
                                if (!i) break;
                                Ij(a[i >> 2] | 0, e);
                                i = a[i + 4 >> 2] | 0
                            }
                            t = t + 1 | 0
                        }
                        so();
                        return
                    }

                    function ZX(e) {
                        e = e | 0;
                        a[93] = e;
                        return
                    }

                    function KX(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        do {
                            if ((a[2103] | 0) != 1) {
                                s = e + 20 | 0;
                                n = a[s >> 2] | 0;
                                o = e + 24 | 0;
                                r = e + 28 | 0;
                                n = (n << 5 | 8) + 2632 + ((a[r >> 2] | 0) * 453 | 0) + (G((a[o >> 2] << 2) + 720 | 0, n) | 0) | 0;
                                if ((t | 0) == 0 & (i | 0) == 0) {
                                    i = oi(n) | 0;
                                    t = i;
                                    e = n
                                } else {
                                    e = i;
                                    i = 0
                                }
                                a[2107] = i;
                                if (!((e | 0) < (n | 0) | (t | 0) == 0)) {
                                    Sa(t);
                                    e = a[s >> 2] | 0;
                                    s = a[r >> 2] | 0;
                                    Sj(e, e, s, t + 2552 | 0, (e << 5 | 8) + 80 + (s * 453 | 0) + (G((a[o >> 2] << 2) + 720 | 0, e) | 0) | 0);
                                    a[2103] = 1;
                                    e = 1;
                                    break
                                }
                                sE();
                                e = a[2107] | 0;
                                if (!e) e = 0;
                                else {
                                    si(e);
                                    a[2107] = 0;
                                    e = 0
                                }
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function ej(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0;
                        us(e, t);
                        a[2105] = 1;
                        if (tj() | 0) {
                            ij();
                            if ((((Da() | 0) == 1 ? (t = (rj() | 0) == 1, t & (a[2104] | 0) == 1) : 0) ? (i = nj() | 0, (i | 0) != 0) : 0) ? (r[i >> 0] | 0) != 0 : 0) {
                                aj(i, 0, 0);
                                e = 1
                            } else e = 1
                        } else {
                            Ia();
                            e = 0
                        }
                        return e | 0
                    }

                    function tj() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = ks() | 0;
                        do {
                            if (t) {
                                eo();
                                t = wj(a[t >> 2] | 0, a[t + 4 >> 2] | 0) | 0;
                                so();
                                if (t) {
                                    if (!(xj(e, e + 4 | 0, e + 8 | 0) | 0)) {
                                        sE();
                                        e = 0;
                                        break
                                    }
                                    if (js(e) | 0) {
                                        eo();
                                        kj(e);
                                        so();
                                        e = 1
                                    } else e = 0
                                } else e = 0
                            } else {
                                sE();
                                e = 0
                            }
                        } while (0);
                        p = i;
                        return e | 0
                    }

                    function ij() {
                        var e = 0,
                            t = 0;
                        eo();
                        e = 0;
                        while (1) {
                            if ((e | 0) == 2) break;
                            t = a[a[7432 + (e << 2) >> 2] >> 2] | 0;
                            oS(t) | 0;
                            while (1) {
                                if (!t) break;
                                pj(a[t >> 2] | 0);
                                t = a[t + 4 >> 2] | 0
                            }
                            e = e + 1 | 0
                        }
                        so();
                        return
                    }

                    function rj() {
                        return XS() | 0
                    }

                    function nj() {
                        return ac() | 0
                    }

                    function aj(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        sj(e, t, i);
                        return
                    }

                    function sj(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0;
                        c = p;
                        p = p + 448 | 0;
                        l = c + 168 | 0;
                        f = c;
                        do {
                            if (e) {
                                if (LF(0) | 0) oj(0);
                                o = uj(e) | 0;
                                if ((o | 0) >= 0) {
                                    if ((t | 0) == 0 & (i | 0) == 0) {
                                        i = oi(o) | 0;
                                        if (!i) {
                                            sE();
                                            break
                                        } else {
                                            t = i;
                                            r = i;
                                            i = o
                                        }
                                    } else r = 0;
                                    eo();
                                    Kr();
                                    do {
                                        if ((i | 0) < (o | 0) | (t | 0) == 0) sE();
                                        else {
                                            u = t + 7 & -8;
                                            h = u;
                                            a[1930] = u;
                                            i = h + 4784 | 0;
                                            aE(h, 4784);
                                            a[u + 160 >> 2] = r;
                                            h = u + 156 | 0;
                                            a[h >> 2] = xf() | 0;
                                            t = Ec() | 0;
                                            o = u + 164 | 0;
                                            if ((t | 0) > 0) {
                                                a[o >> 2] = i;
                                                a[u + 168 >> 2] = t >>> 1;
                                                gS(i, 255, t) | 0
                                            } else {
                                                a[o >> 2] = 2828;
                                                a[u + 168 >> 2] = 8
                                            }
                                            hj(e);
                                            if (!(mf(e, l) | 0)) break;
                                            i = l + 262 | 0;
                                            r = f + 164 | 0;
                                            t = 0;
                                            while (1) {
                                                if ((t | 0) >= (s[i >> 0] | 0 | 0)) break;
                                                if (kf(n[l + 4 + (t << 1) >> 1] | 0, f) | 0) fs(a[o >> 2] | 0, a[f >> 2] | 0, n[r >> 1] | 0);
                                                t = t + 1 | 0
                                            }
                                            i = u + 4 | 0;
                                            mS(i, 64, e);
                                            t = a[h >> 2] | 0;
                                            if (t | 0) lj(i, t);
                                            fj()
                                        }
                                    } while (0);
                                    en();
                                    so()
                                }
                            } else sE()
                        } while (0);
                        p = c;
                        return
                    }

                    function oj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        if (LF(e) | 0) {
                            eo();
                            Kr();
                            i = 7720 + (e << 2) | 0;
                            t = a[i >> 2] | 0;
                            a[i >> 2] = 0;
                            if (!(a[t >> 2] | 0)) e = 0;
                            else {
                                a[t >> 2] = 0;
                                e = 0
                            }
                            while (1) {
                                if ((e | 0) == 64) break;
                                i = t + 176 + (e * 72 | 0) | 0;
                                if (a[i >> 2] | 0) a[i >> 2] = 0;
                                e = e + 1 | 0
                            }
                            dj();
                            fj();
                            en();
                            so();
                            e = a[t + 160 >> 2] | 0;
                            if (e | 0) si(e)
                        }
                        return
                    }

                    function uj(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = -1
                        } else e = (Ec() | 0) + 4792 | 0;
                        return e | 0
                    }

                    function hj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0;
                        w = p;
                        p = p + 1472 | 0;
                        m = w + 1200 | 0;
                        _ = w + 1032 | 0;
                        g = w + 8 | 0;
                        A = w;
                        e: do {
                            if (!(mf(e, m) | 0)) sE();
                            else {
                                c = m + 262 | 0;
                                d = _ + 166 | 0;
                                v = _ + 4 | 0;
                                u = _ + 167 | 0;
                                l = g + 8 | 0;
                                f = g + 4 | 0;
                                r = 0;
                                while (1) {
                                    if ((r | 0) >= (s[c >> 0] | 0 | 0)) break e;
                                    if (!(kf(n[m + 4 + (r << 1) >> 1] | 0, _) | 0)) break e;
                                    else e = 0;
                                    while (1) {
                                        if ((e | 0) >= (s[d >> 0] | 0 | 0)) break;
                                        t = _ + 20 + (e << 1) | 0;
                                        i = Bf(Mf(n[t >> 1] | 0) | 0) | 0;
                                        if ((i | 0) != 0 ? (b = a[i + 4 >> 2] | 0, a[A >> 2] = 0, y = Cf(n[t >> 1] | 0, g, 1024, 0, A) | 0, (y | 0) >= 0) : 0) {
                                            me(r | 0, b | 0);
                                            UL(r, b, g, y >>> 2)
                                        } else NE();
                                        e = e + 1 | 0
                                    }
                                    et(r | 0, + +h[v >> 2]);
                                    e = 0;
                                    while (1) {
                                        if ((e | 0) >= (s[u >> 0] | 0 | 0)) break;
                                        Lf(n[_ + 36 + (e << 1) >> 1] | 0, g);
                                        Ke(r | 0, o[l >> 1] | 0 | 0, + +h[f >> 2]);
                                        e = e + 1 | 0
                                    }
                                    mt(r | 0);
                                    r = r + 1 | 0
                                }
                            }
                        } while (0);
                        p = w;
                        return
                    }

                    function lj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            a = 0;
                        a = p;
                        p = p + 272 | 0;
                        r = a;
                        yM(r | 0, 0, 268) | 0;
                        e: do {
                            if (mf(e, r) | 0 ? n[r + 264 >> 1] | 0 : 0) {
                                i = r + 262 | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) >= (s[i >> 0] | 0)) break e;
                                    cj(n[r + 4 + (e << 1) >> 1] | 0, t);
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        p = a;
                        return
                    }

                    function fj() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (a[1674] | 0)) break;
                            e = a[1673] | 0;
                            e: do {
                                if (((r[e + (i * 588 | 0) + 507 >> 0] | 0 ? (o = a[e + (i * 588 | 0) + 4 >> 2] | 0, o | 0) : 0) ? (s = a[o + 4 >> 2] | 0, s | 0) : 0) ? r[e + (i * 588 | 0) + 74 >> 0] | 0 : 0) {
                                    oB(a[s + 236 >> 2] | 0);
                                    e = 0;
                                    while (1) {
                                        if ((e | 0) == 8) break e;
                                        t = a[1673] | 0;
                                        t = SF(r[t + (i * 588 | 0) + 505 >> 0] | 0, n[t + (i * 588 | 0) + 520 + (e << 1) >> 1] | 0) | 0;
                                        if (t << 16 >> 16 != -1) {
                                            u = a[1673] | 0;
                                            PF(a[(a[(a[u + (i * 588 | 0) + 4 >> 2] | 0) + 4 >> 2] | 0) + 236 >> 2] | 0, t & 65535, +h[u + (i * 588 | 0) + 536 + (e << 2) >> 2])
                                        }
                                        e = e + 1 | 0
                                    }
                                }
                            } while (0);
                            i = i + 1 | 0
                        }
                        return
                    }

                    function cj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            o = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0;
                        v = p;
                        p = p + 704 | 0;
                        f = v + 536 | 0;
                        i = v + 520 | 0;
                        c = v + 8 | 0;
                        d = v;
                        kf(e, f) | 0;
                        a[i >> 2] = a[f + 4 >> 2];
                        a[i + 8 >> 2] = a[f + 12 >> 2];
                        a[i + 12 >> 2] = a[f + 16 >> 2];
                        a[i + 4 >> 2] = a[f + 8 >> 2];
                        gc(e, i, t);
                        i = f + 167 | 0;
                        r = c + 4 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (s[i >> 0] | 0 | 0)) break;
                            l = f + 36 + (e << 1) | 0;
                            Lf(n[l >> 1] | 0, c);
                            xc(n[l >> 1] | 0, +h[r >> 2], t);
                            e = e + 1 | 0
                        }
                        r = f + 166 | 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (s[r >> 0] | 0 | 0)) break;
                            o = n[f + 20 + (i << 1) >> 1] | 0;
                            e = 0;
                            while (1) {
                                u = e & 65535;
                                l = Cf(o, c, 512, u, d) | 0;
                                if ((l | 0) < 1) break;
                                wc(o, c, l, t, e);
                                e = l + u & 65535
                            }
                            i = i + 1 | 0
                        }
                        p = v;
                        return
                    }

                    function dj() {
                        var e = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 8) break;
                            Ue(e | 0);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function pj(e) {
                        e = e | 0;
                        if (!e) sE();
                        else vj(a[e + 192 >> 2] | 0);
                        return
                    }

                    function vj(e) {
                        e = e | 0;
                        mj(e);
                        _j(e);
                        bj(e);
                        gj(e);
                        yj(e);
                        return
                    }

                    function mj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0;
                        s = e + 676 | 0;
                        o = a[s >> 2] | 0;
                        t = 0;
                        r = 0;
                        while (1) {
                            if ((r | 0) >= (o | 0)) break;
                            i = e + (r << 3) | 0;
                            if (!(Aj(n[i >> 1] | 0) | 0)) {
                                h = i;
                                u = a[h + 4 >> 2] | 0;
                                i = e + (t << 3) | 0;
                                a[i >> 2] = a[h >> 2];
                                a[i + 4 >> 2] = u;
                                t = t + 1 | 0
                            }
                            r = r + 1 | 0
                        }
                        a[s >> 2] = t;
                        while (1) {
                            if ((t | 0) >= (o | 0)) break;
                            zD(e + (t << 3) | 0);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function _j(e) {
                        e = e | 0;
                        a[e + 680 >> 2] = 0;
                        return
                    }

                    function bj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 684 | 0;
                        i = a[t >> 2] | 0;
                        a[t >> 2] = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) break;
                            n[e + 608 + (t << 1) >> 1] = -1;
                            t = t + 1 | 0
                        }
                        return
                    }

                    function gj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 688 | 0;
                        i = a[t >> 2] | 0;
                        a[t >> 2] = 0;
                        t = e + 640 | 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) >= (i | 0)) break;
                            n[(a[t >> 2] | 0) + (e << 1) >> 1] = -1;
                            e = e + 1 | 0
                        }
                        return
                    }

                    function yj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = e + 692 | 0;
                        i = a[t >> 2] | 0;
                        a[t >> 2] = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (i | 0)) break;
                            a[e + 644 + (t << 2) >> 2] = -1;
                            t = t + 1 | 0
                        }
                        return
                    }

                    function Aj(e) {
                        e = e | 0;
                        return (e & 65535) > 999 & e << 16 >> 16 != -1 & 1 | 0
                    }

                    function wj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (!(a[2106] | 0)) {
                            sE();
                            e = 0
                        } else e = Ej(e, t) | 0;
                        return e | 0
                    }

                    function xj(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0;
                        r = a[1687] | 0;
                        if (!r) e = 0;
                        else {
                            a[e >> 2] = a[r + 44 >> 2];
                            a[t >> 2] = a[r + 48 >> 2];
                            a[i >> 2] = Fa() | 0;
                            e = 1
                        }
                        return e | 0
                    }

                    function kj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            u = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0,
                            T = 0,
                            E = 0,
                            S = 0,
                            P = 0,
                            I = 0,
                            M = 0,
                            C = 0,
                            O = 0,
                            R = 0,
                            D = 0,
                            F = 0,
                            B = 0,
                            N = 0,
                            L = 0,
                            U = 0,
                            V = 0,
                            X = 0,
                            j = 0;
                        j = p;
                        p = p + 112 | 0;
                        B = j + 88 | 0;
                        N = j + 56 | 0;
                        L = j + 24 | 0;
                        U = j + 8 | 0;
                        V = j;
                        X = e + 8 | 0;
                        l = a[X >> 2] | 0;
                        i = (a[(a[1687] | 0) + 20 >> 2] | 0) + 7 & -8;
                        u = i;
                        t = 0;
                        while (1) {
                            s = a[e >> 2] | 0;
                            if ((t | 0) >= (s | 0)) break;
                            F = u + (t * 28 | 0) | 0;
                            JE(u + (t * 28 | 0) + 8 | 0);
                            zE(F);
                            a[F >> 2] = F;
                            tS(a[1687] | 0, F);
                            a[u + (t * 28 | 0) + 20 >> 2] = 0;
                            h[u + (t * 28 | 0) + 24 >> 2] = 1.5249999705702066e-05;
                            t = t + 1 | 0
                        }
                        f = (s * 28 | 0) + i | 0;
                        s = f;
                        F = e + 4 | 0;
                        c = a[F >> 2] | 0;
                        f = (c << 7) + f | 0;
                        e = f;
                        a[(a[1687] | 0) + 12 >> 2] = e;
                        i = N + 20 | 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) >= (c | 0)) break;
                            Hs(t & 65535, N);
                            D = e + (t * 84 | 0) | 0;
                            zE(D);
                            a[D >> 2] = D;
                            c = o[i >> 1] | 0;
                            tS(u + (c * 28 | 0) + 8 | 0, D);
                            a[e + (t * 84 | 0) + 8 >> 2] = u + (c * 28 | 0);
                            a[e + (t * 84 | 0) + 20 >> 2] = s + (t << 3 << 4);
                            t = t + 1 | 0;
                            c = a[F >> 2] | 0
                        }
                        g = (l << 2) + 480 | 0;
                        a[(a[1687] | 0) + 52 >> 2] = c;
                        y = B + 2 | 0;
                        A = B + 4 | 0;
                        w = B + 12 | 0;
                        x = B + 8 | 0;
                        k = B + 14 | 0;
                        T = N + 12 | 0;
                        E = N + 16 | 0;
                        S = N + 28 | 0;
                        P = N + 4 | 0;
                        I = L + 6 | 0;
                        M = L + 1 | 0;
                        C = L + 4 | 0;
                        O = L + 24 | 0;
                        R = U + 1 | 0;
                        D = e + 12 | 0;
                        m = e + 20 | 0;
                        _ = U + 4 | 0;
                        b = U + 8 | 0;
                        i = (c * 84 | 0) + f | 0;
                        v = 0;
                        t = c;
                        while (1) {
                            if ((v | 0) >= (t | 0)) break;
                            t = v & 65535;
                            Hs(t, N);
                            n[B >> 1] = 0;
                            n[y >> 1] = -1;
                            a[A >> 2] = 0;
                            a[A + 4 >> 2] = 0;
                            n[A + 8 >> 1] = 0;
                            r[A + 10 >> 0] = 0;
                            Hs(t, N);
                            t = cf(8, a[X >> 2] & 255, 4, i, g) | 0;
                            a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] = t;
                            i = i + g | 0;
                            t = a[T >> 2] | 0;
                            if ((t | 0) != -1) {
                                to(t, L);
                                ro(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, L, 0, B, 3, 0, U)
                            }
                            t = a[E >> 2] | 0;
                            if ((t | 0) != -1) {
                                to(t, L);
                                ro(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, L, 0, B, 3, 0, U)
                            }
                            d = a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0;
                            if ((no(+h[d + 244 >> 2], a[d + 284 >> 2] | 0, L, 1) | 0) == 1) {
                                t = a[(a[1687] | 0) + 12 >> 2] | 0;
                                a[t + (v * 84 | 0) + 32 >> 2] = a[L >> 2]
                            } else {
                                t = a[(a[1687] | 0) + 12 >> 2] | 0;
                                h[t + (v * 84 | 0) + 32 >> 2] = 1.0;
                                go(a[t + (v * 84 | 0) + 12 >> 2] | 0, 0, 1.0);
                                t = a[(a[1687] | 0) + 12 >> 2] | 0
                            }
                            if ((FO(a[(a[t + (v * 84 | 0) + 12 >> 2] | 0) + 284 >> 2] | 0, L) | 0) != 1) Io(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, 148, 0);
                            t = a[1687] | 0;
                            s = a[t + 12 >> 2] | 0;
                            n[s + (v * 84 | 0) + 42 >> 1] = n[w >> 1] | 0;
                            a[s + (v * 84 | 0) + 16 >> 2] = a[x >> 2];
                            e = a[S >> 2] | 0;
                            if (e) {
                                c = e >>> 1;
                                t = a[P >> 2] | 0;
                                f = 0;
                                while (1) {
                                    if (c >>> 0 <= (f & 65535) >>> 0) break;
                                    d = t + 2 | 0;
                                    t = wE(t) | 0;
                                    do {
                                        if (Jf(t, L) | 0) {
                                            l = t & 65535;
                                            l = (l & 32768 | 0) == 0 ? (l | 16384) & 65535 : t;
                                            if (!(ep(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, l, 0) | 0)) {
                                                sE();
                                                break
                                            }
                                            t = n[I >> 1] | 0;
                                            if (t << 16 >> 16 == -1) {
                                                if (!(r[M >> 0] | 0)) break;
                                                t = n[C >> 1] | 0;
                                                Hc(V, a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, t);
                                                if ((a[V >> 2] | 0) != 2147483647) break;
                                                go(a[(a[(a[1687] | 0) + 12 >> 2] | 0) + (v * 84 | 0) + 12 >> 2] | 0, t, +h[O >> 2]);
                                                break
                                            }
                                            Gc(0, t, U);
                                            t = r[R >> 0] | 0;
                                            e: do {
                                                if (!(t << 24 >> 24)) $c(a[D >> 2] | 0, l, U);
                                                else {
                                                    u = 0;
                                                    while (1) {
                                                        if (u >>> 0 >= 8) break e;
                                                        s = a[m >> 2] | 0;
                                                        e = s + (u << 4) + 3 | 0;
                                                        if (!(r[e >> 0] | 0)) break;
                                                        else u = u + 1 | 0
                                                    }
                                                    r[s + (u << 4) >> 0] = r[U >> 0] | 0;
                                                    r[s + (u << 4) + 1 >> 0] = t;
                                                    r[e >> 0] = 1;
                                                    a[s + (u << 4) + 4 >> 2] = a[_ >> 2];
                                                    a[s + (u << 4) + 8 >> 2] = a[b >> 2];
                                                    n[s + (u << 4) + 12 >> 1] = l
                                                }
                                            } while (0)
                                        }
                                    } while (0);
                                    t = d;
                                    f = f + 1 << 16 >> 16
                                }
                                t = a[1687] | 0;
                                s = a[t + 12 >> 2] | 0
                            }
                            r[s + (v * 84 | 0) + 28 >> 0] = 1;
                            r[s + (v * 84 | 0) + 29 >> 0] = 0;
                            r[s + (v * 84 | 0) + 30 >> 0] = 0;
                            n[s + (v * 84 | 0) + 36 >> 1] = 0;
                            n[s + (v * 84 | 0) + 38 >> 1] = 0;
                            n[s + (v * 84 | 0) + 40 >> 1] = 0;
                            JE(s + (v * 84 | 0) + 44 | 0);
                            t = t + 12 | 0;
                            JE((a[t >> 2] | 0) + (v * 84 | 0) + 56 | 0);
                            if ((n[B >> 1] | 0) == 0 | (n[y >> 1] | 0) == -1) {
                                t = a[t >> 2] | 0;
                                a[t + (v * 84 | 0) + 68 >> 2] = 0;
                                a[t + (v * 84 | 0) + 72 >> 2] = 0;
                                a[t + (v * 84 | 0) + 76 >> 2] = 0;
                                s = 0
                            } else {
                                c = hc() | 0;
                                d = o[y >> 1] << 1;
                                e = a[1687] | 0;
                                t = a[e + 12 >> 2] | 0;
                                a[t + (v * 84 | 0) + 68 >> 2] = c + (d * 12 | 0);
                                a[t + (v * 84 | 0) + 72 >> 2] = c + ((d | 1) * 12 | 0);
                                t = 0;
                                while (1) {
                                    s = o[B >> 1] | 0;
                                    if ((t | 0) >= (s | 0)) break;
                                    d = lc() | 0;
                                    e = a[1687] | 0;
                                    eS(a[(a[e + 12 >> 2] | 0) + (v * 84 | 0) + 72 >> 2] | 0, d);
                                    t = t + 1 | 0
                                }
                                t = a[e + 12 >> 2] | 0;
                                a[t + (v * 84 | 0) + 76 >> 2] = s;
                                s = (r[k >> 0] | 0) == 1 & 1
                            }
                            a[t + (v * 84 | 0) + 80 >> 2] = s;
                            v = v + 1 | 0;
                            t = a[F >> 2] | 0
                        }
                        Tj(i);
                        p = j;
                        return
                    }

                    function Tj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            s = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0,
                            b = 0,
                            g = 0,
                            y = 0,
                            A = 0,
                            w = 0,
                            x = 0,
                            k = 0;
                        x = p;
                        p = p + 48 | 0;
                        y = x;
                        t = ys() | 0;
                        i = a[1687] | 0;
                        e: do {
                            if (i | 0) {
                                w = t & 65535;
                                if ((a[i + 56 >> 2] | 0) < (w | 0)) {
                                    sE();
                                    break
                                }
                                A = e;
                                t = y + 2 | 0;
                                i = y + 20 | 0;
                                s = y + 24 | 0;
                                u = y + 4 | 0;
                                h = y + 6 | 0;
                                l = y + 8 | 0;
                                f = y + 12 | 0;
                                c = y + 16 | 0;
                                d = y + 13 | 0;
                                v = y + 14 | 0;
                                m = y + 32 | 0;
                                _ = y + 36 | 0;
                                b = y + 40 | 0;
                                g = 0;
                                while (1) {
                                    if ((g | 0) == (w | 0)) break;
                                    k = A + (g * 56 | 0) | 0;
                                    zE(k);
                                    a[k >> 2] = k;
                                    oc(g & 65535, y);
                                    a[A + (g * 56 | 0) + 12 >> 2] = 0;
                                    n[A + (g * 56 | 0) + 20 >> 1] = n[t >> 1] | 0;
                                    r[A + (g * 56 | 0) + 22 >> 0] = a[i >> 2];
                                    r[A + (g * 56 | 0) + 23 >> 0] = a[s >> 2];
                                    n[A + (g * 56 | 0) + 24 >> 1] = n[u >> 1] | 0;
                                    n[A + (g * 56 | 0) + 26 >> 1] = n[h >> 1] | 0;
                                    a[A + (g * 56 | 0) + 8 >> 2] = a[l >> 2];
                                    r[A + (g * 56 | 0) + 28 >> 0] = r[f >> 0] | 0;
                                    a[A + (g * 56 | 0) + 32 >> 2] = a[c >> 2];
                                    a[A + (g * 56 | 0) + 36 >> 2] = -1;
                                    r[A + (g * 56 | 0) + 29 >> 0] = r[d >> 0] | 0;
                                    n[A + (g * 56 | 0) + 30 >> 1] = n[v >> 1] | 0;
                                    a[A + (g * 56 | 0) + 40 >> 2] = a[m >> 2];
                                    a[A + (g * 56 | 0) + 44 >> 2] = a[_ >> 2];
                                    a[A + (g * 56 | 0) + 52 >> 2] = a[b >> 2];
                                    a[A + (g * 56 | 0) + 48 >> 2] = 0;
                                    tS((a[(a[1687] | 0) + 12 >> 2] | 0) + ((o[y >> 1] | 0) * 84 | 0) + 44 | 0, k);
                                    g = g + 1 | 0
                                }
                                t = (w * 56 | 0) + e | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) == (w | 0)) break e;
                                    a[A + (i * 56 | 0) + 16 >> 2] = t;
                                    t = t + 389 | 0;
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        p = x;
                        return
                    }

                    function Ej(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        r = a[1878] | 0;
                        e: do {
                            if ((r | 0) < (e | 0)) {
                                sE();
                                i = 0
                            } else {
                                if ((e | 0) > 0 & (t | 0) == 0) {
                                    sE();
                                    i = 0;
                                    break
                                }
                                n = a[1879] | 0;
                                i = 0;
                                while (1) {
                                    if ((i | 0) >= (e | 0)) break;
                                    a[n + (i << 3) >> 2] = a[t + (i << 2) >> 2];
                                    i = i + 1 | 0
                                }
                                while (1) {
                                    if ((i | 0) >= (r | 0)) {
                                        i = 1;
                                        break e
                                    }
                                    a[n + (i << 3) >> 2] = 0;
                                    i = i + 1 | 0
                                }
                            }
                        } while (0);
                        return i | 0
                    }

                    function Sj(e, t, i, r, n) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        r = r | 0;
                        n = n | 0;
                        var s = 0,
                            o = 0;
                        aE(r, n);
                        QE(7488);
                        o = (Pj(r + 7 & -8, t << 1) | 0) + 7 & -8;
                        s = o;
                        a[1687] = s;
                        JE(s);
                        s = a[1687] | 0;
                        a[s + 20 >> 2] = o + 64;
                        a[s + 24 >> 2] = r;
                        a[s + 40 >> 2] = n;
                        a[s + 44 >> 2] = e;
                        a[s + 48 >> 2] = t;
                        a[s + 56 >> 2] = i;
                        return
                    }

                    function Pj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        r = e;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= (t | 0)) break;
                            n = r + (i << 4) | 0;
                            zE(n);
                            a[n >> 2] = n;
                            tS(7488, n);
                            a[r + (i << 4) + 8 >> 2] = -1;
                            a[r + (i << 4) + 12 >> 2] = 0;
                            i = i + 1 | 0
                        }
                        return (t << 4) + e | 0
                    }

                    function Ij(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        dI(e + 260 | 0, 0);
                        o = e + 104 | 0;
                        Mj(a[o >> 2] | 0);
                        r[e + 176 >> 0] = 0;
                        r_(a[o >> 2] | 0);
                        Cj(e, t);
                        a[e + 196 >> 2] = 0;
                        t = e + 208 | 0;
                        if ((a[t >> 2] | 0 ? (i = e + 220 | 0, n = a[i >> 2] | 0, n | 0) : 0) ? (s = e + 224 | 0, u$[n & 63](e, a[s >> 2] | 0), u$[a[i >> 2] & 63](e, a[s >> 2] | 0), s = a[t >> 2] | 0, (a[s + 168 >> 2] | 0) == 1) : 0) {
                            p_(s);
                            v_(e, 0, 0);
                            m_(e, 0, 0);
                            __(e, 0)
                        }
                        a[e + 16 >> 2] = 0;
                        return
                    }

                    function Mj(e) {
                        e = e | 0;
                        r[e + 58 >> 0] = 0;
                        return
                    }

                    function Cj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0;
                        d = p;
                        p = p + 16 | 0;
                        o = d + 8 | 0;
                        u = d;
                        h = e + 180 | 0;
                        rS(h, o);
                        l = e + 300 | 0;
                        f = u + 4 | 0;
                        c = e + 304 | 0;
                        while (1) {
                            i = a[o >> 2] | 0;
                            if (!i) break;
                            n = a[i >> 2] | 0;
                            Oj(n, t);
                            i = a[l >> 2] | 0;
                            if (i | 0 ? (s = n + 163 | 0, (r[s >> 0] | 0) == 0) : 0) {
                                r[s >> 0] = 1;
                                a[f >> 2] = Co(n) | 0;
                                a[u >> 2] = e;
                                l$[i & 7](a[c >> 2] | 0, 2, u)
                            }
                            l_(n);
                            i = a[l >> 2] | 0;
                            if (i | 0) {
                                a[f >> 2] = Co(n) | 0;
                                a[u >> 2] = e;
                                l$[i & 7](a[c >> 2] | 0, 3, u)
                            }
                            rS(h, o)
                        }
                        p = d;
                        return
                    }

                    function Oj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        Rj(e, t);
                        e = a[e + 48 >> 2] | 0;
                        ZE(e) | 0;
                        while (1) {
                            if (!e) break;
                            Oj(a[e >> 2] | 0, t);
                            e = a[e + 4 >> 2] | 0
                        }
                        return
                    }

                    function Rj(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        n = s;
                        r = e + 72 | 0;
                        e = a[r >> 2] | 0;
                        if (e | 0) {
                            i = e + 8 | 0;
                            rS(i, n);
                            while (1) {
                                e = a[n >> 2] | 0;
                                if (!e) break;
                                e = a[e >> 2] | 0;
                                if (!(a[e >> 2] | 0)) {
                                    JN(e, t);
                                    Ad(e)
                                } else {
                                    QN(e, t);
                                    yd(e)
                                }
                                rS(i, n)
                            }
                            a[r >> 2] = 0
                        }
                        p = s;
                        return
                    }

                    function Dj() {
                        var e = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 128) break;
                            if (a[7720 + (e << 2) >> 2] | 0) oj(e);
                            e = e + 1 | 0
                        }
                        return
                    }

                    function Fj() {
                        var e = 0,
                            t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0,
                            o = 0;
                        o = p;
                        p = p + 16 | 0;
                        n = o + 8 | 0;
                        s = o + 4 | 0;
                        r = o;
                        e = a[1687] | 0;
                        e: do {
                            if (e | 0) {
                                i = 0;
                                while (1) {
                                    t = e + 52 | 0;
                                    if ((i | 0) >= (a[t >> 2] | 0)) break;
                                    uo(a[(a[e + 12 >> 2] | 0) + (i * 84 | 0) + 12 >> 2] | 0);
                                    e = a[1687] | 0;
                                    t = a[e + 12 >> 2] | 0;
                                    a[t + (i * 84 | 0) + 12 >> 2] = 0;
                                    while (1) {
                                        rS(t + (i * 84 | 0) + 44 | 0, r);
                                        t = a[r >> 2] | 0;
                                        if (!t) break;
                                        e = a[t >> 2] | 0;
                                        a[t >> 2] = 0;
                                        e = e + 12 | 0;
                                        t = a[e >> 2] | 0;
                                        if (t | 0) {
                                            uo(t);
                                            a[e >> 2] = 0
                                        }
                                        t = a[1687] | 0;
                                        e = t;
                                        t = a[t + 12 >> 2] | 0
                                    }
                                    i = i + 1 | 0
                                }
                                a[t >> 2] = 0;
                                rS(e, n);
                                while (1) {
                                    e = a[n >> 2] | 0;
                                    if (!e) break e;
                                    t = (a[e >> 2] | 0) + 8 | 0;
                                    rS(t, s);
                                    while (1) {
                                        i = a[s >> 2] | 0;
                                        if (!i) break;
                                        a[i >> 2] = 0;
                                        rS(t, s)
                                    }
                                    a[e >> 2] = 0;
                                    rS(a[1687] | 0, n)
                                }
                            }
                        } while (0);
                        p = o;
                        return
                    }

                    function Bj() {
                        var e = 0;
                        if (!(a[2103] | 0)) sE();
                        else {
                            Nj();
                            Pa();
                            e = a[2107] | 0;
                            if (e | 0) {
                                si(e);
                                a[2107] = 0
                            }
                            a[2103] = 0
                        }
                        return
                    }

                    function Nj() {
                        Fj();
                        a[1687] = 0;
                        return
                    }

                    function Lj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            n = 0,
                            s = 0;
                        s = p;
                        p = p + 16 | 0;
                        i = s;
                        a[i >> 2] = 0;
                        do {
                            if ((rj() | 0) == 1) {
                                r = cV(0, 0, 2048, i) | 0;
                                if (!r) {
                                    sE();
                                    JX();
                                    e = 0;
                                    break
                                }
                                t = r + 2047 & -2048;
                                e = Uj(e, t, 0) | 0;
                                if ((e | 0) < 1) {
                                    JX();
                                    e = 0;
                                    break
                                }
                                e = WX(t, e) | 0;
                                if (!(a[i >> 2] | 0)) {
                                    Uv(0);
                                    a[i >> 2] = 0
                                }
                                Uv(r);
                                n = 10
                            } else {
                                e = a[2687] | 0;
                                e = (e << 5 | 8) + 2632 + ((a[2689] | 0) * 453 | 0) + (G((a[2688] << 2) + 720 | 0, e) | 0) | 0;
                                n = 10
                            }
                        } while (0);
                        if ((n | 0) == 10) e = e + 2048 | 0;
                        p = s;
                        return e | 0
                    }

                    function Uj(e, t, i) {
                        e = e | 0;
                        t = t | 0;
                        i = i | 0;
                        var r = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0;
                        o = p;
                        p = p + 16 | 0;
                        s = o + 12 | 0;
                        r = o + 8 | 0;
                        n = o;
                        EI(s) | 0;
                        s = a[s >> 2] | 0;
                        u = ((i | 0) < 0) << 31 >> 31;
                        if (!(BI(s, e, 0, 0, i, u, t, i, u) | 0)) {
                            do {
                                LI(s, r) | 0;
                                e = a[r >> 2] | 0
                            } while ((e | 0) == 1);
                            VI(s, n);
                            SI(s) | 0;
                            if ((e | 0) == 2) e = a[n >> 2] | 0;
                            else e = -1
                        } else {
                            SI(s) | 0;
                            e = -1
                        }
                        p = o;
                        return e | 0
                    }

                    function Vj(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        a[1721] = 2;
                        t = Lj(e) | 0;
                        do {
                            if ((t | 0) >= 0) {
                                i = cV(0, 0, t, 8432) | 0;
                                if (!i) {
                                    sE();
                                    JX();
                                    e = 0;
                                    break
                                }
                                if (a[2108] | 0) a[2104] = 1;
                                i = i + 2047 & -2048;
                                a[2109] = i;
                                i = Uj(e, i, t + -2048 | 0) | 0;
                                a[2110] = i;
                                if ((i | 0) < 1) {
                                    JX();
                                    e = 0;
                                    break
                                } else {
                                    e = 1;
                                    break
                                }
                            } else {
                                JX();
                                e = 0
                            }
                        } while (0);
                        return e | 0
                    }

                    function Xj() {
                        var e = 0;
                        jj();
                        nX();
                        if (rf(0) | 0) {
                            JX();
                            Gj()
                        }
                        e = a[1728] | 0;
                        if (e | 0) {
                            $j(e);
                            a[1728] = 0
                        }
                        e = a[1727] | 0;
                        if (e | 0) {
                            $j(e);
                            a[1727] = 0
                        }
                        PP(0, 3);
                        yP();
                        Hj();
                        qV();
                        Wj();
                        oV();
                        Yj();
                        zj();
                        Tv();
                        wv();
                        qj();
                        Jj();
                        Qj();
                        e = a[2111] | 0;
                        if (e | 0) {
                            si(e);
                            a[2111] = 0
                        }
                        a[1678] = 0;
                        if (a[1680] | 0) a[1680] = 0;
                        Zj();
                        gS(8448, 0, 120) | 0;
                        return
                    }

                    function jj() {
                        var e = 0;
                        while (1) {
                            e = H_() | 0;
                            if (!e) break;
                            W_(e)
                        }
                        return
                    }

                    function Gj() {
                        a[549] = -1;
                        return
                    }

                    function $j(e) {
                        e = e | 0;
                        var t = 0;
                        t = a[1724] | 0;
                        if (!t) {
                            sE();
                            t = a[1724] | 0
                        }
                        s$[t & 63](e);
                        return
                    }

                    function Hj() {
                        var e = 0;
                        e = a[2419] | 0;
                        if ((e | 0) == 1) {
                            while (1) {
                                e = a[2420] | 0;
                                if (!(ZE(e) | 0)) break;
                                G_(a[e >> 2] | 0)
                            }
                            e = a[2419] | 0
                        }
                        a[2419] = e + -1;
                        return
                    }

                    function Wj() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 2) break;
                            i = 7432 + (e << 2) | 0;
                            while (1) {
                                t = a[a[i >> 2] >> 2] | 0;
                                if (!(oS(t) | 0)) break;
                                HG(a[t >> 2] | 0)
                            }
                            e = e + 1 | 0
                        }
                        i = (a[2418] | 0) + -1 | 0;
                        a[2418] = i;
                        if (!i) {
                            a[1858] = 0;
                            a[1859] = 0
                        }
                        return
                    }

                    function Yj() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = RB() | 0;
                        if ((t | 0) != (a[1624] | 0)) sE();
                        rS(6808, e);
                        while (1) {
                            t = a[e >> 2] | 0;
                            if (!t) break;
                            a[t >> 2] = 0;
                            rS(6808, e)
                        }
                        a[1624] = 0;
                        p = i;
                        return
                    }

                    function zj() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        t = i;
                        e = oC() | 0;
                        if ((e | 0) != (a[1633] | 0)) sE();
                        e = $G() | 0;
                        if ((e | 0) != (a[2416] | 0)) sE();
                        rS(7500, t);
                        while (1) {
                            e = a[t >> 2] | 0;
                            if (!e) break;
                            a[e >> 2] = 0;
                            rS(7500, t)
                        }
                        a[2416] = 0;
                        rS(7356, t);
                        while (1) {
                            e = a[t >> 2] | 0;
                            if (!e) break;
                            a[e >> 2] = 0;
                            rS(7356, t)
                        }
                        a[1633] = 0;
                        a[1634] = 0;
                        p = i;
                        return
                    }

                    function qj() {
                        var e = 0,
                            t = 0;
                        e = (a[1698] | 0) + 168 | 0;
                        t = a[e >> 2] | 0;
                        if ((t | 0) == 1) {
                            om();
                            if (KE(a[(a[1698] | 0) + 96 >> 2] | 0) | 0) sE();
                            e = a[2065] | 0;
                            if (e | 0) {
                                uo(e);
                                a[2065] = 0
                            }
                            aE(a[1698] | 0, 176);
                            a[1698] = 0
                        } else a[e >> 2] = t + -1;
                        return
                    }

                    function Jj() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = LG() | 0;
                        if ((t | 0) != (a[1629] | 0)) sE();
                        rS(7344, e);
                        while (1) {
                            t = a[e >> 2] | 0;
                            if (!t) break;
                            UG(a[t >> 2] | 0);
                            a[t >> 2] = 0;
                            rS(7344, e)
                        }
                        a[1629] = 0;
                        VG();
                        p = i;
                        return
                    }

                    function Qj() {
                        Kj();
                        eG();
                        tG();
                        iG();
                        rG();
                        nG();
                        if (a[2144] | 0) {
                            aG();
                            a[2144] = 0
                        }
                        a[2106] = 0;
                        return
                    }

                    function Zj() {
                        var e = 0;
                        if ((a[2142] | 0) == 1 ? (wI(), a[2142] = 0, e = a[2143] | 0, e | 0) : 0) {
                            si(e);
                            a[2143] = 0
                        }
                        return
                    }

                    function Kj() {
                        var e = 0;
                        e = 0;
                        while (1) {
                            if ((e | 0) == 1) break;
                            if ((uS(a[6672 + (e * 12 | 0) + 8 >> 2] | 0) | 0) > 0) sE();
                            e = e + 1 | 0
                        }
                        return
                    }

                    function eG() {
                        var e = 0;
                        e = a[1880] | 0;
                        if (e | 0) {
                            uo(e);
                            a[1880] = 0
                        }
                        BG();
                        return
                    }

                    function tG() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = FG() | 0;
                        if ((t | 0) == (a[1666] | 0)) {
                            rS(6776, e);
                            while (1) {
                                t = a[e >> 2] | 0;
                                if (!t) break;
                                a[t >> 2] = 0;
                                rS(6776, e)
                            }
                            a[1666] = 0;
                            a[2413] = 0
                        } else sE();
                        p = i;
                        return
                    }

                    function iG() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = DG() | 0;
                        if ((t | 0) == (a[1664] | 0)) {
                            rS(6764, e);
                            while (1) {
                                t = a[e >> 2] | 0;
                                if (!t) break;
                                a[t >> 2] = 0;
                                rS(6764, e)
                            }
                            a[1664] = 0;
                            a[1665] = 0
                        } else sE();
                        p = i;
                        return
                    }

                    function rG() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = RG() | 0;
                        if ((t | 0) == (a[1671] | 0)) {
                            rS(7444, e);
                            while (1) {
                                t = a[e >> 2] | 0;
                                if (!t) break;
                                a[t >> 2] = 0;
                                rS(7444, e)
                            }
                            a[1671] = 0
                        } else sE();
                        p = i;
                        return
                    }

                    function nG() {
                        a[2412] = (a[2412] | 0) + -1;
                        return
                    }

                    function aG() {
                        var e = 0,
                            t = 0;
                        if (IP() | 0) sE();
                        a[2145] = 0;
                        if (a[2146] | 0) sG();
                        if (a[2147] | 0) {
                            yP();
                            a[2147] = 0
                        }
                        t = a[2148] | 0;
                        if (t | 0) {
                            si(t);
                            a[2148] = 0
                        }
                        if ((a[2149] | 0) == 1 ? (wI(), a[2149] = 0, e = a[2150] | 0, e | 0) : 0) {
                            si(e);
                            a[2150] = 0
                        }
                        oG();
                        a[1635] = 0;
                        return
                    }

                    function sG() {
                        var e = 0;
                        e = a[1658] | 0;
                        if (e | 0) {
                            uG();
                            TS(e, 29);
                            a[1658] = 0;
                            lG()
                        }
                        a[1660] = 0;
                        fG();
                        a[2152] = 0;
                        return
                    }

                    function oG() {
                        var e = 0;
                        e = (a[2151] | 0) + -1 | 0;
                        a[2151] = e;
                        if ((e | 0) == 0 & (a[1645] | 0) != 0) a[1645] = 0;
                        return
                    }

                    function uG() {
                        Kr();
                        return
                    }

                    function hG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        wG(t);
                        return
                    }

                    function lG() {
                        en();
                        return
                    }

                    function fG() {
                        cG();
                        dG();
                        pG();
                        eV();
                        vG();
                        return
                    }

                    function cG() {
                        var e = 0;
                        if (a[2410] | 0) {
                            _G(1);
                            a[2410] = 0
                        }
                        e = a[1647] | 0;
                        if (e | 0) {
                            TS(e, 30);
                            a[1647] = 0
                        }
                        a[2411] = 0;
                        return
                    }

                    function dG() {
                        _G(9);
                        bG(9, 0);
                        return
                    }

                    function pG() {
                        var e = 0;
                        a[2153] = (a[2153] | 0) + -1;
                        e: do {
                            if (a[2153] | 0) {
                                if ((a[2153] | 0) < 0) a[2153] = 0
                            } else {
                                e = 0;
                                while (1) {
                                    if ((e | 0) == 256) break e;
                                    a[8616 + (e << 2) >> 2] = 0;
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function vG() {
                        mG();
                        return
                    }

                    function mG() {
                        a[1659] = 0;
                        return
                    }

                    function _G(e) {
                        e = e | 0;
                        if (gG(e) | 0) a$[a[(a[6592 + (e << 2) >> 2] | 0) + 8 >> 2] & 15]();
                        return
                    }

                    function bG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        a[6592 + (e << 2) >> 2] = t;
                        return
                    }

                    function gG(e) {
                        e = e | 0;
                        e: do {
                            if (!(a[6592 + (e << 2) >> 2] | 0)) switch (e | 0) {
                                case 2:
                                    {
                                        sE();e = 0;
                                        break e
                                    }
                                case 3:
                                    {
                                        sE();e = 0;
                                        break e
                                    }
                                default:
                                    {
                                        sE();e = 0;
                                        break e
                                    }
                            } else e = 1
                        } while (0);
                        return e | 0
                    }

                    function yG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        AG(t);
                        return
                    }

                    function AG(e) {
                        e = e | 0;
                        var t = 0;
                        if (e | 0) {
                            t = a[e >> 2] | 0;
                            if (t | 0) {
                                s$[a[(a[t >> 2] | 0) + 28 >> 2] & 63](a[t + 4 >> 2] | 0);
                                a[e >> 2] = 0
                            }
                            SS(a[1647] | 0, e)
                        }
                        return
                    }

                    function wG(e) {
                        e = e | 0;
                        do {
                            if (!(a[2152] | 0)) sE();
                            else {
                                if (!e) {
                                    sE();
                                    break
                                }
                                switch (((a[e + 416 >> 2] | 0) >>> 16 & 65535) << 16 >> 16) {
                                    case 1:
                                    case 2:
                                    case 4:
                                        {
                                            xG(e);
                                            break
                                        }
                                    default:
                                        {}
                                }
                                uG();
                                kG(e);
                                lG()
                            }
                        } while (0);
                        return
                    }

                    function xG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            n = 0,
                            s = 0,
                            o = 0,
                            u = 0,
                            h = 0,
                            l = 0,
                            f = 0,
                            c = 0,
                            d = 0,
                            v = 0,
                            m = 0,
                            _ = 0;
                        l = p;
                        p = p + 288 | 0;
                        h = l;
                        n = l + 32 | 0;
                        s = e + 416 | 0;
                        o = e;
                        u = e + 421 | 0;
                        i = e + 236 | 0;
                        t = 0;
                        while (1) {
                            mh(a[i >> 2] | 0, 14, 0);
                            qv(e);
                            gi();
                            yi();
                            if (!(a[s >> 2] | 0)) break;
                            if (((t | 0) % 3e3 | 0 | 0) == 2999) {
                                _ = Hv(e) | 0;
                                m = a[s >> 2] | 0;
                                v = CG(e) | 0;
                                d = r[u >> 0] | 0;
                                c = OG(e) | 0;
                                f = Qr(e) | 0;
                                a[h >> 2] = o;
                                a[h + 4 >> 2] = _;
                                a[h + 8 >> 2] = m;
                                a[h + 12 >> 2] = v;
                                a[h + 16 >> 2] = d;
                                a[h + 20 >> 2] = c;
                                a[h + 24 >> 2] = f;
                                dS(n, 0, 4167, h);
                                oE(0, n);
                                Wv(e)
                            }
                            t = t + 1 | 0
                        }
                        p = l;
                        return
                    }

                    function kG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        SS(a[1658] | 0, e);
                        TG(e);
                        EG(e);
                        t = e + 264 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            SG(i);
                            a[t >> 2] = 0
                        }
                        t = e + 236 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) {
                            AG(i);
                            a[t >> 2] = 0
                        }
                        t = e + 108 | 0;
                        i = a[t >> 2] | 0;
                        if (!i) t = 0;
                        else {
                            iV(i);
                            a[t >> 2] = 0;
                            t = 0
                        }
                        while (1) {
                            if ((t | 0) == 2) break;
                            i = e + 228 + (t << 2) | 0;
                            r = a[i >> 2] | 0;
                            if (r | 0) {
                                tP(r);
                                a[i >> 2] = 0
                            }
                            t = t + 1 | 0
                        }
                        t = e + 168 | 0;
                        if (a[t >> 2] | 0) a[t >> 2] = 0;
                        t = e + 104 | 0;
                        if (a[t >> 2] | 0) a[t >> 2] = 0;
                        e = e + 28 | 0;
                        t = a[e >> 2] | 0;
                        a[e >> 2] = 0;
                        if (t | 0) si(t);
                        return
                    }

                    function TG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        t = 0;
                        while (1) {
                            if ((t | 0) == 2) break;
                            i = a[e + 32 + (t << 2) >> 2] | 0;
                            if (i | 0) PG(e, i);
                            t = t + 1 | 0
                        }
                        return
                    }

                    function EG(e) {
                        e = e | 0;
                        var t = 0;
                        e = e + 532 | 0;
                        t = e + 56 | 0;
                        do {
                            a[e >> 2] = 0;
                            e = e + 4 | 0
                        } while ((e | 0) < (t | 0));
                        return
                    }

                    function SG(e) {
                        e = e | 0;
                        WA(e);
                        return
                    }

                    function PG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if ((e | 0) == 0 | (t | 0) == 0) sE();
                        else IG(e, t);
                        return
                    }

                    function IG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        if (((Hv(e) | 0) + -1 | 0) >>> 0 < 2) sE();
                        else MG(e, t);
                        return
                    }

                    function MG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        var i = 0,
                            r = 0,
                            n = 0;
                        i = 0;
                        while (1) {
                            if ((i | 0) >= 2) {
                                r = 5;
                                break
                            }
                            n = e + 32 + (i << 2) | 0;
                            if ((a[n >> 2] | 0) == (t | 0)) {
                                r = 6;
                                break
                            }
                            i = i + 1 | 0
                        }
                        if ((r | 0) == 5) sE();
                        else if ((r | 0) == 6) {
                            i = e + 40 + (i << 2) | 0;
                            e = a[i >> 2] | 0;
                            if (e) {
                                XE(a[(a[e >> 2] | 0) + 16 >> 2] | 0, a[e + 4 >> 2] | 0);
                                a[i >> 2] = 0;
                                t = a[n >> 2] | 0
                            }
                            if (t | 0) a[n >> 2] = 0
                        }
                        return
                    }

                    function CG(e) {
                        e = e | 0;
                        if (!e) {
                            sE();
                            e = 0
                        } else e = r[e + 420 >> 0] | 0;
                        return e | 0
                    }

                    function OG(e) {
                        e = e | 0;
                        if (e) {
                            e = a[e + 264 >> 2] | 0;
                            if (!e) e = -1;
                            else e = Ar(e) | 0
                        } else {
                            sE();
                            e = -1
                        }
                        return e | 0
                    }

                    function RG() {
                        return KE(a[1863] | 0) | 0
                    }

                    function DG() {
                        return KE(a[1693] | 0) | 0
                    }

                    function FG() {
                        return KE(a[1696] | 0) | 0
                    }

                    function BG() {
                        var e = 0,
                            t = 0,
                            i = 0;
                        i = p;
                        p = p + 16 | 0;
                        e = i;
                        t = (a[2414] | 0) + -1 | 0;
                        a[2414] = t;
                        e: do {
                            if (!t)
                                while (1) {
                                    rS(6644, e);
                                    t = a[e >> 2] | 0;
                                    if (!t) break e;
                                    NG(a[t >> 2] | 0)
                                }
                        } while (0);
                        p = i;
                        return
                    }

                    function NG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0,
                            s = 0;
                        e: do {
                            if ((a[2414] | 0) < 1) sE();
                            else {
                                s = e + 10 | 0;
                                i = e + 44 | 0;
                                e = 0;
                                while (1) {
                                    if ((e | 0) >= (n[s >> 1] | 0)) break e;
                                    r = (a[i >> 2] | 0) + (e << 5) + 4 | 0;
                                    t = a[r >> 2] | 0;
                                    if (t | 0) {
                                        wG(t);
                                        a[r >> 2] = 0
                                    }
                                    e = e + 1 | 0
                                }
                            }
                        } while (0);
                        return
                    }

                    function LG() {
                        return KE(a[1838] | 0) | 0
                    }

                    function UG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        i = e + 156 | 0;
                        t = a[i >> 2] | 0;
                        a[i >> 2] = 0;
                        eo();
                        GG(e);
                        so();
                        if (t | 0) si(t);
                        return
                    }

                    function VG() {
                        var e = 0,
                            t = 0;
                        t = (a[2415] | 0) + -1 | 0;
                        a[2415] = t;
                        if ((t | 0) == 0 ? (nG(), e = a[2062] | 0, e | 0) : 0) {
                            yS(e);
                            a[2062] = 0
                        }
                        return
                    }

                    function XG(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        jG(e);
                        return
                    }

                    function jG(e) {
                        e = e | 0;
                        var t = 0;
                        a[2061] = (a[2061] | 0) + -1;
                        Ou(e);
                        t = a[e >> 2] | 0;
                        if (t | 0) {
                            wS(a[2062] | 0, t);
                            a[e >> 2] = 0
                        }
                        t = a[e + 20 >> 2] | 0;
                        aE(e, 120);
                        if (t | 0) si(t);
                        return
                    }

                    function GG(e) {
                        e = e | 0;
                        var t = 0;
                        e = e + 120 | 0;
                        t = a[e >> 2] | 0;
                        if (t | 0) {
                            jG(t);
                            a[e >> 2] = 0
                        }
                        return
                    }

                    function $G() {
                        return KE(a[1877] | 0) | 0
                    }

                    function HG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        do {
                            if ((a[2418] | 0) >= 1) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                t = a[e + 280 >> 2] | 0;
                                if (t | 0) WG(t, e);
                                if (a[e + 208 >> 2] | 0) YG(e);
                                switch (e_(e) | 0) {
                                    case 0:
                                    case 3:
                                        break;
                                    default:
                                        zG(e, 60)
                                }
                                $m(e);
                                t = e + 12 | 0;
                                if ((a[t >> 2] | 0) == 7476) i = 7476;
                                else {
                                    eo();
                                    if ((a[t >> 2] | 0) != 7476) t_(e);
                                    so();
                                    i = a[t >> 2] | 0
                                }
                                lS(i, e);
                                a[t >> 2] = 0;
                                a[e >> 2] = 0;
                                r = a[e + 244 >> 2] | 0;
                                t = e + 192 | 0;
                                i = a[t >> 2] | 0;
                                if (i | 0) {
                                    qG(i);
                                    a[t >> 2] = 0
                                }
                                i = e + 104 | 0;
                                t = a[i >> 2] | 0;
                                if (t | 0) {
                                    if (bC(t) | 0) {
                                        eo();
                                        i_(a[i >> 2] | 0);
                                        so();
                                        t = a[i >> 2] | 0
                                    }
                                    JG(t);
                                    a[i >> 2] = 0
                                }
                                t = e + 256 | 0;
                                i = a[t >> 2] | 0;
                                if (i | 0) {
                                    $j(i);
                                    a[t >> 2] = 0
                                }
                                t = e + 252 | 0;
                                i = a[t >> 2] | 0;
                                if (i | 0) {
                                    $j(i);
                                    a[t >> 2] = 0
                                }
                                if (r | 0) si(r)
                            } else sE()
                        } while (0);
                        return
                    }

                    function WG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        do {
                            if ((a[2419] | 0) >= 1) {
                                if (!e) {
                                    sE();
                                    break
                                }
                                if (!t) {
                                    sE();
                                    break
                                }
                                if (e_(t) | 0) zG(t, 57);
                                t = j_(t, e) | 0;
                                if (!t) {
                                    sE();
                                    break
                                } else {
                                    iS(e + 12 | 0, t);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function YG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0;
                        do {
                            if (e) {
                                t = a[e + 208 >> 2] | 0;
                                i = Bo(t) | 0;
                                if (!i) {
                                    sE();
                                    break
                                }
                                if ((a[t + 168 >> 2] | 0) == 1) {
                                    sE();
                                    break
                                } else {
                                    zG(e, 62);
                                    v_(e, 0, 0);
                                    m_(e, 0, 0);
                                    __(e, 0);
                                    UG(i);
                                    break
                                }
                            } else sE()
                        } while (0);
                        return
                    }

                    function zG(e, t) {
                        e = e | 0;
                        t = t | 0;
                        eo();
                        Ij(e, t);
                        so();
                        return
                    }

                    function qG(e) {
                        e = e | 0;
                        QG(e);
                        return
                    }

                    function JG(e) {
                        e = e | 0;
                        a[e >> 2] = 0;
                        return
                    }

                    function QG(e) {
                        e = e | 0;
                        var t = 0,
                            i = 0,
                            r = 0;
                        V_(e);
                        _j(e);
                        bj(e);
                        gj(e);
                        yj(e);
                        r = e + 696 | 0;
                        t = a[r >> 2] | 0;
                        if (t | 0) mI(t + 324 | 0);
                        t = e + 700 | 0;
                        i = a[t >> 2] | 0;
                        if (i | 0) mI(i + 156 | 0);
                        a[r >> 2] = 0;
                        a[t >> 2] = 0;
                        X_(e);
                        return
                    }
                    var ZG = [VM, ni, la, _a, vg, VM, VM, VM];
                    var KG = [XM, ui, li, fi, vi, mi, ca, da, ma, ba, ya, Aa, ka, Rg, Lg, Hg, qg, oy, hy, dy, py, Cg, tA, uA, cA, kA, EA, MA, CA, $A, qA, iw, rw, nw, sw, ow, JP, eI, rI, nI, Nu, Uu, DT, pP, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM, XM];
                    var e$ = [jM, ci, pi, va, xa, mg, Wg, Yg, Qg, hA, lA, pA, ZP, iI, Zt, Jt, $t, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM, jM];
                    var t$ = [GM, bg, Dg, Ug, Qy, iA, HA, fC];
                    var i$ = [$M, di, pa, wa, Xg, nA, KP, $M];
                    var r$ = [HM, QP];
                    var n$ = [WM, tI];
                    var a$ = [YM, Fg, Bg, Ng, Zy, Ky, eA, Zv, AT, wT, BT, Yt, YM, YM, YM, YM];
                    var s$ = [zM, hi, ar, sr, or, ur, hr, lr, fr, cr, dr, pr, vr, mr, fa, ga, _g, Vg, jg, Gg, $g, ry, sy, rA, aA, sA, oA, yA, xA, WA, YA, ZA, ew, tw, Bu, Vu, vP, mP, bP, gP, OI, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM, zM];
                    var o$ = [qM, Fu, Lu, qM];
                    var u$ = [JM, gg, zg, ny, ly, cy, fA, AA, SA, IA, zA, JA, KA, aw, Oi, zi, er, Or, $v, zv, uC, Iu, QC, KC, hL, nL, KN, tV, XX, hG, yG, ei, jw, Ht, Uw, CI, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM, JM];
                    var h$ = [QM, Kg, ey, uy, fy, mA, _A, TA, PA, QM, QM, QM, QM, QM, QM, QM];
                    var l$ = [ZM, Jg, ty, dA, bA, QA, gl, ii];
                    var f$ = [KM, iy, ay, gA, wA, KM, KM, KM];
                    var c$ = [eC, Zg, vA, Gt];
                    var d$ = [tC, hC];
                    var p$ = [iC];
                    var v$ = [rC];
                    return {
                        ___divdi3: hM,
                        ___muldi3: fM,
                        ___remdi3: cM,
                        ___udivdi3: dM,
                        _bitshift64Ashr: pM,
                        _bitshift64Lshr: vM,
                        _bitshift64Shl: mM,
                        _$AG: rE,
                        _$AH: NV,
                        _$AI: uV,
                        _$AJ: VV,
                        _$AK: YV,
                        _$AL: $V,
                        _$AM: WV,
                        _$AN: HV,
                        _$AO: GV,
                        _$AP: XV,
                        _$AQ: jV,
                        _$AR: UV,
                        _$AS: wV,
                        _$AT: PV,
                        _$AU: TV,
                        _$AV: CV,
                        _$AW: fV,
                        _$AX: hV,
                        _$AY: _V,
                        _$AZ: AV,
                        _$BA: DV,
                        _$BB: SV,
                        _$BC: FV,
                        _$BD: RV,
                        _$BE: kV,
                        _$BF: yV,
                        _$BG: bV,
                        _$BH: BV,
                        _$BI: gV,
                        _$BJ: MV,
                        _$BK: mV,
                        _$BL: yX,
                        _$BM: AX,
                        _$BN: GX,
                        _$BO: EX,
                        _$BP: $X,
                        _$BQ: sX,
                        _$BR: oX,
                        _$BS: mX,
                        _$BT: _X,
                        _$BU: vX,
                        _$BV: HX,
                        _$BW: gX,
                        _$BX: bX,
                        _$BY: dX,
                        _$BZ: QV,
                        _$CA: wm,
                        _$CB: tb,
                        _$CC: rb,
                        _$CD: ib,
                        _$CE: K_,
                        _$CF: eb,
                        _$CG: HT,
                        _$CH: WT,
                        _$CI: YT,
                        _$CJ: GT,
                        _$CK: jb,
                        _$CL: $b,
                        _$CM: vb,
                        _$CN: mb,
                        _$CO: lb,
                        _$CP: cb,
                        _$CQ: gb,
                        _$CR: wb,
                        _$CS: Ib,
                        _$CT: Ob,
                        _$CU: Tb,
                        _$CV: Sb,
                        _$CW: _b,
                        _$CX: Ab,
                        _$CY: Pb,
                        _$CZ: Cb,
                        _$DA: Rb,
                        _$DB: Fb,
                        _$DC: Bb,
                        _$DD: Lb,
                        _$DE: Ub,
                        _$DF: Xb,
                        _$DG: ub,
                        _$DH: fb,
                        _$DI: xb,
                        _$DJ: Eb,
                        _$DK: lT,
                        _$DL: oT,
                        _$DM: Zx,
                        _$DN: Qx,
                        _$DO: wk,
                        _$DP: Sk,
                        _$DQ: Tk,
                        _$DR: $x,
                        _$DS: ek,
                        _$DT: Ru,
                        _$DU: Bx,
                        _$DV: Yx,
                        _$DW: Cx,
                        _$DX: Mx,
                        _$DY: Ox,
                        _$DZ: sT,
                        _$EA: yx,
                        _$EB: wx,
                        _$EC: ig,
                        _$ED: pT,
                        _$EE: Jw,
                        _$EF: HG,
                        _$EG: YG,
                        _$EH: sg,
                        _$EI: ng,
                        _$EJ: ug,
                        _$EK: rg,
                        _$EL: mk,
                        _$EM: Ak,
                        _$EN: yk,
                        _$EO: e_,
                        _$EP: Rx,
                        _$EQ: hg,
                        _$ER: Sx,
                        _$ES: ck,
                        _$ET: kx,
                        _$EU: _x,
                        _$EV: lg,
                        _$EW: vk,
                        _$EX: Ix,
                        _$EY: qk,
                        _$EZ: Yk,
                        _$FA: Xk,
                        _$FB: jk,
                        _$FC: Uk,
                        _$FD: Vk,
                        _$FE: Nk,
                        _$FF: Lk,
                        _$FG: Gk,
                        _$FH: Hk,
                        _$FI: dx,
                        _$FJ: Kw,
                        _$FK: ax,
                        _$FL: rx,
                        _$FM: sk,
                        _$FN: Zk,
                        _$FO: eT,
                        _$FP: Kk,
                        _$FQ: tT,
                        _$FR: iT,
                        _$FS: ag,
                        _$FT: UN,
                        _$FU: og,
                        _$FV: VN,
                        _$FW: ox,
                        _$FX: rT,
                        _$FY: ik,
                        _$FZ: rk,
                        _$GA: Ok,
                        _$GB: Rk,
                        _$GC: Dk,
                        _$GD: Fk,
                        _$GE: Ck,
                        _$GF: ok,
                        _$GG: nk,
                        _$GH: fT,
                        _$GI: fk,
                        _$GJ: Qk,
                        _$GK: lk,
                        _$GL: uk,
                        _$GM: ak,
                        _$GN: Ik,
                        _$GO: vx,
                        _$GP: N_,
                        _$GQ: bx,
                        _$GR: gx,
                        _$GS: Wk,
                        _$GT: dk,
                        _$GU: HL,
                        _$GV: ZT,
                        _$GW: W_,
                        _$GX: jj,
                        _$GY: vT,
                        _$GZ: Qt,
                        _$HA: ti,
                        _$HB: qt,
                        _$HC: Kt,
                        _$HD: Wb,
                        _$HE: aj,
                        _$HF: Hb,
                        _$HG: zt,
                        _$HH: Qb,
                        _$HI: bw,
                        _$HJ: gw,
                        _$HK: _w,
                        _$HL: mw,
                        _$HM: Wt,
                        _$HN: qX,
                        _$HO: VT,
                        _$HP: yw,
                        _$HQ: Aw,
                        _$HR: UT,
                        _$HS: JX,
                        _$HT: gT,
                        _$HU: PT,
                        _$HV: MT,
                        _$HW: EI,
                        _$HX: SI,
                        _$HY: DI,
                        _$HZ: LI,
                        _$IA: FI,
                        _$IB: II,
                        _$IC: XI,
                        _$ID: jI,
                        _free: zI,
                        _getMemoryInfo: ri,
                        _i64Add: aM,
                        _i64Subtract: sM,
                        _llvm_ctpop_i32: _M,
                        _main: jt,
                        _malloc: GI,
                        _memcpy: bM,
                        _memmove: gM,
                        _memset: yM,
                        _sbrk: AM,
                        dynCall_i: wM,
                        dynCall_ii: xM,
                        dynCall_iii: kM,
                        dynCall_iiii: TM,
                        dynCall_iiiii: EM,
                        dynCall_iiiiiii: SM,
                        dynCall_iiiiiiiiii: PM,
                        dynCall_v: IM,
                        dynCall_vi: MM,
                        dynCall_vid: CM,
                        dynCall_vii: OM,
                        dynCall_viid: RM,
                        dynCall_viii: DM,
                        dynCall_viiid: FM,
                        dynCall_viiii: BM,
                        dynCall_viiiii: NM,
                        dynCall_viiiiii: LM,
                        dynCall_viiiiiii: UM,
                        establishStackSpace: Lt,
                        getTempRet0: Xt,
                        runPostSets: nM,
                        setTempRet0: Vt,
                        setThrew: Ut,
                        stackAlloc: Ft,
                        stackRestore: Nt,
                        stackSave: Bt
                    }
                }(t.$a, t.ab, o);
                t.___divdi3 = tt.___divdi3, t.___muldi3 = tt.___muldi3, t.___remdi3 = tt.___remdi3, t.___udivdi3 = tt.___udivdi3, t._bitshift64Ashr = tt._bitshift64Ashr, t._bitshift64Lshr = tt._bitshift64Lshr, t._bitshift64Shl = tt._bitshift64Shl, t._$AG = tt._$AG, t._$AH = tt._$AH, t._$AI = tt._$AI, t._$AJ = tt._$AJ, t._$AK = tt._$AK, t._$AL = tt._$AL, t._$AM = tt._$AM, t._$AN = tt._$AN, t._$AO = tt._$AO, t._$AP = tt._$AP, t._$AQ = tt._$AQ, t._$AR = tt._$AR, t._$AS = tt._$AS, t._$AT = tt._$AT, t._$AU = tt._$AU, t._$AV = tt._$AV, t._$AW = tt._$AW, t._$AX = tt._$AX, t._$AY = tt._$AY, t._$AZ = tt._$AZ, t._$BA = tt._$BA, t._$BB = tt._$BB, t._$BC = tt._$BC, t._$BD = tt._$BD, t._$BE = tt._$BE, t._$BF = tt._$BF, t._$BG = tt._$BG, t._$BH = tt._$BH, t._$BI = tt._$BI, t._$BJ = tt._$BJ, t._$BK = tt._$BK, t._$BL = tt._$BL, t._$BM = tt._$BM, t._$BN = tt._$BN, t._$BO = tt._$BO, t._$BP = tt._$BP, t._$BQ = tt._$BQ, t._$BR = tt._$BR, t._$BS = tt._$BS, t._$BT = tt._$BT, t._$BU = tt._$BU, t._$BV = tt._$BV, t._$BW = tt._$BW, t._$BX = tt._$BX, t._$BY = tt._$BY, t._$BZ = tt._$BZ, t._$CA = tt._$CA, t._$CB = tt._$CB, t._$CC = tt._$CC, t._$CD = tt._$CD, t._$CE = tt._$CE, t._$CF = tt._$CF, t._$CG = tt._$CG, t._$CH = tt._$CH, t._$CI = tt._$CI, t._$CJ = tt._$CJ, t._$CK = tt._$CK, t._$CL = tt._$CL, t._$CM = tt._$CM, t._$CN = tt._$CN, t._$CO = tt._$CO, t._$CP = tt._$CP, t._$CQ = tt._$CQ, t._$CR = tt._$CR, t._$CS = tt._$CS, t._$CT = tt._$CT, t._$CU = tt._$CU, t._$CV = tt._$CV, t._$CW = tt._$CW, t._$CX = tt._$CX, t._$CY = tt._$CY, t._$CZ = tt._$CZ, t._$DA = tt._$DA, t._$DB = tt._$DB, t._$DC = tt._$DC, t._$DD = tt._$DD, t._$DE = tt._$DE, t._$DF = tt._$DF, t._$DG = tt._$DG, t._$DH = tt._$DH, t._$DI = tt._$DI, t._$DJ = tt._$DJ, t._$DK = tt._$DK, t._$DL = tt._$DL, t._$DM = tt._$DM, t._$DN = tt._$DN, t._$DO = tt._$DO, t._$DP = tt._$DP, t._$DQ = tt._$DQ, t._$DR = tt._$DR, t._$DS = tt._$DS, t._$DT = tt._$DT, t._$DU = tt._$DU, t._$DV = tt._$DV, t._$DW = tt._$DW, t._$DX = tt._$DX, t._$DY = tt._$DY, t._$DZ = tt._$DZ, t._$EA = tt._$EA, t._$EB = tt._$EB, t._$EC = tt._$EC, t._$ED = tt._$ED, t._$EE = tt._$EE, t._$EF = tt._$EF, t._$EG = tt._$EG, t._$EH = tt._$EH, t._$EI = tt._$EI, t._$EJ = tt._$EJ, t._$EK = tt._$EK, t._$EL = tt._$EL, t._$EM = tt._$EM, t._$EN = tt._$EN, t._$EO = tt._$EO, t._$EP = tt._$EP, t._$EQ = tt._$EQ, t._$ER = tt._$ER, t._$ES = tt._$ES, t._$ET = tt._$ET, t._$EU = tt._$EU, t._$EV = tt._$EV, t._$EW = tt._$EW, t._$EX = tt._$EX, t._$EY = tt._$EY, t._$EZ = tt._$EZ, t._$FA = tt._$FA, t._$FB = tt._$FB, t._$FC = tt._$FC, t._$FD = tt._$FD, t._$FE = tt._$FE, t._$FF = tt._$FF, t._$FG = tt._$FG, t._$FH = tt._$FH, t._$FI = tt._$FI, t._$FJ = tt._$FJ, t._$FK = tt._$FK, t._$FL = tt._$FL, t._$FM = tt._$FM, t._$FN = tt._$FN, t._$FO = tt._$FO, t._$FP = tt._$FP, t._$FQ = tt._$FQ, t._$FR = tt._$FR, t._$FS = tt._$FS, t._$FT = tt._$FT, t._$FU = tt._$FU, t._$FV = tt._$FV, t._$FW = tt._$FW, t._$FX = tt._$FX, t._$FY = tt._$FY, t._$FZ = tt._$FZ, t._$GA = tt._$GA, t._$GB = tt._$GB, t._$GC = tt._$GC, t._$GD = tt._$GD, t._$GE = tt._$GE, t._$GF = tt._$GF, t._$GG = tt._$GG, t._$GH = tt._$GH, t._$GI = tt._$GI, t._$GJ = tt._$GJ, t._$GK = tt._$GK, t._$GL = tt._$GL, t._$GM = tt._$GM, t._$GN = tt._$GN, t._$GO = tt._$GO, t._$GP = tt._$GP, t._$GQ = tt._$GQ, t._$GR = tt._$GR, t._$GS = tt._$GS, t._$GT = tt._$GT, t._$GU = tt._$GU, t._$GV = tt._$GV, t._$GW = tt._$GW, t._$GX = tt._$GX, t._$GY = tt._$GY, t._$GZ = tt._$GZ, t._$HA = tt._$HA, t._$HB = tt._$HB, t._$HC = tt._$HC, t._$HD = tt._$HD, t._$HE = tt._$HE, t._$HF = tt._$HF, t._$HG = tt._$HG, t._$HH = tt._$HH, t._$HI = tt._$HI, t._$HJ = tt._$HJ, t._$HK = tt._$HK, t._$HL = tt._$HL, t._$HM = tt._$HM, t._$HN = tt._$HN, t._$HO = tt._$HO, t._$HP = tt._$HP, t._$HQ = tt._$HQ, t._$HR = tt._$HR, t._$HS = tt._$HS, t._$HT = tt._$HT, t._$HU = tt._$HU, t._$HV = tt._$HV, t._$HW = tt._$HW, t._$HX = tt._$HX, t._$HY = tt._$HY, t._$HZ = tt._$HZ, t._$IA = tt._$IA, t._$IB = tt._$IB, t._$IC = tt._$IC, t._$ID = tt._$ID, t._free = tt._free, t._getMemoryInfo = tt._getMemoryInfo, t._i64Add = tt._i64Add, t._i64Subtract = tt._i64Subtract, t._llvm_ctpop_i32 = tt._llvm_ctpop_i32, t._main = tt._main, t._malloc = tt._malloc, t._memcpy = tt._memcpy, t._memmove = tt._memmove, t._memset = tt._memset, t._sbrk = tt._sbrk, t.establishStackSpace = tt.establishStackSpace, t.getTempRet0 = tt.getTempRet0, t.runPostSets = tt.runPostSets, t.setTempRet0 = tt.setTempRet0, t.setThrew = tt.setThrew;
                var it = t.stackAlloc = tt.stackAlloc,
                    rt = t.stackRestore = tt.stackRestore,
                    nt = t.stackSave = tt.stackSave;
                t.dynCall_i = tt.dynCall_i, t.dynCall_ii = tt.dynCall_ii, t.dynCall_iii = tt.dynCall_iii, t.dynCall_iiii = tt.dynCall_iiii, t.dynCall_iiiii = tt.dynCall_iiiii, t.dynCall_iiiiiii = tt.dynCall_iiiiiii, t.dynCall_iiiiiiiiii = tt.dynCall_iiiiiiiiii;
                var at = t.dynCall_v = tt.dynCall_v,
                    st = t.dynCall_vi = tt.dynCall_vi;
                t.dynCall_vid = tt.dynCall_vid;
                var ot = t.dynCall_vii = tt.dynCall_vii;
                if (t.dynCall_viid = tt.dynCall_viid, t.dynCall_viii = tt.dynCall_viii, t.dynCall_viiid = tt.dynCall_viiid, t.dynCall_viiii = tt.dynCall_viiii, t.dynCall_viiiii = tt.dynCall_viiiii, t.dynCall_viiiiii = tt.dynCall_viiiiii, t.dynCall_viiiiiii = tt.dynCall_viiiiiii, t.asm = tt, t.UTF8ToString = function(e) {
                        return x(e)
                    }, j) {
                    G(j) || ("function" == typeof t.locateFile ? j = t.locateFile(j) : t.memoryInitializerPrefixURL && (j = t.memoryInitializerPrefixURL + j));
                    var ut = function() {
                        t.readAsync(j, ht, function() {
                            throw "could not load memory initializer " + j
                        })
                    };
                    U++, t.monitorRunDependencies && t.monitorRunDependencies(U);
                    var ht = function(e) {
                            e.byteLength && (e = new Uint8Array(e)), h.set(e, 8), t.memoryInitializerRequest && delete t.memoryInitializerRequest.response, U--, t.monitorRunDependencies && t.monitorRunDependencies(U), 0 == U && (null !== V && (clearInterval(V), V = null), X && (e = X, X = null, e()))
                        },
                        lt = et(j);
                    if (lt) ht(lt.buffer);
                    else if (t.memoryInitializerRequest) {
                        var ft = function() {
                            var e = t.memoryInitializerRequest,
                                i = e.response;
                            if (200 !== e.status && 0 !== e.status) {
                                if (!(i = et(t.memoryInitializerRequestURL))) return void ut();
                                i = i.buffer
                            }
                            ht(i)
                        };
                        t.memoryInitializerRequest.response ? setTimeout(ft, 0) : t.memoryInitializerRequest.addEventListener("load", ft)
                    } else ut()
                }

                function ct(e) {
                    this.name = "ExitStatus", this.message = "Program terminated with exit(" + e + ")", this.status = e
                }

                function dt(e) {
                    function i() {
                        if (!t.calledRun && (t.calledRun = !0, !n)) {
                            if (R || (R = !0, S(I)), S(M), t.onRuntimeInitialized && t.onRuntimeInitialized(), t._main && mt && t.callMain(e), t.postRun)
                                for ("function" == typeof t.postRun && (t.postRun = [t.postRun]); t.postRun.length;) {
                                    var i = t.postRun.shift();
                                    O.unshift(i)
                                }
                            S(O)
                        }
                    }
                    if (e = e || t.arguments, !(0 < U)) {
                        if (t.preRun)
                            for ("function" == typeof t.preRun && (t.preRun = [t.preRun]); t.preRun.length;) D();
                        S(P), 0 < U || t.calledRun || (t.setStatus ? (t.setStatus("Running..."), setTimeout(function() {
                            setTimeout(function() {
                                t.setStatus("")
                            }, 1), i()
                        }, 1)) : i())
                    }
                }

                function pt(e, i) {
                    i && t.noExitRuntime && 0 === e || (!t.noExitRuntime && (n = !0, b = void 0, S(C), t.onExit) && t.onExit(e), t.quit(e, new ct(e)))
                }

                function vt(e) {
                    throw t.onAbort && t.onAbort(e), void 0 !== e ? (t.print(e), t.printErr(e), e = JSON.stringify(e)) : e = "", n = !0, "abort(" + e + "). Build with -s ASSERTIONS=1 for more info."
                }
                if (t.then = function(e) {
                        if (t.calledRun) e(t);
                        else {
                            var i = t.onRuntimeInitialized;
                            t.onRuntimeInitialized = function() {
                                i && i(), e(t)
                            }
                        }
                        return t
                    }, ct.prototype = Error(), ct.prototype.constructor = ct, X = function e() {
                        t.calledRun || dt(), t.calledRun || (X = e)
                    }, t.callMain = function(e) {
                        e = e || [], R || (R = !0, S(I));
                        var i = e.length + 1,
                            r = it(4 * (i + 1));
                        f[r >> 2] = k(t.thisProgram);
                        for (var n = 1; n < i; n++) f[(r >> 2) + n] = k(e[n - 1]);
                        f[(r >> 2) + i] = 0;
                        try {
                            pt(t._main(i, r, 0), !0)
                        } catch (i) {
                            i instanceof ct || ("SimulateInfiniteLoop" == i ? t.noExitRuntime = !0 : ((e = i) && "object" == typeof i && i.stack && (e = [i, i.stack]), t.printErr("exception thrown:" + e), t.quit(1, i)))
                        }
                    }, t.run = dt, t.exit = pt, t.abort = vt, t.preInit)
                    for ("function" == typeof t.preInit && (t.preInit = [t.preInit]); 0 < t.preInit.length;) t.preInit.pop()();
                var mt = !0;
                return t.noInitialRun && (mt = !1), t.noExitRuntime = !0, dt(), e
            },
            n = n || {};
        ! function() {
            function e(e, t) {
                if (!e) return t;
                for (var i in e)
                    if (!t.hasOwnProperty(i)) throw "[CRIWARE] invalid configuration property:" + i;
                for (i in t) e.hasOwnProperty(i) || (e[i] = t[i]);
                return e
            }

            function t(e) {
                if (null == e) return 0;
                for (var t = 0 | e.length, i = p(1 + (t << 2)), r = i, n = 0; n < t; n++) {
                    var a = 0 | e.charCodeAt(n);
                    127 >= a ? b[r++] = a : (2047 >= a ? b[r++] = 192 | a >> 6 : (b[r++] = 224 | a >> 12, b[r++] = 128 | a >> 6 & 63), b[r++] = 128 | 63 & a)
                }
                return b[r] = 0, i
            }

            function i() {
                for (var e = T, t = 0; t < e.length;) e[t]._dispatchEvents() ? t++ : e.splice(t, 1)
            }

            function a(e) {
                e = new n.AtomExSequenceEventInfo(e), E && E(e), e.player && e.player._onSequenceEvent && e.player._onSequenceEvent(e)
            }

            function s(e) {
                e = new n.AtomExBeatSyncInfo(e), S && S(e), e.player && e.player._onBeatSyncCallback && e.player._onBeatSync(e)
            }

            function o(e) {
                (e = new n.AtomExTrackTransitionInfo(e)).player && e.player._onTrackTransition && e.player._onTrackTransition(e)
            }

            function u(e) {
                (e = new n.AtomExBlockTransitionInfo(e)).player && e.player._onBlockTransition && e.player._onBlockTransition(e)
            }

            function h(t) {
                if (!x) {
                    switch (t = e(t, {
                        memorySize: 33554432,
                        audioContext: null,
                        numVoices: 32,
                        serverFrequency: 60,
                        parameterUpdateInterval: 1,
                        maxVirtualVoices: 64,
                        maxParameterBlocks: 1024,
                        maxVoiceLimitGroups: 16,
                        maxCategories: 16,
                        categoriesPerPlayback: 4,
                        coordinateSystem: "right-handed",
                        errorHandler: k
                    }), n.adx2module = f = r({
                        TOTAL_MEMORY: t.memorySize
                    }), c = f.asm, d = f.CriNcItf = {
                        audioContext: t.audioContext
                    }, p = f.stackAlloc, v = f.stackSave, m = f.stackRestore, _ = f.UTF8ToString, b = f.HEAPU8, g = f.HEAP32, y = f.HEAPU32, A = f.HEAPF32, f.onErrorEvent = t.errorHandler, f.onAudioProcess = i, f.onSequenceEvent = a, f.onBeatSync = s, f.onTrackTransition = o, f.onBlockTransition = u, t.coordinateSystem) {
                        case "left-handed":
                            var h = 0;
                            break;
                        case "right-handed":
                            h = 1;
                            break;
                        default:
                            throw "[CRIWARE] invalid coodinate system:" + t.coordinateSystem
                    }
                    c._$HM(t.serverFrequency, t.parameterUpdateInterval, t.maxVirtualVoices, t.maxParameterBlocks, t.maxVoiceLimitGroups, t.maxCategories, t.categoriesPerPlayback, h), n.AtomExVoicePool.defaultVoicePool = n.AtomExVoicePool.allocateWebAudioVoicePool(t.numVoices), x = !0
                }
            }

            function l(e) {
                return 5 === e || 6 === e || 28 === e || 31 === e || 32 === e
            }
            var f, c, d, p, v, m, _, b, g, y, A, w, x = !1,
                k = function(e) {
                    "E" === e[0] || e[0]
                },
                T = [],
                E = null,
                S = null;
            n.AtomEx = {}, n.AtomEx.init = function(e) {
                    h(e)
                }, n.AtomEx.shutdown = function() {
                    c._$HG(), x = !1
                }, n.AtomEx.getMemoryInfo = function() {
                    var e = v(),
                        t = p(8);
                    return c._getMemoryInfo(t, t + 4), t = {
                        freeSize: y[t + 0 >> 2],
                        totalSize: y[t + 4 >> 2]
                    }, m(e), t
                }, n.AtomEx.setRequestHeader = function(e, i) {
                    var r = v();
                    c._$IC(t(e), t(i)), m(r)
                }, n.AtomEx.setRequestTimeout = function(e) {
                    c._$ID(e)
                }, n.AtomEx.registerAcfFile = function(e, t, i, r) {
                    h(), w && n.AtomEx.unregisterAcf();
                    var a = n.FsLoader.create();
                    a.loadRaw(r, e, function() {
                        var e = a.data,
                            i = a.dataSize;
                        w = e, a.data = null, a.destroy(), c._$HN(e, i, 0, 0), t && t()
                    }, function() {
                        a.destroy(), i && i()
                    })
                }, n.AtomEx.registerAcfData = function(e) {
                    h(), w && n.AtomEx.unregisterAcf();
                    var t = c._malloc(e.byteLength);
                    f.HEAP8.set(new Uint8Array(e), t), c._$HN(t, e.byteLength, 0, 0), w = t
                }, n.AtomEx.unregisterAcf = function() {
                    h(), c._$HS(), w && (c._free(w), w = null)
                }, n.AtomEx.attachDspBusSetting = function(e) {
                    h();
                    var i = v();
                    c._$HE(t(e)), m(i)
                }, n.AtomEx.detachDspBusSetting = function() {
                    h(), c._$HF()
                }, n.AtomEx.applyDspBusSnapshot = function(e, i) {
                    var r = v();
                    c._$HD(t(e), i), m(r)
                }, n.AtomEx.getAppliedDspBusSnapshotName = function() {
                    var e = c._$HH();
                    return 0 !== e ? _(e) : null
                }, n.AtomEx.attachBusAnalyzer = function(e, t, i) {
                    h();
                    var r = v(),
                        n = p(8);
                    g[n + 0 >> 2] = t, g[n + 4 >> 2] = i, c._$CG(e, n), m(r)
                }, n.AtomEx.detachBusAnalyzer = function(e) {
                    h(), c._$CH(e)
                }, n.AtomEx.getBusAnalyzerInfo = function(e) {
                    h();
                    var t = v(),
                        i = p(100);
                    return c._$CI(e, i), m(t), {
                        rms: A[i + 4 >> 2],
                        peak: A[i + 36 >> 2],
                        peakHold: A[i + 68 >> 2]
                    }
                }, n.AtomEx.setDecryptionKey = function(e) {
                    h();
                    var i = v();
                    c._$AG(t(e)), m(i)
                }, n.AtomEx.suspendWebAudio = function() {
                    c._$HR()
                }, n.AtomEx.resumeWebAudio = function() {
                    c._$HO()
                }, n.AtomEx.unlockWebAudio = function() {
                    d.unlockWebAudio()
                }, n.AtomEx.getAudioContext = function() {
                    return d.audioContext
                }, n.AtomEx.getBusNode = function(e) {
                    return (e = d.audioBuses[e]) ? e.input : null
                }, n.AtomEx.getAllBusNodes = function() {
                    var e, t = Array(d.audioBuses.length);
                    for (e in d.audioBuses) t[e] = d.audioBuses[e].input;
                    return t
                }, n.AtomEx.setMasterVolume = function(e) {
                    d.setMasterVolume()
                }, n.AtomEx.setBusVolume = function(e, t) {
                    c._$IE(busName)
                }, n.AtomEx.setSequenceEventCallback = function(e) {
                    h(), E = e, c._$HB()
                }, n.AtomEx.setBeatSyncCallback = function(e) {
                    h(), S = e, c._$GZ()
                }, n.AtomEx.getNumGameVariables = function() {
                    return c._$HL()
                }, n.AtomEx.getGameVariableInfo = function(e) {
                    var t = v(),
                        i = p(100);
                    return e = c._$HK(e, i) ? new n.AtomExGameVariableInfo(i) : null, m(t), e
                }, n.AtomEx.getGameVariableById = function(e) {
                    return c._$HI(e)
                }, n.AtomEx.getGameVariableByName = function(e) {
                    var i = v();
                    return e = c._$HJ(t(e)), m(i), _(e)
                }, n.AtomEx.setGameVariableById = function(e, t) {
                    c._$HP(e, t)
                }, n.AtomEx.setGameVariableByName = function(e, i) {
                    var r = v();
                    c._$HQ(t(e), i), m(r)
                }, n.AtomExCategoryInfo = function(e) {
                    e = new DataView(b.buffer, e, 20), this.groupNo = e.getUint32(0, !0), this.id = e.getUint32(4, !0);
                    var t = e.getUint32(8, !0);
                    this.name = t ? _(t) : null, this.numCueLimits = e.getUint32(12, !0), this.volume = e.getFloat32(16, !0)
                }, n.AtomExAcf = {}, n.AtomExAcf.getNumCategories = function() {
                    return c._$CE()
                }, n.AtomExAcf.getNumCategoriesPerPlayback = function() {
                    return c._$CF()
                }, n.AtomExAcf.getCategoryInfo = function(e) {
                    var t = v(),
                        i = p(20);
                    return e = c._$CB(e, i) ? new n.AtomExCategoryInfo(i) : null, m(t), e
                }, n.AtomExAcf.getCategoryInfoByName = function(e) {
                    var i = v(),
                        r = p(20);
                    return e = c._$CD(t(e), r) ? new n.AtomExCategoryInfo(r) : null, m(i), e
                }, n.AtomExAcf.getCategoryInfoById = function(e) {
                    var t = v(),
                        i = p(20);
                    return e = c._$CC(e, i) ? new n.AtomExCategoryInfo(i) : null, m(t), e
                }, n.AtomExPanType = {
                    UNKNOWN: -1,
                    PAN3D: 0,
                    POS3D: 1,
                    AUTO: 2
                }, n.AtomExBiquadFilterType = {
                    OFF: 0,
                    LOWPASS: 1,
                    HIGHPASS: 2,
                    NOTCH: 3,
                    LOWSHELF: 4,
                    HIGHSHELF: 5,
                    PEAKING: 6
                }, n.AtomExResumeMode = {
                    ALL_PLAYBACK: 0,
                    PAUSED_PLAYBACK: 1,
                    PREPARED_PLAYBACK: 2
                }, n.AtomExSilentMode = {
                    NORMAL: 0,
                    STOP: 1,
                    VIRTUAL: 2,
                    VIRTUAL_RETRIGGER: 3
                }, n.AtomExVoiceAllocationMethod = {
                    ALLOCATE_VOICE_ONCE: 0,
                    RETRY_VOICE_ALLOCATION: 1
                }, n.AtomExVoiceControlMethod = {
                    PREFER_LAST: 0,
                    PREFER_FIRST: 1,
                    PREFER_DATA: 2
                }, n.AtomExParameterId = {
                    VOLUME: 0,
                    PITCH: 1,
                    PAN3D_ANGLE: 2,
                    PAN3D_DISTANCE: 3,
                    PAN3D_VOLUME: 4,
                    PAN_TYPE: 5,
                    PAN_SPEAKER_TYPE: 6,
                    PAN_CH0: 7,
                    PAN_CH1: 8,
                    BUS_SEND_LEVEL_0: 9,
                    BUS_SEND_LEVEL_1: 10,
                    BUS_SEND_LEVEL_2: 11,
                    BUS_SEND_LEVEL_3: 12,
                    BUS_SEND_LEVEL_4: 13,
                    BUS_SEND_LEVEL_5: 14,
                    BUS_SEND_LEVEL_6: 15,
                    BUS_SEND_LEVEL_7: 16,
                    BANDPASS_FILTER_COF_LOW: 17,
                    BANDPASS_FILTER_COF_HIGH: 18,
                    BIQUAD_FILTER_TYPE: 19,
                    BIQUAD_FILTER_FREQ: 20,
                    BIQUAD_FILTER_Q: 21,
                    BIQUAD_FILTER_GAIN: 22,
                    ENVELOPE_ATTACK_TIME: 23,
                    ENVELOPE_HOLD_TIME: 24,
                    ENVELOPE_DECAY_TIME: 25,
                    ENVELOPE_RELEASE_TIME: 26,
                    ENVELOPE_SUSTAIN_LEVEL: 27,
                    START_TIME: 28,
                    PRIORITY: 31,
                    SILENT_MODE: 32,
                    DSP_PARAMETER_0: 33,
                    DSP_PARAMETER_1: 34,
                    DSP_PARAMETER_2: 35,
                    DSP_PARAMETER_3: 36,
                    DSP_PARAMETER_4: 37,
                    DSP_PARAMETER_5: 38,
                    DSP_PARAMETER_6: 39,
                    DSP_PARAMETER_7: 40
                }, n.AtomExSourceType = {
                    NONE: 0,
                    CUE_ID: 1,
                    CUE_NAME: 2,
                    CUE_INDEX: 3,
                    DATA: 4,
                    FILE: 5
                }, n.AtomExAcb = function() {
                    this.handle = null
                }, n.AtomExAcb.loadAcbFile = function(e, t, i, r, a, s) {
                    h();
                    var o = new n.AtomExAcb;
                    return o.oncomplete = i, o.onerror = r, o._loadstart(e, t, a, s), o
                }, n.AtomExAcb.instances = {}, n.AtomExAcb.prototype = {
                    _loadstart: function(e, i, r, n) {
                        if (!this.loader) {
                            n = n ? n.handle : 0;
                            var a = v(),
                                s = p(8);
                            g[s + 0 >> 2] = r, this.loader = c._$BL(s), c._$BO(this.loader, n, t(e), n, t(i)), this._loadupdate(), m(a)
                        }
                    },
                    _loadstop: function() {
                        this.loader && (c._$BM(this.loader), delete this.loader), delete this.oncomplete, delete this.onerror
                    },
                    _loadupdate: function() {
                        switch (c._$BN(this.loader)) {
                            case 2:
                                return this.handle = c._$BP(this.loader), n.AtomExAcb.instances[this.handle] = this, this.oncomplete && this.oncomplete(), void this._loadstop();
                            case 3:
                                return this.onerror && this.onerror(), void this._loadstop()
                        }
                        setTimeout(this._loadupdate.bind(this), 10)
                    },
                    release: function() {
                        this.handle && (delete n.AtomExAcb.instances[this.handle], c._$CA(this.handle), this.handle = 0)
                    },
                    getLoadProgress: function() {
                        return this.handle ? c._$BV(this.handle) : 0
                    },
                    getNumCues: function() {
                        return c._$BY(this.handle)
                    },
                    existsId: function(e) {
                        return 0 != c._$BQ(this.handle, e)
                    },
                    existsName: function(e) {
                        var i = v();
                        return e = c._$BR(this.handle, t(e)), m(i), 0 != e
                    },
                    getCueInfoByIndex: function(e) {
                        var t = v(),
                            i = p(100);
                        return e = c._$BT(this.handle, e, i) ? new n.AtomExCueInfo(i) : null, m(t), e
                    },
                    getCueInfoById: function(e) {
                        var t = v(),
                            i = p(100);
                        return e = c._$BS(this.handle, e, i) ? new n.AtomExCueInfo(i) : null, m(t), e
                    },
                    getCueInfoByName: function(e) {
                        var i = v(),
                            r = p(100);
                        return e = c._$BU(this.handle, t(e), r) ? new n.AtomExCueInfo(r) : null, m(i), e
                    },
                    getNumCuePlayingCountById: function(e) {
                        return c._$BW(e)
                    },
                    getNumCuePlayingCountByName: function(e) {
                        var i = v();
                        return e = c._$BX(t(e)), m(i), e
                    }
                }, n.AtomExCueInfo = function(e) {
                    e = new DataView(b.buffer, e, 116), this.id = e.getInt32(0, !0), this.type = e.getInt32(4, !0);
                    var t = e.getUint32(8, !0);
                    for (this.name = t ? _(t) : null, this.userData = (t = e.getUint32(12, !0)) ? _(t) : null, this.length = e.getInt32(16, !0), this.categories = Array(16), t = 0; 16 > t; t++) this.categories[t] = e.getInt16(24 + 2 * t, !0);
                    this.numLimits = e.getInt16(56, !0), this.numBlocks = e.getUint16(58, !0), this.numTracks = e.getUint16(60, !0), this.numRelatedWaveforms = e.getUint16(62, !0), this.priority = e.getUint8(64), this.headerVisibility = e.getUint8(65), this.ignorePlayerParameter = e.getUint8(66), this.probability = e.getUint8(67), this.panType = e.getInt32(68, !0), this.pos3dInfo = {
                        coneInsideAngle: e.getFloat32(72, !0),
                        coneOutsideAngle: e.getFloat32(76, !0),
                        minDistance: e.getFloat32(80, !0),
                        maxDistance: e.getFloat32(84, !0),
                        dopplerFactor: e.getFloat32(88, !0),
                        distanceAisacControl: e.getUint16(92, !0),
                        listenerBaseAngleAisacControl: e.getUint16(94, !0),
                        sourceBaseAngleAisacControl: e.getUint16(96, !0),
                        listenerBaseElevationAngleAisacControl: e.getUint16(98, !0),
                        sourceBaseElevationAngleAisacControl: e.getUint16(100, !0)
                    }, t = e.getUint32(104, !0), this.gameVariableInfo = {
                        name: t ? _(t) : null,
                        id: e.getInt32(108, !0),
                        value: e.getFloat32(112, !0)
                    }
                }, n.AtomExFormatInfo = function(e) {
                    this.format = g[e >> 2], this.samplingRate = g[e + 4 >> 2], this.numSamples = g[e + 8 >> 2], this.loopOffset = g[e + 16 >> 2], this.loopLength = g[e + 24 >> 2], this.numChannels = g[e + 32 >> 2]
                }, n.AtomExSequenceEventInfo = function(e) {
                    this.position = g[e >> 2], this.player = n.AtomExPlayer.instances[g[e + 8 >> 2]], this.string = _(g[e + 12 >> 2]), this.playback = new n.AtomExPlayback(g[e + 16 >> 2]), this.type = g[e + 20 >> 2], this.value = g[e + 24 >> 2]
                }, n.AtomExBeatSyncInfo = function(e) {
                    this.player = n.AtomExPlayer.instances[g[e >> 2]], this.playback = new n.AtomExPlayback(g[e + 4 >> 2]), this.barCount = g[e + 8 >> 2], this.beatCount = g[e + 12 >> 2], this.beatProgress = A[e + 16 >> 2], this.bpm = A[e + 20 >> 2], this.offset = A[e + 24 >> 2], this.numBeats = A[e + 28 >> 2]
                }, n.AtomExTrackTransitionInfo = function(e) {
                    this.player = n.AtomExPlayer.instances[g[e >> 2]], this.playback = new n.AtomExPlayback(g[e + 4 >> 2]), this.selector = _(g[e + 8 >> 2]), this.label = _(g[e + 12 >> 2])
                }, n.AtomExBlockTransitionInfo = function(e) {
                    this.player = n.AtomExPlayer.instances[g[e >> 2]], this.playback = new n.AtomExPlayback(g[e + 4 >> 2]), this.blockIndex = g[e + 8 >> 2]
                }, n.AtomExGameVariableInfo = function(e) {
                    this.name = _(g[e >> 2]), this.id = g[e + 4 >> 2], this.value = g[e + 8 >> 2]
                }, n.AtomExSourceInfo = function(e) {
                    switch (this.type = g[e >> 2], this.type) {
                        case 1:
                            this.acb = n.AtomExAcb.instances[g[e + 4 >> 2]], this.cueId = g[e + 8 >> 2];
                            break;
                        case 2:
                            this.acb = n.AtomExAcb.instances[g[e + 4 >> 2]], this.cueName = _(g[e + 8 >> 2]);
                            break;
                        case 3:
                            this.acb = n.AtomExAcb.instances[g[e + 4 >> 2]], this.cueIndex = g[e + 8 >> 2]
                    }
                }, n.AtomExVector = function(e, t, i) {
                    this.x = e, this.y = t, this.z = i
                }, n.AtomExPlayer = function(e) {
                    this.handle = e
                }, n.AtomExPlayer.create = function(t) {
                    t = e(t, {
                        voiceAllocationMethod: 0,
                        maxPathStrings: 0,
                        maxPath: 0,
                        maxAisacs: 8,
                        updatesTime: !0,
                        enableAudioSyncedTimer: !1
                    });
                    var i = v(),
                        r = p(20);
                    return g[r + 0 >> 2] = t.voiceAllocationMethod, g[r + 4 >> 2] = t.maxPathStrings, g[r + 8 >> 2] = t.maxPath, g[r + 12 >> 2] = t.maxAisacs, g[r + 16 >> 2] = t.updatesTime, g[r + 20 >> 2] = t.enableAudioSyncedTimer, t = c._$EE(r, 0, 0), m(i), t ? (i = new n.AtomExPlayer(t), n.AtomExPlayer.instances[t] = i) : null
                }, n.AtomExPlayer.instances = {}, n.AtomExPlayer.prototype = {
                    destroy: function() {
                        this.handle && (delete n.AtomExPlayer.instances[this.handle], c._$EF(this.handle), this.handle = null)
                    },
                    setCueId: function(e, t) {
                        "number" != typeof t || c._$FJ(this.handle, e ? e.handle : 0, t)
                    },
                    setCueIndex: function(e, t) {
                        "number" != typeof t || c._$FK(this.handle, e ? e.handle : 0, t)
                    },
                    setCueName: function(e, i) {
                        if ("string" != typeof i);
                        else {
                            var r = v();
                            c._$FL(this.handle, e ? e.handle : 0, t(i)), m(r)
                        }
                    },
                    setFile: function(e) {
                        if ("string" != typeof e);
                        else {
                            var i = v();
                            c._$FW(this.handle, 0, t(e)), c._$FY(this.handle, 9), m(i)
                        }
                    },
                    prepare: function() {
                        return new n.AtomExPlayback(c._$EU(this.handle))
                    },
                    start: function() {
                        return new n.AtomExPlayback(c._$GP(this.handle))
                    },
                    stop: function() {
                        c._$GQ(this.handle)
                    },
                    stopWithoutReleaseTime: function() {
                        c._$GR(this.handle)
                    },
                    pause: function(e) {
                        c._$ET(this.handle, e)
                    },
                    resume: function(e) {
                        c._$EX(this.handle)
                    },
                    isPaused: function() {
                        return 0 != c._$ER(this.handle)
                    },
                    getTime: function() {
                        return c._$EP(this.handle)
                    },
                    getStatus: function() {
                        return c._$EO(this.handle)
                    },
                    setStartTime: function(e) {
                        c._$GK(this.handle, e)
                    },
                    update: function(e) {
                        c._$GT(this.handle, e.id)
                    },
                    updateAll: function() {
                        c._$GU(this.handle)
                    },
                    resetParameters: function() {
                        c._$EW(this.handle)
                    },
                    getParameter: function(e) {
                        return l(e) ? c._$EM(this.handle, e) : c._$EL(this.handle, e)
                    },
                    setVolume: function(e) {
                        c._$GN(this.handle, e)
                    },
                    setPitch: function(e) {
                        c._$GE(this.handle, e)
                    },
                    setPan3dAngle: function(e) {
                        c._$GA(this.handle, e)
                    },
                    setPan3dInteriorDistance: function(e) {
                        c._$GB(this.handle, e)
                    },
                    setPan3dVolume: function(e) {
                        c._$GC(this.handle, e)
                    },
                    setPanType: function(e) {
                        c._$GD(this.handle, e)
                    },
                    setBandpassFilterParameters: function(e, t) {
                        c._$FC(this.handle, e, t)
                    },
                    setBiquadFilterParameters: function(e, t, i, r) {
                        c._$FD(this.handle, e, t, i, r)
                    },
                    setBusSendLevel: function(e, t) {
                        c._$FE(this.handle, e, t)
                    },
                    setBusSendLevelOffset: function(e, t) {
                        c._$FF(this.handle, e, t)
                    },
                    setAisacControlById: function(e, t) {
                        c._$FA(this.handle, e, t)
                    },
                    setAisacControlByName: function(e, i) {
                        var r = v();
                        c._$FB(this.handle, t(e), i), m(r)
                    },
                    set3dSource: function(e) {
                        c._$EZ(this.handle, e ? e.handle : 0)
                    },
                    set3dListener: function(e) {
                        c._$EY(this.handle, e ? e.handle : 0)
                    },
                    setVoicePriority: function(e) {
                        c._$GM(this.handle, e)
                    },
                    setVoiceControlMethod: function(e) {
                        c._$GL(this.handle, e)
                    },
                    setCategoryById: function(e) {
                        c._$FG(this.handle, e)
                    },
                    setCategoryByName: function(e) {
                        var i = v();
                        c._$FH(this.handle, t(e)), m(i)
                    },
                    unsetCategory: function() {
                        c._$GS(this.handle)
                    },
                    setSilentMode: function(e) {
                        c._$GJ(e)
                    },
                    setCuePriority: function(e) {
                        c._$FM(this.handle, e)
                    },
                    setEnvelopeAttackTime: function(e) {
                        c._$FN(this.handle, e)
                    },
                    setEnvelopeHoldTime: function(e) {
                        c._$FP(this.handle, e)
                    },
                    setEnvelopeDecayTime: function(e) {
                        c._$FO(this.handle, e)
                    },
                    setEnvelopeReleaseTime: function(e) {
                        c._$FQ(this.handle, e)
                    },
                    setEnvelopeSustainLevel: function(e) {
                        c._$FR(this.handle, e)
                    },
                    attachFader: function() {
                        c._$EC(this.handle, 0, 0)
                    },
                    detachFader: function() {
                        c._$EG(this.handle)
                    },
                    setFadeOutTime: function(e) {
                        c._$FV(this.handle, e)
                    },
                    getFadeOutTime: function() {
                        return c._$EK(this.handle)
                    },
                    setFadeInTime: function(e) {
                        c._$FT(this.handle, e)
                    },
                    getFadeInTime: function() {
                        return c._$EI(this.handle)
                    },
                    setFadeInStartOffset: function(e) {
                        c._$FS(this.handle, e)
                    },
                    getFadeInStartOffset: function() {
                        return c._$EH(this.handle)
                    },
                    setFadeOutEndDelay: function(e) {
                        c._$FU(this.handle, e)
                    },
                    getFadeOutEndDelay: function() {
                        return c._$EJ(this.handle)
                    },
                    isFading: function() {
                        return 0 != c._$EQ(this.handle)
                    },
                    resetFaderParameters: function() {
                        c._$EV(this.handle)
                    },
                    setFirstBlockIndex: function(e) {
                        c._$FX(this.handle, e)
                    },
                    setSelectorLabel: function(e, i) {
                        var r = v();
                        c._$GH(this.handle, t(e), t(i)), m(r)
                    },
                    clearSelectorLabels: function() {
                        c._$ED(this.handle)
                    },
                    setRandomSeed: function(e) {
                        c._$GF(this.handle, e)
                    },
                    limitLoopCount: function(e) {
                        c._$ES(this.handle, e)
                    },
                    on: function(e, t) {
                        this._setEventListener(e, t)
                    },
                    off: function(e) {
                        this._setEventListener(e, null)
                    },
                    _setEventListener: function(e, t) {
                        switch (e) {
                            case "sequenceEvent":
                                this._onSequenceEvent = t, c._$HB();
                                break;
                            case "beatSync":
                                this._onBeatSync = t, c._$GZ();
                                break;
                            case "trackTransition":
                                this._onTrackTransition = t, c._$HC();
                                break;
                            case "blockTransition":
                                this._onBlockTransition = t, c._$HA(this.handle);
                                break;
                            case "process":
                                this._onProcess = t, 0 > (e = T).indexOf(this) && e.push(this);
                                break;
                            case "statusChanged":
                                this._onStatusChanged = t, 0 > (e = T).indexOf(this) && e.push(this)
                        }
                    },
                    _dispatchEvents: function() {
                        if (null === this.handle) return !1;
                        if (this._onProcess && this._onProcess(), this._onStatusChanged) {
                            var e = this.getStatus(),
                                t = this._lastStatus;
                            void 0 !== t && t !== e && this._onStatusChanged(e), this._lastStatus = e
                        }
                        return !0
                    }
                }, n.AtomExPlayer.Status = {
                    STOP: 0,
                    PREP: 1,
                    PLAYING: 2,
                    PLAYEND: 3,
                    ERROR: 4
                }, n.AtomExPlayback = function(e) {
                    this.id = e
                }, n.AtomExPlayback.prototype = {
                    stop: function() {
                        c._$EA(this.id)
                    },
                    stopWithoutReleaseTime: function() {
                        c._$EB(this.id)
                    },
                    pause: function(e) {
                        c._$DX(this.id, e)
                    },
                    resume: function(e) {
                        c._$DY(this.id, e)
                    },
                    isPaused: function() {
                        return 0 != c._$DW(this.id)
                    },
                    getStatus: function() {
                        return c._$DT(this.id)
                    },
                    getTime: function() {
                        return c._$DU(this.id)
                    },
                    getTimeSyncedWithAudio: function() {
                        return c._$DV(this.id)
                    },
                    getSequencePosition: function() {
                        return c._$DR(this.id)
                    },
                    getFormatInfo: function() {
                        var e = v(),
                            t = p(40);
                        return t = c._$DM(this.id, t) ? new n.AtomExFormatInfo(t) : null, m(e), t
                    },
                    setNextBlockIndex: function(e) {
                        c._$DZ(this.id, e)
                    },
                    getCurrentBlockIndex: function() {
                        return c._$DL(this.id)
                    },
                    getBeatSyncInfo: function() {
                        var e = v(),
                            t = p(24);
                        return t = c._$DK(this.id, t) ? new n.AtomExBeatSyncInfo(t) : null, m(e), t
                    },
                    getNumPlayedSamples: function() {
                        var e = v(),
                            t = p(12);
                        return c._$DN(this.id, t, t + 8), t = g[t >> 2], m(e), t
                    },
                    getSource: function() {
                        var e = v(),
                            t = p(16);
                        return t = c._$DS(this.id, t) ? new n.AtomExSourceInfo(t) : null, m(e), t
                    },
                    getParameter: function(e) {
                        if (3 === this.getStatus()) return null;
                        var t = v(),
                            i = p(4);
                        return l(e) ? (c._$DP(this.id, e, i), e = g[i >> 2]) : (c._$DO(this.id, e, i), e = A[i >> 2]), m(t), e
                    }
                }, n.AtomExPlayback.Status = {
                    PREP: 1,
                    PLAYING: 2,
                    REMOVED: 3
                }, n.AtomExCategory = {}, n.AtomExCategory.setVolumeById = function(e, t) {
                    c._$DG(e, t)
                }, n.AtomExCategory.setVolumeByName = function(e, i) {
                    var r = v();
                    c._$DH(t(e), i), m(r)
                }, n.AtomExCategory.getVolumeById = function(e) {
                    return c._$CO(e)
                }, n.AtomExCategory.getVolumeByName = function(e) {
                    var i = v();
                    return e = c._$CP(t(e)), m(i), e
                }, n.AtomExCategory.getTotalVolumeById = function(e) {
                    return c._$CM(e)
                }, n.AtomExCategory.getTotalVolumeByName = function(e) {
                    var i = v();
                    return e = c._$CN(t(e)), m(i), e
                }, n.AtomExCategory.pauseById = function(e, t) {
                    c._$CY(e, t)
                }, n.AtomExCategory.pauseByName = function(e, i) {
                    var r = v();
                    c._$CZ(t(e), i), m(r)
                }, n.AtomExCategory.isPausedById = function(e) {
                    c._$CY(e)
                }, n.AtomExCategory.isPausedByName = function(e) {
                    var i = v();
                    return e = c._$CT(t(e)), m(i), e
                }, n.AtomExCategory.muteById = function(e, t) {
                    c._$CW(e, t)
                }, n.AtomExCategory.muteByName = function(e, i) {
                    var r = v();
                    c._$CX(t(e), i), m(r)
                }, n.AtomExCategory.isMutedById = function(e) {
                    return c._$CQ(e)
                }, n.AtomExCategory.isMutedByName = function(e) {
                    var i = v();
                    return e = c._$CR(t(e)), m(i), e
                }, n.AtomExCategory.soloById = function(e, t, i) {
                    c._$DI(e, t)
                }, n.AtomExCategory.soloByName = function(e, i, r) {
                    r = v(), c._$DJ(t(e), i), m(r)
                }, n.AtomExCategory.isSoloedById = function(e) {
                    return c._$CU(e)
                }, n.AtomExCategory.isSoloedByName = function(e) {
                    var i = v();
                    return e = c._$CV(t(e)), m(i), e
                }, n.AtomExCategory.setFadeInTimeById = function(e, t) {
                    c._$DC(e, t)
                }, n.AtomExCategory.setFadeInTimeByName = function(e, i) {
                    var r = v();
                    c._$DD(t(e), i), m(r)
                }, n.AtomExCategory.setFadeOutTimeById = function(e, t) {
                    c._$DE(e, t)
                }, n.AtomExCategory.setFadeOutTimeByName = function(e, i) {
                    var r = v();
                    c._$DF(t(e), i), m(r)
                }, n.AtomExCategory.setAisacControlById = function(e, t, i) {
                    c._$DA(e, t, i)
                }, n.AtomExCategory.setAisacControlByName = function(e, i, r) {
                    var n = v();
                    c._$DB(t(e), i, r), m(n)
                }, n.AtomExCategory.getNumCuePlayingCountById = function(e) {
                    return c._$CK(e)
                }, n.AtomExCategory.getNumCuePlayingCountByName = function(e) {
                    var i = v();
                    return e = c._$CL(t(e)), m(i), e
                }, n.AtomExVoicePool = function(e) {
                    this.handle = e
                }, n.AtomExVoicePool.prototype = {
                    free: function() {
                        c._$GW(this.handle), this.handle = null
                    },
                    getNumUsedVoices: function() {
                        var e = v(),
                            t = p(8);
                        return c._$GY(this.handle, t, t + 4), t = g[t + 0 >> 2], m(e), t
                    },
                    getNumVoices: function() {
                        var e = v(),
                            t = p(8);
                        return c._$GY(this.handle, t, t + 4), t = g[t + 4 >> 2], m(e), t
                    }
                }, n.AtomExVoicePool.allocateWebAudioVoicePool = function(e, t) {
                    var i = v(),
                        r = p(16);
                    return g[r + 0 >> 2] = t, g[r + 4 >> 2] = e, g[r + 8 >> 2] = 2, g[r + 12 >> 2] = 1, e = c._$GV(r, null, 0), m(i), e ? new n.AtomExVoicePool(e) : null
                }, n.AtomExVoicePool.freeAll = function() {
                    c._$GX()
                }, n.AtomEx3dListener = function(e) {
                    this.handle = e
                }, n.AtomEx3dListener.prototype = {
                    destroy: function() {
                        this.handle && (c._$AI(this.handle), this.handle = null)
                    },
                    update: function() {
                        c._$AR(this.handle)
                    },
                    resetParameters: function() {
                        c._$AJ(this.handle)
                    },
                    setPosition: function(e) {
                        var t = v(),
                            i = p(12);
                        A[i + 0 >> 2] = e.x, A[i + 4 >> 2] = e.y, A[i + 8 >> 2] = e.z, c._$AP(this.handle, i), m(t)
                    },
                    setVelocity: function(e) {
                        var t = v(),
                            i = p(12);
                        A[i + 0 >> 2] = e.x, A[i + 4 >> 2] = e.y, A[i + 8 >> 2] = e.z, c._$AQ(this.handle, i), m(t)
                    },
                    setOrientation: function(e, t) {
                        var i = v(),
                            r = p(24);
                        A[r + 0 >> 2] = e.x, A[r + 4 >> 2] = e.y, A[r + 8 >> 2] = e.z, A[r + 12 >> 2] = t.x, A[r + 16 >> 2] = t.y, A[r + 20 >> 2] = t.z, c._$AO(this.handle, r, r + 12), m(i)
                    },
                    setDistanceFactor: function(e) {
                        c._$AL(this.handle, e)
                    },
                    setFocusPoint: function(e) {
                        var t = v(),
                            i = p(12);
                        A[i + 0 >> 2] = e.x, A[i + 4 >> 2] = e.y, A[i + 8 >> 2] = e.z, c._$AN(this.handle, i), m(t)
                    },
                    SetDistanceFocusLevel: function(e) {
                        c._$AM(this.handle, e)
                    },
                    SetDirectionFocusLevel: function(e) {
                        c._$AK(this.handle, e)
                    }
                }, n.AtomEx3dListener.create = function() {
                    var e = c._$AH(null, null, 0);
                    return e ? new n.AtomEx3dListener(e) : null
                }, n.AtomEx3dSource = function(e) {
                    this.handle = e
                }, n.AtomEx3dSource.prototype = {
                    destroy: function() {
                        this.handle && (c._$AX(this.handle), this.handle = null)
                    },
                    update: function() {
                        c._$BK(this.handle)
                    },
                    resetParameters: function() {
                        c._$AY(this.handle)
                    },
                    setPosition: function(e) {
                        var t = v(),
                            i = p(12);
                        A[i + 0 >> 2] = e.x, A[i + 4 >> 2] = e.y, A[i + 8 >> 2] = e.z, c._$BG(this.handle, i), m(t)
                    },
                    setVelocity: function(e) {
                        var t = v(),
                            i = p(12);
                        A[i + 0 >> 2] = e.x, A[i + 4 >> 2] = e.y, A[i + 8 >> 2] = e.z, c._$BI(this.handle, i), m(t)
                    },
                    setOrientation: function(e, t) {
                        var i = v(),
                            r = p(24);
                        A[r + 0 >> 2] = e.x, A[r + 4 >> 2] = e.y, A[r + 8 >> 2] = e.z, A[r + 12 >> 2] = t.x, A[r + 16 >> 2] = t.y, A[r + 20 >> 2] = t.z, c._$BF(this.handle, r, r + 12), m(i)
                    },
                    setConeParameter: function(e, t, i) {
                        c._$AZ(this.handle, e, t, i)
                    },
                    setMinMaxAttenuationDistance: function(e, t) {
                        c._$BE(this.handle, e, t)
                    },
                    setDopplerFactor: function(e) {
                        c._$BB(this.handle, e)
                    },
                    setVolume: function(e) {
                        c._$BJ(this.handle, e)
                    },
                    setMaxAngleAisacDelta: function(e) {
                        c._$BD(this.handle, e)
                    },
                    setDistanceAisacControlId: function(e) {
                        c._$BA(this.handle, e)
                    },
                    setListenerBasedAngleAisacControlId: function(e) {
                        this.setListenerBasedAzimuthAngleAisacControlId(this.handle, e)
                    },
                    setListenerBasedAzimuthAngleAisacControlId: function(e) {
                        c._$BC(this.handle, e)
                    },
                    setSourceBasedAngleAisacControlId: function(e) {
                        this.setSourceBasedAzimuthAngleAisacControlId(this.handle, e)
                    },
                    setSourceBasedAzimuthAngleAisacControlId: function(e) {
                        c._$BH(this.handle, e)
                    }
                }, n.AtomEx3dSource.create = function() {
                    var e = c._$AW(0, 0, 0);
                    return e ? new n.AtomEx3dSource(e) : null
                }, n.AtomEx3dSource.changeDefaultConeParameter = function(e, t, i) {
                    c._$AS(e, t, i)
                }, n.AtomEx3dSource.changeDefaultMinMaxAttenuationDistance = function(e, t) {
                    c._$AU(e, t)
                }, n.AtomEx3dSource.changeDefaultDopplerFactor = function(e) {
                    c._$AT(e)
                }, n.AtomEx3dSource.changeDefaultVolume = function(e) {
                    c._$AV(e)
                },
                function() {
                    n.AtomExMonitor = {};
                    var e = null;
                    n.AtomExMonitor.connect = function(i) {
                        i = "ws://" + (i || "localhost") + ":2002/criadx2-ingamepreview";
                        var r = v();
                        c._$IF(t(i)), m(r), c._$IG(0, 0, 0), e = setInterval(function() {
                            c._$IH()
                        }, 20)
                    }, n.AtomExMonitor.disconnect = function() {
                        e && (clearInterval(e), e = null), c._$II()
                    }, n.AtomExMonitor.isConnected = function() {
                        return 0 != c._$IJ()
                    }, n.AtomExMonitor.outputUserLog = function(e) {
                        var i = v();
                        c._$IK(t(e)), m(i)
                    }
                }(),
                function() {
                    function e(e, t, i) {
                        ! function r() {
                            switch (e.getStatus()) {
                                case 1:
                                    setTimeout(r, 10);
                                    break;
                                case 2:
                                    var n = v(),
                                        a = p(8);
                                    c._$HY(e.handle, a), 0 <= (a = g[a >> 2]) && (e.data = c._malloc(a + 1), e.dataSize = a, c._$IA(e.handle, 0, 0, a, 0, e.data, a, 0), t && t(), e.data && (c._free(e.data), e.data = null)), m(n);
                                    break;
                                case 3:
                                    i && i()
                            }
                        }()
                    }
                    n.FsLoader = function(e) {
                        if (!e) throw "invalid handle";
                        this.handle = e
                    }, n.FsLoader.create = function(e) {
                        e = v();
                        var t = p(4),
                            i = c._$HW(t);
                        return t = g[t >> 2], m(e), 0 === i ? new n.FsLoader(t) : null
                    }, n.FsLoader.prototype = {
                        destroy: function() {
                            this.data && (c._free(this.data), this.data = null), this.handle && (c._$HX(this.handle), this.handle = null)
                        },
                        getStatus: function() {
                            var e = v(),
                                t = p(4);
                            return t = 0 === c._$HZ(this.handle, t) ? g[t >> 2] : null, m(e), t
                        },
                        load: function(e, t, i, r) {
                            this.loadRaw(e, t, function() {
                                var e = b.buffer.slice(this.data, this.data + this.dataSize);
                                i(e)
                            }.bind(this), r)
                        },
                        loadById: function(e, t, i, r) {
                            this.loadRawById(e, t, function() {
                                var e = b.buffer.slice(this.data, this.data + this.dataSize);
                                i(e)
                            }.bind(this), r)
                        },
                        loadText: function(e, t, i, r) {
                            this.loadRaw(e, t, function() {
                                b[this.data + this.dataSize] = 0, i(_(this.data))
                            }.bind(this), r)
                        },
                        loadTextById: function(e, t, i, r) {
                            this.loadRawById(e, t, function() {
                                b[this.data + this.dataSize] = 0, i(_(this.data))
                            }.bind(this), r)
                        },
                        stop: function() {
                            c._$IL(this.handle)
                        },
                        loadRaw: function(i, r, n, a) {
                            i = i ? i.handle : 0;
                            var s = v();
                            c._$IB(this.handle, i, t(r)), c._$IA(this.handle, 0, 0, 0, 0, 0, 0), m(s), e(this, n, a)
                        },
                        loadRawById: function(i, r, n, a) {
                            i = i ? i.handle : 0;
                            var s = v();
                            c._$IM(this.handle, i, t(r)), c._$IA(this.handle, 0, 0, 0, 0, 0, 0), m(s), e(this, n, a)
                        }
                    }
                }(), n.FsLoader.Status = {
                    STOP: 0,
                    LOADING: 1,
                    PLAYING: 2,
                    ERROR: 3
                }
        }(), e.exports = n
    }, function(e, t, i) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var r = function() {
            function e(e, t) {
                for (var i = 0; i < t.length; i++) {
                    var r = t[i];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
                }
            }
            return function(t, i, r) {
                return i && e(t.prototype, i), r && e(t, r), t
            }
        }();

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

        function s(e, t) {
            return e._head ? (e._tail._next = t, t._prev = e._tail, e._tail = t) : (e._head = t, e._tail = t), t._owner = e, t
        }
        var o = function() {
            function e() {
                n(this, e), this._head = this._tail = void 0
            }
            return r(e, [{
                key: "handlers",
                value: function() {
                    var e = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0],
                        t = this._head;
                    if (e) return !!t;
                    for (var i = []; t;) i.push(t), t = t._next;
                    return i
                }
            }, {
                key: "has",
                value: function(e) {
                    if (!(e instanceof a)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");
                    return e._owner === this
                }
            }, {
                key: "dispatch",
                value: function() {
                    var e = this._head;
                    if (!e) return !1;
                    for (; e;) e._once && this.detach(e), e._fn.apply(e._thisArg, arguments), e = e._next;
                    return !0
                }
            }, {
                key: "add",
                value: function(e) {
                    var t = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                    if ("function" != typeof e) throw new Error("MiniSignal#add(): First arg must be a Function.");
                    return s(this, new a(e, !1, t))
                }
            }, {
                key: "once",
                value: function(e) {
                    var t = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                    if ("function" != typeof e) throw new Error("MiniSignal#once(): First arg must be a Function.");
                    return s(this, new a(e, !0, t))
                }
            }, {
                key: "detach",
                value: function(e) {
                    if (!(e instanceof a)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");
                    return e._owner !== this ? this : (e._prev && (e._prev._next = e._next), e._next && (e._next._prev = e._prev), e === this._head ? (this._head = e._next, null === e._next && (this._tail = null)) : e === this._tail && (this._tail = e._prev, this._tail._next = null), e._owner = null, this)
                }
            }, {
                key: "detachAll",
                value: function() {
                    var e = this._head;
                    if (!e) return this;
                    for (this._head = this._tail = null; e;) e._owner = null, e = e._next;
                    return this
                }
            }]), e
        }();
        o.MiniSignalBinding = a, t.default = o, e.exports = t.default
    }, , function(e, t) {
        var i;
        i = function() {
            return this
        }();
        try {
            i = i || new Function("return this")()
        } catch (e) {
            "object" == typeof window && (i = window)
        }
        e.exports = i
    }, , , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return n
        }), i.d(t, "b", function() {
            return a
        });
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const r = new WeakMap,
            n = e => (...t) => {
                const i = e(...t);
                return r.set(i, !0), i
            },
            a = e => "function" == typeof e && r.has(e)
    }, , , function(e, t, i) {
        "use strict";
        i.d(t, "b", function() {
            return s
        }), i.d(t, "a", function() {
            return o
        });
        var r = i(42),
            n = i(25);
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        const a = ` ${n.f} `;
        class s {
            constructor(e, t, i, r) {
                this.strings = e, this.values = t, this.type = i, this.processor = r
            }
            getHTML() {
                const e = this.strings.length - 1;
                let t = "",
                    i = !1;
                for (let r = 0; r < e; r++) {
                    const e = this.strings[r],
                        s = e.lastIndexOf("\x3c!--");
                    i = (s > -1 || i) && -1 === e.indexOf("--\x3e", s + 1);
                    const o = n.e.exec(e);
                    t += null === o ? e + (i ? a : n.g) : e.substr(0, o.index) + o[1] + o[2] + n.b + o[3] + n.f
                }
                return t += this.strings[e]
            }
            getTemplateElement() {
                const e = document.createElement("template");
                return e.innerHTML = this.getHTML(), e
            }
        }
        class o extends s {
            getHTML() {
                return `<svg>${super.getHTML()}</svg>`
            }
            getTemplateElement() {
                const e = super.getTemplateElement(),
                    t = e.content,
                    i = t.firstChild;
                return t.removeChild(i), Object(r.c)(t, i.firstChild), e
            }
        }
    }, , function(e, t) {
        e.exports = function(e) {
            return e.webpackPolyfill || (e.deprecate = function() {}, e.paths = [], 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
                }
            }), e.webpackPolyfill = 1), e
        }
    }, , , , function(e, t) {
        (function(t) {
            e.exports = t
        }).call(this, {})
    }, , , , , , , , , , , , , , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return a
        });
        var r = i(42),
            n = i(25);
        /**
         * @license
         * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
         * This code may only be used under the BSD style license found at
         * http://polymer.github.io/LICENSE.txt
         * The complete set of authors may be found at
         * http://polymer.github.io/AUTHORS.txt
         * The complete set of contributors may be found at
         * http://polymer.github.io/CONTRIBUTORS.txt
         * Code distributed by Google as part of the polymer project is also
         * subject to an additional IP rights grant found at
         * http://polymer.github.io/PATENTS.txt
         */
        class a {
            constructor(e, t, i) {
                this.__parts = [], this.template = e, this.processor = t, this.options = i
            }
            update(e) {
                let t = 0;
                for (const i of this.__parts) void 0 !== i && i.setValue(e[t]), t++;
                for (const e of this.__parts) void 0 !== e && e.commit()
            }
            _clone() {
                const e = r.a ? this.template.element.content.cloneNode(!0) : document.importNode(this.template.element.content, !0),
                    t = [],
                    i = this.template.parts,
                    a = document.createTreeWalker(e, 133, null, !1);
                let s, o = 0,
                    u = 0,
                    h = a.nextNode();
                for (; o < i.length;)
                    if (s = i[o], Object(n.d)(s)) {
                        for (; u < s.index;) u++, "TEMPLATE" === h.nodeName && (t.push(h), a.currentNode = h.content), null === (h = a.nextNode()) && (a.currentNode = t.pop(), h = a.nextNode());
                        if ("node" === s.type) {
                            const e = this.processor.handleTextExpression(this.options);
                            e.insertAfterNode(h.previousSibling), this.__parts.push(e)
                        } else this.__parts.push(...this.processor.handleAttributeExpressions(h, s.name, s.strings, this.options));
                        o++
                    } else this.__parts.push(void 0), o++;
                return r.a && (document.adoptNode(e), customElements.upgrade(e)), e
            }
        }
    }, function(e, t, i) {
        (function(i) {
            var r;
            /*!
             *  howler.js v2.2.1
             *  howlerjs.com
             *
             *  (c) 2013-2020, James Simpson of GoldFire Studios
             *  goldfirestudios.com
             *
             *  MIT License
             */
            ! function() {
                "use strict";
                var n = function() {
                    this.init()
                };
                n.prototype = {
                    init: function() {
                        var e = this || a;
                        return e._counter = 1e3, e._html5AudioPool = [], e.html5PoolSize = 10, e._codecs = {}, e._howls = [], e._muted = !1, e._volume = 1, e._canPlayEvent = "canplaythrough", e._navigator = "undefined" != typeof window && window.navigator ? window.navigator : null, e.masterGain = null, e.noAudio = !1, e.usingWebAudio = !0, e.autoSuspend = !0, e.ctx = null, e.autoUnlock = !0, e._setup(), e
                    },
                    volume: function(e) {
                        var t = this || a;
                        if (e = parseFloat(e), t.ctx || d(), void 0 !== e && e >= 0 && e <= 1) {
                            if (t._volume = e, t._muted) return t;
                            t.usingWebAudio && t.masterGain.gain.setValueAtTime(e, a.ctx.currentTime);
                            for (var i = 0; i < t._howls.length; i++)
                                if (!t._howls[i]._webAudio)
                                    for (var r = t._howls[i]._getSoundIds(), n = 0; n < r.length; n++) {
                                        var s = t._howls[i]._soundById(r[n]);
                                        s && s._node && (s._node.volume = s._volume * e)
                                    }
                            return t
                        }
                        return t._volume
                    },
                    mute: function(e) {
                        var t = this || a;
                        t.ctx || d(), t._muted = e, t.usingWebAudio && t.masterGain.gain.setValueAtTime(e ? 0 : t._volume, a.ctx.currentTime);
                        for (var i = 0; i < t._howls.length; i++)
                            if (!t._howls[i]._webAudio)
                                for (var r = t._howls[i]._getSoundIds(), n = 0; n < r.length; n++) {
                                    var s = t._howls[i]._soundById(r[n]);
                                    s && s._node && (s._node.muted = !!e || s._muted)
                                }
                        return t
                    },
                    stop: function() {
                        for (var e = this || a, t = 0; t < e._howls.length; t++) e._howls[t].stop();
                        return e
                    },
                    unload: function() {
                        for (var e = this || a, t = e._howls.length - 1; t >= 0; t--) e._howls[t].unload();
                        return e.usingWebAudio && e.ctx && void 0 !== e.ctx.close && (e.ctx.close(), e.ctx = null, d()), e
                    },
                    codecs: function(e) {
                        return (this || a)._codecs[e.replace(/^x-/, "")]
                    },
                    _setup: function() {
                        var e = this || a;
                        if (e.state = e.ctx && e.ctx.state || "suspended", e._autoSuspend(), !e.usingWebAudio)
                            if ("undefined" != typeof Audio) try {
                                void 0 === (new Audio).oncanplaythrough && (e._canPlayEvent = "canplay")
                            } catch (t) {
                                e.noAudio = !0
                            } else e.noAudio = !0;
                        try {
                            (new Audio).muted && (e.noAudio = !0)
                        } catch (e) {}
                        return e.noAudio || e._setupCodecs(), e
                    },
                    _setupCodecs: function() {
                        var e = this || a,
                            t = null;
                        try {
                            t = "undefined" != typeof Audio ? new Audio : null
                        } catch (t) {
                            return e
                        }
                        if (!t || "function" != typeof t.canPlayType) return e;
                        var i = t.canPlayType("audio/mpeg;").replace(/^no$/, ""),
                            r = e._navigator && e._navigator.userAgent.match(/OPR\/([0-6].)/g),
                            n = r && parseInt(r[0].split("/")[1], 10) < 33;
                        return e._codecs = {
                            mp3: !(n || !i && !t.canPlayType("audio/mp3;").replace(/^no$/, "")),
                            mpeg: !!i,
                            opus: !!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""),
                            ogg: !!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                            oga: !!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                            wav: !!(t.canPlayType('audio/wav; codecs="1"') || t.canPlayType("audio/wav")).replace(/^no$/, ""),
                            aac: !!t.canPlayType("audio/aac;").replace(/^no$/, ""),
                            caf: !!t.canPlayType("audio/x-caf;").replace(/^no$/, ""),
                            m4a: !!(t.canPlayType("audio/x-m4a;") || t.canPlayType("audio/m4a;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""),
                            m4b: !!(t.canPlayType("audio/x-m4b;") || t.canPlayType("audio/m4b;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""),
                            mp4: !!(t.canPlayType("audio/x-mp4;") || t.canPlayType("audio/mp4;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""),
                            weba: !!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                            webm: !!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                            dolby: !!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ""),
                            flac: !!(t.canPlayType("audio/x-flac;") || t.canPlayType("audio/flac;")).replace(/^no$/, "")
                        }, e
                    },
                    _unlockAudio: function() {
                        var e = this || a;
                        if (!e._audioUnlocked && e.ctx) {
                            e._audioUnlocked = !1, e.autoUnlock = !1, e._mobileUnloaded || 44100 === e.ctx.sampleRate || (e._mobileUnloaded = !0, e.unload()), e._scratchBuffer = e.ctx.createBuffer(1, 1, 22050);
                            var t = function(i) {
                                for (; e._html5AudioPool.length < e.html5PoolSize;) try {
                                    var r = new Audio;
                                    r._unlocked = !0, e._releaseHtml5Audio(r)
                                } catch (i) {
                                    e.noAudio = !0;
                                    break
                                }
                                for (var n = 0; n < e._howls.length; n++)
                                    if (!e._howls[n]._webAudio)
                                        for (var a = e._howls[n]._getSoundIds(), s = 0; s < a.length; s++) {
                                            var o = e._howls[n]._soundById(a[s]);
                                            o && o._node && !o._node._unlocked && (o._node._unlocked = !0, o._node.load())
                                        }
                                e._autoResume();
                                var u = e.ctx.createBufferSource();
                                u.buffer = e._scratchBuffer, u.connect(e.ctx.destination), void 0 === u.start ? u.noteOn(0) : u.start(0), "function" == typeof e.ctx.resume && e.ctx.resume(), u.onended = function() {
                                    u.disconnect(0), e._audioUnlocked = !0, document.removeEventListener("touchstart", t, !0), document.removeEventListener("touchend", t, !0), document.removeEventListener("click", t, !0);
                                    for (var i = 0; i < e._howls.length; i++) e._howls[i]._emit("unlock")
                                }
                            };
                            return document.addEventListener("touchstart", t, !0), document.addEventListener("touchend", t, !0), document.addEventListener("click", t, !0), e
                        }
                    },
                    _obtainHtml5Audio: function() {
                        var e = this || a;
                        if (e._html5AudioPool.length) return e._html5AudioPool.pop();
                        var t = (new Audio).play();
                        return t && "undefined" != typeof Promise && (t instanceof Promise || "function" == typeof t.then) && t.catch(function() {}), new Audio
                    },
                    _releaseHtml5Audio: function(e) {
                        var t = this || a;
                        return e._unlocked && t._html5AudioPool.push(e), t
                    },
                    _autoSuspend: function() {
                        var e = this;
                        if (e.autoSuspend && e.ctx && void 0 !== e.ctx.suspend && a.usingWebAudio) {
                            for (var t = 0; t < e._howls.length; t++)
                                if (e._howls[t]._webAudio)
                                    for (var i = 0; i < e._howls[t]._sounds.length; i++)
                                        if (!e._howls[t]._sounds[i]._paused) return e;
                            return e._suspendTimer && clearTimeout(e._suspendTimer), e._suspendTimer = setTimeout(function() {
                                if (e.autoSuspend) {
                                    e._suspendTimer = null, e.state = "suspending";
                                    var t = function() {
                                        e.state = "suspended", e._resumeAfterSuspend && (delete e._resumeAfterSuspend, e._autoResume())
                                    };
                                    e.ctx.suspend().then(t, t)
                                }
                            }, 3e4), e
                        }
                    },
                    _autoResume: function() {
                        var e = this;
                        if (e.ctx && void 0 !== e.ctx.resume && a.usingWebAudio) return "running" === e.state && "interrupted" !== e.ctx.state && e._suspendTimer ? (clearTimeout(e._suspendTimer), e._suspendTimer = null) : "suspended" === e.state || "running" === e.state && "interrupted" === e.ctx.state ? (e.ctx.resume().then(function() {
                            e.state = "running";
                            for (var t = 0; t < e._howls.length; t++) e._howls[t]._emit("resume")
                        }), e._suspendTimer && (clearTimeout(e._suspendTimer), e._suspendTimer = null)) : "suspending" === e.state && (e._resumeAfterSuspend = !0), e
                    }
                };
                var a = new n,
                    s = function(e) {
                        e.src && 0 !== e.src.length && this.init(e)
                    };
                s.prototype = {
                    init: function(e) {
                        var t = this;
                        return a.ctx || d(), t._autoplay = e.autoplay || !1, t._format = "string" != typeof e.format ? e.format : [e.format], t._html5 = e.html5 || !1, t._muted = e.mute || !1, t._loop = e.loop || !1, t._pool = e.pool || 5, t._preload = "boolean" != typeof e.preload && "metadata" !== e.preload || e.preload, t._rate = e.rate || 1, t._sprite = e.sprite || {}, t._src = "string" != typeof e.src ? e.src : [e.src], t._volume = void 0 !== e.volume ? e.volume : 1, t._xhr = {
                            method: e.xhr && e.xhr.method ? e.xhr.method : "GET",
                            headers: e.xhr && e.xhr.headers ? e.xhr.headers : null,
                            withCredentials: !(!e.xhr || !e.xhr.withCredentials) && e.xhr.withCredentials
                        }, t._duration = 0, t._state = "unloaded", t._sounds = [], t._endTimers = {}, t._queue = [], t._playLock = !1, t._onend = e.onend ? [{
                            fn: e.onend
                        }] : [], t._onfade = e.onfade ? [{
                            fn: e.onfade
                        }] : [], t._onload = e.onload ? [{
                            fn: e.onload
                        }] : [], t._onloaderror = e.onloaderror ? [{
                            fn: e.onloaderror
                        }] : [], t._onplayerror = e.onplayerror ? [{
                            fn: e.onplayerror
                        }] : [], t._onpause = e.onpause ? [{
                            fn: e.onpause
                        }] : [], t._onplay = e.onplay ? [{
                            fn: e.onplay
                        }] : [], t._onstop = e.onstop ? [{
                            fn: e.onstop
                        }] : [], t._onmute = e.onmute ? [{
                            fn: e.onmute
                        }] : [], t._onvolume = e.onvolume ? [{
                            fn: e.onvolume
                        }] : [], t._onrate = e.onrate ? [{
                            fn: e.onrate
                        }] : [], t._onseek = e.onseek ? [{
                            fn: e.onseek
                        }] : [], t._onunlock = e.onunlock ? [{
                            fn: e.onunlock
                        }] : [], t._onresume = [], t._webAudio = a.usingWebAudio && !t._html5, void 0 !== a.ctx && a.ctx && a.autoUnlock && a._unlockAudio(), a._howls.push(t), t._autoplay && t._queue.push({
                            event: "play",
                            action: function() {
                                t.play()
                            }
                        }), t._preload && "none" !== t._preload && t.load(), t
                    },
                    load: function() {
                        var e = null;
                        if (a.noAudio) this._emit("loaderror", null, "No audio support.");
                        else {
                            "string" == typeof this._src && (this._src = [this._src]);
                            for (var t = 0; t < this._src.length; t++) {
                                var i, r;
                                if (this._format && this._format[t]) i = this._format[t];
                                else {
                                    if ("string" != typeof(r = this._src[t])) {
                                        this._emit("loaderror", null, "Non-string found in selected audio sources - ignoring.");
                                        continue
                                    }(i = /^data:audio\/([^;,]+);/i.exec(r)) || (i = /\.([^.]+)$/.exec(r.split("?", 1)[0])), i && (i = i[1].toLowerCase())
                                }
                                if (i && a.codecs(i)) {
                                    e = this._src[t];
                                    break
                                }
                            }
                            if (e) return this._src = e, this._state = "loading", "https:" === window.location.protocol && "http:" === e.slice(0, 5) && (this._html5 = !0, this._webAudio = !1), new o(this), this._webAudio && h(this), this;
                            this._emit("loaderror", null, "No codec support for selected audio sources.")
                        }
                    },
                    play: function(e, t) {
                        var i = this,
                            r = null;
                        if ("number" == typeof e) r = e, e = null;
                        else {
                            if ("string" == typeof e && "loaded" === i._state && !i._sprite[e]) return null;
                            if (void 0 === e && (e = "__default", !i._playLock)) {
                                for (var n = 0, s = 0; s < i._sounds.length; s++) i._sounds[s]._paused && !i._sounds[s]._ended && (n++, r = i._sounds[s]._id);
                                1 === n ? e = null : r = null
                            }
                        }
                        var o = r ? i._soundById(r) : i._inactiveSound();
                        if (!o) return null;
                        if (r && !e && (e = o._sprite || "__default"), "loaded" !== i._state) {
                            o._sprite = e, o._ended = !1;
                            var u = o._id;
                            return i._queue.push({
                                event: "play",
                                action: function() {
                                    i.play(u)
                                }
                            }), u
                        }
                        if (r && !o._paused) return t || i._loadQueue("play"), o._id;
                        i._webAudio && a._autoResume();
                        var h = Math.max(0, o._seek > 0 ? o._seek : i._sprite[e][0] / 1e3),
                            l = Math.max(0, (i._sprite[e][0] + i._sprite[e][1]) / 1e3 - h),
                            f = 1e3 * l / Math.abs(o._rate),
                            c = i._sprite[e][0] / 1e3,
                            d = (i._sprite[e][0] + i._sprite[e][1]) / 1e3;
                        o._sprite = e, o._ended = !1;
                        var p = function() {
                            o._paused = !1, o._seek = h, o._start = c, o._stop = d, o._loop = !(!o._loop && !i._sprite[e][2])
                        };
                        if (!(h >= d)) {
                            var v = o._node;
                            if (i._webAudio) {
                                var m = function() {
                                    i._playLock = !1, p(), i._refreshBuffer(o);
                                    var e = o._muted || i._muted ? 0 : o._volume;
                                    v.gain.setValueAtTime(e, a.ctx.currentTime), o._playStart = a.ctx.currentTime, void 0 === v.bufferSource.start ? o._loop ? v.bufferSource.noteGrainOn(0, h, 86400) : v.bufferSource.noteGrainOn(0, h, l) : o._loop ? v.bufferSource.start(0, h, 86400) : v.bufferSource.start(0, h, l), f !== 1 / 0 && (i._endTimers[o._id] = setTimeout(i._ended.bind(i, o), f)), t || setTimeout(function() {
                                        i._emit("play", o._id), i._loadQueue()
                                    }, 0)
                                };
                                "running" === a.state && "interrupted" !== a.ctx.state ? m() : (i._playLock = !0, i.once("resume", m), i._clearTimer(o._id))
                            } else {
                                var _ = function() {
                                    v.currentTime = h, v.muted = o._muted || i._muted || a._muted || v.muted, v.volume = o._volume * a.volume(), v.playbackRate = o._rate;
                                    try {
                                        var r = v.play();
                                        if (r && "undefined" != typeof Promise && (r instanceof Promise || "function" == typeof r.then) ? (i._playLock = !0, p(), r.then(function() {
                                                i._playLock = !1, v._unlocked = !0, t || (i._emit("play", o._id), i._loadQueue())
                                            }).catch(function() {
                                                i._playLock = !1, i._emit("playerror", o._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."), o._ended = !0, o._paused = !0
                                            })) : t || (i._playLock = !1, p(), i._emit("play", o._id), i._loadQueue()), v.playbackRate = o._rate, v.paused) return void i._emit("playerror", o._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" !== e || o._loop ? i._endTimers[o._id] = setTimeout(i._ended.bind(i, o), f) : (i._endTimers[o._id] = function() {
                                            i._ended(o), v.removeEventListener("ended", i._endTimers[o._id], !1)
                                        }, v.addEventListener("ended", i._endTimers[o._id], !1))
                                    } catch (e) {
                                        i._emit("playerror", o._id, e)
                                    }
                                };
                                "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA" === v.src && (v.src = i._src, v.load());
                                var b = window && window.ejecta || !v.readyState && a._navigator.isCocoonJS;
                                if (v.readyState >= 3 || b) _();
                                else {
                                    i._playLock = !0;
                                    var g = function() {
                                        _(), v.removeEventListener(a._canPlayEvent, g, !1)
                                    };
                                    v.addEventListener(a._canPlayEvent, g, !1), i._clearTimer(o._id)
                                }
                            }
                            return o._id
                        }
                        i._ended(o)
                    },
                    pause: function(e) {
                        var t = this;
                        if ("loaded" !== t._state || t._playLock) return t._queue.push({
                            event: "pause",
                            action: function() {
                                t.pause(e)
                            }
                        }), t;
                        for (var i = t._getSoundIds(e), r = 0; r < i.length; r++) {
                            t._clearTimer(i[r]);
                            var n = t._soundById(i[r]);
                            if (n && !n._paused && (n._seek = t.seek(i[r]), n._rateSeek = 0, n._paused = !0, t._stopFade(i[r]), n._node))
                                if (t._webAudio) {
                                    if (!n._node.bufferSource) continue;
                                    void 0 === n._node.bufferSource.stop ? n._node.bufferSource.noteOff(0) : n._node.bufferSource.stop(0), t._cleanBuffer(n._node)
                                } else isNaN(n._node.duration) && n._node.duration !== 1 / 0 || n._node.pause();
                            arguments[1] || t._emit("pause", n ? n._id : null)
                        }
                        return t
                    },
                    stop: function(e, t) {
                        var i = this;
                        if ("loaded" !== i._state || i._playLock) return i._queue.push({
                            event: "stop",
                            action: function() {
                                i.stop(e)
                            }
                        }), i;
                        for (var r = i._getSoundIds(e), n = 0; n < r.length; n++) {
                            i._clearTimer(r[n]);
                            var a = i._soundById(r[n]);
                            a && (a._seek = a._start || 0, a._rateSeek = 0, a._paused = !0, a._ended = !0, i._stopFade(r[n]), a._node && (i._webAudio ? a._node.bufferSource && (void 0 === a._node.bufferSource.stop ? a._node.bufferSource.noteOff(0) : a._node.bufferSource.stop(0), i._cleanBuffer(a._node)) : isNaN(a._node.duration) && a._node.duration !== 1 / 0 || (a._node.currentTime = a._start || 0, a._node.pause(), a._node.duration === 1 / 0 && i._clearSound(a._node))), t || i._emit("stop", a._id))
                        }
                        return i
                    },
                    mute: function(e, t) {
                        var i = this;
                        if ("loaded" !== i._state || i._playLock) return i._queue.push({
                            event: "mute",
                            action: function() {
                                i.mute(e, t)
                            }
                        }), i;
                        if (void 0 === t) {
                            if ("boolean" != typeof e) return i._muted;
                            i._muted = e
                        }
                        for (var r = i._getSoundIds(t), n = 0; n < r.length; n++) {
                            var s = i._soundById(r[n]);
                            s && (s._muted = e, s._interval && i._stopFade(s._id), i._webAudio && s._node ? s._node.gain.setValueAtTime(e ? 0 : s._volume, a.ctx.currentTime) : s._node && (s._node.muted = !!a._muted || e), i._emit("mute", s._id))
                        }
                        return i
                    },
                    volume: function() {
                        var e, t, i, r = this,
                            n = arguments;
                        if (0 === n.length) return r._volume;
                        if (1 === n.length || 2 === n.length && void 0 === n[1]) {
                            var s = r._getSoundIds(),
                                o = s.indexOf(n[0]);
                            o >= 0 ? t = parseInt(n[0], 10) : e = parseFloat(n[0])
                        } else n.length >= 2 && (e = parseFloat(n[0]), t = parseInt(n[1], 10));
                        if (!(void 0 !== e && e >= 0 && e <= 1)) return (i = t ? r._soundById(t) : r._sounds[0]) ? i._volume : 0;
                        if ("loaded" !== r._state || r._playLock) return r._queue.push({
                            event: "volume",
                            action: function() {
                                r.volume.apply(r, n)
                            }
                        }), r;
                        void 0 === t && (r._volume = e), t = r._getSoundIds(t);
                        for (var u = 0; u < t.length; u++)(i = r._soundById(t[u])) && (i._volume = e, n[2] || r._stopFade(t[u]), r._webAudio && i._node && !i._muted ? i._node.gain.setValueAtTime(e, a.ctx.currentTime) : i._node && !i._muted && (i._node.volume = e * a.volume()), r._emit("volume", i._id));
                        return r
                    },
                    fade: function(e, t, i, r) {
                        var n = this;
                        if ("loaded" !== n._state || n._playLock) return n._queue.push({
                            event: "fade",
                            action: function() {
                                n.fade(e, t, i, r)
                            }
                        }), n;
                        e = Math.min(Math.max(0, parseFloat(e)), 1), t = Math.min(Math.max(0, parseFloat(t)), 1), i = parseFloat(i), n.volume(e, r);
                        for (var s = n._getSoundIds(r), o = 0; o < s.length; o++) {
                            var u = n._soundById(s[o]);
                            if (u) {
                                if (r || n._stopFade(s[o]), n._webAudio && !u._muted) {
                                    var h = a.ctx.currentTime,
                                        l = h + i / 1e3;
                                    u._volume = e, u._node.gain.setValueAtTime(e, h), u._node.gain.linearRampToValueAtTime(t, l)
                                }
                                n._startFadeInterval(u, e, t, i, s[o], void 0 === r)
                            }
                        }
                        return n
                    },
                    _startFadeInterval: function(e, t, i, r, n, a) {
                        var s = this,
                            o = t,
                            u = i - t,
                            h = Math.abs(u / .01),
                            l = Math.max(4, h > 0 ? r / h : r),
                            f = Date.now();
                        e._fadeTo = i, e._interval = setInterval(function() {
                            var n = (Date.now() - f) / r;
                            f = Date.now(), o += u * n, o = Math.round(100 * o) / 100, o = u < 0 ? Math.max(i, o) : Math.min(i, o), s._webAudio ? e._volume = o : s.volume(o, e._id, !0), a && (s._volume = o), (i < t && o <= i || i > t && o >= i) && (clearInterval(e._interval), e._interval = null, e._fadeTo = null, s.volume(i, e._id), s._emit("fade", e._id))
                        }, l)
                    },
                    _stopFade: function(e) {
                        var t = this._soundById(e);
                        return t && t._interval && (this._webAudio && t._node.gain.cancelScheduledValues(a.ctx.currentTime), clearInterval(t._interval), t._interval = null, this.volume(t._fadeTo, e), t._fadeTo = null, this._emit("fade", e)), this
                    },
                    loop: function() {
                        var e, t, i, r = this,
                            n = arguments;
                        if (0 === n.length) return r._loop;
                        if (1 === n.length) {
                            if ("boolean" != typeof n[0]) return !!(i = r._soundById(parseInt(n[0], 10))) && i._loop;
                            e = n[0], r._loop = e
                        } else 2 === n.length && (e = n[0], t = parseInt(n[1], 10));
                        for (var a = r._getSoundIds(t), s = 0; s < a.length; s++)(i = r._soundById(a[s])) && (i._loop = e, r._webAudio && i._node && i._node.bufferSource && (i._node.bufferSource.loop = e, e && (i._node.bufferSource.loopStart = i._start || 0, i._node.bufferSource.loopEnd = i._stop)));
                        return r
                    },
                    rate: function() {
                        var e, t, i, r = this,
                            n = arguments;
                        if (0 === n.length) t = r._sounds[0]._id;
                        else if (1 === n.length) {
                            var s = r._getSoundIds(),
                                o = s.indexOf(n[0]);
                            o >= 0 ? t = parseInt(n[0], 10) : e = parseFloat(n[0])
                        } else 2 === n.length && (e = parseFloat(n[0]), t = parseInt(n[1], 10));
                        if ("number" != typeof e) return (i = r._soundById(t)) ? i._rate : r._rate;
                        if ("loaded" !== r._state || r._playLock) return r._queue.push({
                            event: "rate",
                            action: function() {
                                r.rate.apply(r, n)
                            }
                        }), r;
                        void 0 === t && (r._rate = e), t = r._getSoundIds(t);
                        for (var u = 0; u < t.length; u++)
                            if (i = r._soundById(t[u])) {
                                r.playing(t[u]) && (i._rateSeek = r.seek(t[u]), i._playStart = r._webAudio ? a.ctx.currentTime : i._playStart), i._rate = e, r._webAudio && i._node && i._node.bufferSource ? i._node.bufferSource.playbackRate.setValueAtTime(e, a.ctx.currentTime) : i._node && (i._node.playbackRate = e);
                                var h = r.seek(t[u]),
                                    l = (r._sprite[i._sprite][0] + r._sprite[i._sprite][1]) / 1e3 - h,
                                    f = 1e3 * l / Math.abs(i._rate);
                                !r._endTimers[t[u]] && i._paused || (r._clearTimer(t[u]), r._endTimers[t[u]] = setTimeout(r._ended.bind(r, i), f)), r._emit("rate", i._id)
                            }
                        return r
                    },
                    seek: function() {
                        var e, t, i = this,
                            r = arguments;
                        if (0 === r.length) t = i._sounds[0]._id;
                        else if (1 === r.length) {
                            var n = i._getSoundIds(),
                                s = n.indexOf(r[0]);
                            s >= 0 ? t = parseInt(r[0], 10) : i._sounds.length && (t = i._sounds[0]._id, e = parseFloat(r[0]))
                        } else 2 === r.length && (e = parseFloat(r[0]), t = parseInt(r[1], 10));
                        if (void 0 === t) return i;
                        if ("number" == typeof e && ("loaded" !== i._state || i._playLock)) return i._queue.push({
                            event: "seek",
                            action: function() {
                                i.seek.apply(i, r)
                            }
                        }), i;
                        var o = i._soundById(t);
                        if (o) {
                            if (!("number" == typeof e && e >= 0)) {
                                if (i._webAudio) {
                                    var u = i.playing(t) ? a.ctx.currentTime - o._playStart : 0,
                                        h = o._rateSeek ? o._rateSeek - o._seek : 0;
                                    return o._seek + (h + u * Math.abs(o._rate))
                                }
                                return o._node.currentTime
                            }
                            var l = i.playing(t);
                            l && i.pause(t, !0), o._seek = e, o._ended = !1, i._clearTimer(t), i._webAudio || !o._node || isNaN(o._node.duration) || (o._node.currentTime = e);
                            var f = function() {
                                i._emit("seek", t), l && i.play(t, !0)
                            };
                            if (l && !i._webAudio) {
                                var c = function() {
                                    i._playLock ? setTimeout(c, 0) : f()
                                };
                                setTimeout(c, 0)
                            } else f()
                        }
                        return i
                    },
                    playing: function(e) {
                        if ("number" == typeof e) {
                            var t = this._soundById(e);
                            return !!t && !t._paused
                        }
                        for (var i = 0; i < this._sounds.length; i++)
                            if (!this._sounds[i]._paused) return !0;
                        return !1
                    },
                    duration: function(e) {
                        var t = this._duration,
                            i = this._soundById(e);
                        return i && (t = this._sprite[i._sprite][1] / 1e3), t
                    },
                    state: function() {
                        return this._state
                    },
                    unload: function() {
                        for (var e = this, t = e._sounds, i = 0; i < t.length; i++) t[i]._paused || e.stop(t[i]._id), e._webAudio || (e._clearSound(t[i]._node), t[i]._node.removeEventListener("error", t[i]._errorFn, !1), t[i]._node.removeEventListener(a._canPlayEvent, t[i]._loadFn, !1), t[i]._node.removeEventListener("ended", t[i]._endFn, !1), a._releaseHtml5Audio(t[i]._node)), delete t[i]._node, e._clearTimer(t[i]._id);
                        var r = a._howls.indexOf(e);
                        r >= 0 && a._howls.splice(r, 1);
                        var n = !0;
                        for (i = 0; i < a._howls.length; i++)
                            if (a._howls[i]._src === e._src || e._src.indexOf(a._howls[i]._src) >= 0) {
                                n = !1;
                                break
                            }
                        return u && n && delete u[e._src], a.noAudio = !1, e._state = "unloaded", e._sounds = [], e = null, null
                    },
                    on: function(e, t, i, r) {
                        var n = this["_on" + e];
                        return "function" == typeof t && n.push(r ? {
                            id: i,
                            fn: t,
                            once: r
                        } : {
                            id: i,
                            fn: t
                        }), this
                    },
                    off: function(e, t, i) {
                        var r = this["_on" + e],
                            n = 0;
                        if ("number" == typeof t && (i = t, t = null), t || i)
                            for (n = 0; n < r.length; n++) {
                                var a = i === r[n].id;
                                if (t === r[n].fn && a || !t && a) {
                                    r.splice(n, 1);
                                    break
                                }
                            } else if (e) this["_on" + e] = [];
                            else {
                                var s = Object.keys(this);
                                for (n = 0; n < s.length; n++) 0 === s[n].indexOf("_on") && Array.isArray(this[s[n]]) && (this[s[n]] = [])
                            }
                        return this
                    },
                    once: function(e, t, i) {
                        return this.on(e, t, i, 1), this
                    },
                    _emit: function(e, t, i) {
                        for (var r = this["_on" + e], n = r.length - 1; n >= 0; n--) r[n].id && r[n].id !== t && "load" !== e || (setTimeout(function(e) {
                            e.call(this, t, i)
                        }.bind(this, r[n].fn), 0), r[n].once && this.off(e, r[n].fn, r[n].id));
                        return this._loadQueue(e), this
                    },
                    _loadQueue: function(e) {
                        if (this._queue.length > 0) {
                            var t = this._queue[0];
                            t.event === e && (this._queue.shift(), this._loadQueue()), e || t.action()
                        }
                        return this
                    },
                    _ended: function(e) {
                        var t = e._sprite;
                        if (!this._webAudio && e._node && !e._node.paused && !e._node.ended && e._node.currentTime < e._stop) return setTimeout(this._ended.bind(this, e), 100), this;
                        var i = !(!e._loop && !this._sprite[t][2]);
                        if (this._emit("end", e._id), !this._webAudio && i && this.stop(e._id, !0).play(e._id), this._webAudio && i) {
                            this._emit("play", e._id), e._seek = e._start || 0, e._rateSeek = 0, e._playStart = a.ctx.currentTime;
                            var r = 1e3 * (e._stop - e._start) / Math.abs(e._rate);
                            this._endTimers[e._id] = setTimeout(this._ended.bind(this, e), r)
                        }
                        return this._webAudio && !i && (e._paused = !0, e._ended = !0, e._seek = e._start || 0, e._rateSeek = 0, this._clearTimer(e._id), this._cleanBuffer(e._node), a._autoSuspend()), this._webAudio || i || this.stop(e._id, !0), this
                    },
                    _clearTimer: function(e) {
                        if (this._endTimers[e]) {
                            if ("function" != typeof this._endTimers[e]) clearTimeout(this._endTimers[e]);
                            else {
                                var t = this._soundById(e);
                                t && t._node && t._node.removeEventListener("ended", this._endTimers[e], !1)
                            }
                            delete this._endTimers[e]
                        }
                        return this
                    },
                    _soundById: function(e) {
                        for (var t = 0; t < this._sounds.length; t++)
                            if (e === this._sounds[t]._id) return this._sounds[t];
                        return null
                    },
                    _inactiveSound: function() {
                        this._drain();
                        for (var e = 0; e < this._sounds.length; e++)
                            if (this._sounds[e]._ended) return this._sounds[e].reset();
                        return new o(this)
                    },
                    _drain: function() {
                        var e = this._pool,
                            t = 0,
                            i = 0;
                        if (!(this._sounds.length < e)) {
                            for (i = 0; i < this._sounds.length; i++) this._sounds[i]._ended && t++;
                            for (i = this._sounds.length - 1; i >= 0; i--) {
                                if (t <= e) return;
                                this._sounds[i]._ended && (this._webAudio && this._sounds[i]._node && this._sounds[i]._node.disconnect(0), this._sounds.splice(i, 1), t--)
                            }
                        }
                    },
                    _getSoundIds: function(e) {
                        if (void 0 === e) {
                            for (var t = [], i = 0; i < this._sounds.length; i++) t.push(this._sounds[i]._id);
                            return t
                        }
                        return [e]
                    },
                    _refreshBuffer: function(e) {
                        return e._node.bufferSource = a.ctx.createBufferSource(), e._node.bufferSource.buffer = u[this._src], e._panner ? e._node.bufferSource.connect(e._panner) : e._node.bufferSource.connect(e._node), e._node.bufferSource.loop = e._loop, e._loop && (e._node.bufferSource.loopStart = e._start || 0, e._node.bufferSource.loopEnd = e._stop || 0), e._node.bufferSource.playbackRate.setValueAtTime(e._rate, a.ctx.currentTime), this
                    },
                    _cleanBuffer: function(e) {
                        var t = a._navigator && a._navigator.vendor.indexOf("Apple") >= 0;
                        if (a._scratchBuffer && e.bufferSource && (e.bufferSource.onended = null, e.bufferSource.disconnect(0), t)) try {
                            e.bufferSource.buffer = a._scratchBuffer
                        } catch (e) {}
                        return e.bufferSource = null, this
                    },
                    _clearSound: function(e) {
                        /MSIE |Trident\//.test(a._navigator && a._navigator.userAgent) || (e.src = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")
                    }
                };
                var o = function(e) {
                    this._parent = e, this.init()
                };
                o.prototype = {
                    init: function() {
                        var e = this._parent;
                        return this._muted = e._muted, this._loop = e._loop, this._volume = e._volume, this._rate = e._rate, this._seek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++a._counter, e._sounds.push(this), this.create(), this
                    },
                    create: function() {
                        var e = this._parent,
                            t = a._muted || this._muted || this._parent._muted ? 0 : this._volume;
                        return e._webAudio ? (this._node = void 0 === a.ctx.createGain ? a.ctx.createGainNode() : a.ctx.createGain(), this._node.gain.setValueAtTime(t, a.ctx.currentTime), this._node.paused = !0, this._node.connect(a.masterGain)) : a.noAudio || (this._node = a._obtainHtml5Audio(), this._errorFn = this._errorListener.bind(this), this._node.addEventListener("error", this._errorFn, !1), this._loadFn = this._loadListener.bind(this), this._node.addEventListener(a._canPlayEvent, this._loadFn, !1), this._endFn = this._endListener.bind(this), this._node.addEventListener("ended", this._endFn, !1), this._node.src = e._src, this._node.preload = !0 === e._preload ? "auto" : e._preload, this._node.volume = t * a.volume(), this._node.load()), this
                    },
                    reset: function() {
                        var e = this._parent;
                        return this._muted = e._muted, this._loop = e._loop, this._volume = e._volume, this._rate = e._rate, this._seek = 0, this._rateSeek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++a._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 e = this._parent;
                        e._duration = Math.ceil(10 * this._node.duration) / 10, 0 === Object.keys(e._sprite).length && (e._sprite = {
                            __default: [0, 1e3 * e._duration]
                        }), "loaded" !== e._state && (e._state = "loaded", e._emit("load"), e._loadQueue()), this._node.removeEventListener(a._canPlayEvent, this._loadFn, !1)
                    },
                    _endListener: function() {
                        var e = this._parent;
                        e._duration === 1 / 0 && (e._duration = Math.ceil(10 * this._node.duration) / 10, e._sprite.__default[1] === 1 / 0 && (e._sprite.__default[1] = 1e3 * e._duration), e._ended(this)), this._node.removeEventListener("ended", this._endFn, !1)
                    }
                };
                var u = {},
                    h = function(e) {
                        var t = e._src;
                        if (u[t]) return e._duration = u[t].duration, void c(e);
                        if (/^data:[^;]+;base64,/.test(t)) {
                            for (var i = atob(t.split(",")[1]), r = new Uint8Array(i.length), n = 0; n < i.length; ++n) r[n] = i.charCodeAt(n);
                            f(r.buffer, e)
                        } else {
                            var a = new XMLHttpRequest;
                            a.open(e._xhr.method, t, !0), a.withCredentials = e._xhr.withCredentials, a.responseType = "arraybuffer", e._xhr.headers && Object.keys(e._xhr.headers).forEach(function(t) {
                                a.setRequestHeader(t, e._xhr.headers[t])
                            }), a.onload = function() {
                                var t = (a.status + "")[0];
                                "0" === t || "2" === t || "3" === t ? f(a.response, e) : e._emit("loaderror", null, "Failed loading audio file with status: " + a.status + ".")
                            }, a.onerror = function() {
                                e._webAudio && (e._html5 = !0, e._webAudio = !1, e._sounds = [], delete u[t], e.load())
                            }, l(a)
                        }
                    },
                    l = function(e) {
                        try {
                            e.send()
                        } catch (t) {
                            e.onerror()
                        }
                    },
                    f = function(e, t) {
                        var i = function() {
                                t._emit("loaderror", null, "Decoding audio data failed.")
                            },
                            r = function(e) {
                                e && t._sounds.length > 0 ? (u[t._src] = e, c(t, e)) : i()
                            };
                        "undefined" != typeof Promise && 1 === a.ctx.decodeAudioData.length ? a.ctx.decodeAudioData(e).then(r).catch(i) : a.ctx.decodeAudioData(e, r, i)
                    },
                    c = function(e, t) {
                        t && !e._duration && (e._duration = t.duration), 0 === Object.keys(e._sprite).length && (e._sprite = {
                            __default: [0, 1e3 * e._duration]
                        }), "loaded" !== e._state && (e._state = "loaded", e._emit("load"), e._loadQueue())
                    },
                    d = function() {
                        if (a.usingWebAudio) {
                            try {
                                "undefined" != typeof AudioContext ? a.ctx = new AudioContext : "undefined" != typeof webkitAudioContext ? a.ctx = new webkitAudioContext : a.usingWebAudio = !1
                            } catch (e) {
                                a.usingWebAudio = !1
                            }
                            a.ctx || (a.usingWebAudio = !1);
                            var e = /iP(hone|od|ad)/.test(a._navigator && a._navigator.platform),
                                t = a._navigator && a._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
                                i = t ? parseInt(t[1], 10) : null;
                            if (e && i && i < 9) {
                                var r = /safari/.test(a._navigator && a._navigator.userAgent.toLowerCase());
                                a._navigator && !r && (a.usingWebAudio = !1)
                            }
                            a.usingWebAudio && (a.masterGain = void 0 === a.ctx.createGain ? a.ctx.createGainNode() : a.ctx.createGain(), a.masterGain.gain.setValueAtTime(a._muted ? 0 : a._volume, a.ctx.currentTime), a.masterGain.connect(a.ctx.destination)), a._setup()
                        }
                    };
                void 0 === (r = function() {
                    return {
                        Howler: a,
                        Howl: s
                    }
                }.apply(t, [])) || (e.exports = r), t.Howler = a, t.Howl = s, void 0 !== i ? (i.HowlerGlobal = n, i.Howler = a, i.Howl = s, i.Sound = o) : "undefined" != typeof window && (window.HowlerGlobal = n, window.Howler = a, window.Howl = s, window.Sound = o)
            }(),
            /*!
             *  Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.
             *  
             *  howler.js v2.2.1
             *  howlerjs.com
             *
             *  (c) 2013-2020, James Simpson of GoldFire Studios
             *  goldfirestudios.com
             *
             *  MIT License
             */
            function() {
                "use strict";
                var e;
                HowlerGlobal.prototype._pos = [0, 0, 0], HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0], HowlerGlobal.prototype.stereo = function(e) {
                    if (!this.ctx || !this.ctx.listener) return this;
                    for (var t = this._howls.length - 1; t >= 0; t--) this._howls[t].stereo(e);
                    return this
                }, HowlerGlobal.prototype.pos = function(e, t, i) {
                    return this.ctx && this.ctx.listener ? (t = "number" != typeof t ? this._pos[1] : t, i = "number" != typeof i ? this._pos[2] : i, "number" != typeof e ? this._pos : (this._pos = [e, t, i], 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(e, t, i, r, n, a) {
                    if (!this.ctx || !this.ctx.listener) return this;
                    var s = this._orientation;
                    return t = "number" != typeof t ? s[1] : t, i = "number" != typeof i ? s[2] : i, r = "number" != typeof r ? s[3] : r, n = "number" != typeof n ? s[4] : n, a = "number" != typeof a ? s[5] : a, "number" != typeof e ? s : (this._orientation = [e, t, i, r, n, a], void 0 !== this.ctx.listener.forwardX ? (this.ctx.listener.forwardX.setTargetAtTime(e, Howler.ctx.currentTime, .1), this.ctx.listener.forwardY.setTargetAtTime(t, Howler.ctx.currentTime, .1), this.ctx.listener.forwardZ.setTargetAtTime(i, Howler.ctx.currentTime, .1), this.ctx.listener.upX.setTargetAtTime(r, Howler.ctx.currentTime, .1), this.ctx.listener.upY.setTargetAtTime(n, Howler.ctx.currentTime, .1), this.ctx.listener.upZ.setTargetAtTime(a, Howler.ctx.currentTime, .1)) : this.ctx.listener.setOrientation(e, t, i, r, n, a), this)
                }, Howl.prototype.init = (e = Howl.prototype.init, function(t) {
                    return this._orientation = t.orientation || [1, 0, 0], this._stereo = t.stereo || null, this._pos = t.pos || null, this._pannerAttr = {
                        coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : 360,
                        coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : 360,
                        coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : 0,
                        distanceModel: void 0 !== t.distanceModel ? t.distanceModel : "inverse",
                        maxDistance: void 0 !== t.maxDistance ? t.maxDistance : 1e4,
                        panningModel: void 0 !== t.panningModel ? t.panningModel : "HRTF",
                        refDistance: void 0 !== t.refDistance ? t.refDistance : 1,
                        rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : 1
                    }, this._onstereo = t.onstereo ? [{
                        fn: t.onstereo
                    }] : [], this._onpos = t.onpos ? [{
                        fn: t.onpos
                    }] : [], this._onorientation = t.onorientation ? [{
                        fn: t.onorientation
                    }] : [], e.call(this, t)
                }), Howl.prototype.stereo = function(e, i) {
                    var r = this;
                    if (!r._webAudio) return r;
                    if ("loaded" !== r._state) return r._queue.push({
                        event: "stereo",
                        action: function() {
                            r.stereo(e, i)
                        }
                    }), r;
                    var n = void 0 === Howler.ctx.createStereoPanner ? "spatial" : "stereo";
                    if (void 0 === i) {
                        if ("number" != typeof e) return r._stereo;
                        r._stereo = e, r._pos = [e, 0, 0]
                    }
                    for (var a = r._getSoundIds(i), s = 0; s < a.length; s++) {
                        var o = r._soundById(a[s]);
                        if (o) {
                            if ("number" != typeof e) return o._stereo;
                            o._stereo = e, o._pos = [e, 0, 0], o._node && (o._pannerAttr.panningModel = "equalpower", o._panner && o._panner.pan || t(o, n), "spatial" === n ? void 0 !== o._panner.positionX ? (o._panner.positionX.setValueAtTime(e, Howler.ctx.currentTime), o._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime), o._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime)) : o._panner.setPosition(e, 0, 0) : o._panner.pan.setValueAtTime(e, Howler.ctx.currentTime)), r._emit("stereo", o._id)
                        }
                    }
                    return r
                }, Howl.prototype.pos = function(e, i, r, n) {
                    var a = this;
                    if (!a._webAudio) return a;
                    if ("loaded" !== a._state) return a._queue.push({
                        event: "pos",
                        action: function() {
                            a.pos(e, i, r, n)
                        }
                    }), a;
                    if (i = "number" != typeof i ? 0 : i, r = "number" != typeof r ? -.5 : r, void 0 === n) {
                        if ("number" != typeof e) return a._pos;
                        a._pos = [e, i, r]
                    }
                    for (var s = a._getSoundIds(n), o = 0; o < s.length; o++) {
                        var u = a._soundById(s[o]);
                        if (u) {
                            if ("number" != typeof e) return u._pos;
                            u._pos = [e, i, r], u._node && (u._panner && !u._panner.pan || t(u, "spatial"), void 0 !== u._panner.positionX ? (u._panner.positionX.setValueAtTime(e, Howler.ctx.currentTime), u._panner.positionY.setValueAtTime(i, Howler.ctx.currentTime), u._panner.positionZ.setValueAtTime(r, Howler.ctx.currentTime)) : u._panner.setPosition(e, i, r)), a._emit("pos", u._id)
                        }
                    }
                    return a
                }, Howl.prototype.orientation = function(e, i, r, n) {
                    var a = this;
                    if (!a._webAudio) return a;
                    if ("loaded" !== a._state) return a._queue.push({
                        event: "orientation",
                        action: function() {
                            a.orientation(e, i, r, n)
                        }
                    }), a;
                    if (i = "number" != typeof i ? a._orientation[1] : i, r = "number" != typeof r ? a._orientation[2] : r, void 0 === n) {
                        if ("number" != typeof e) return a._orientation;
                        a._orientation = [e, i, r]
                    }
                    for (var s = a._getSoundIds(n), o = 0; o < s.length; o++) {
                        var u = a._soundById(s[o]);
                        if (u) {
                            if ("number" != typeof e) return u._orientation;
                            u._orientation = [e, i, r], u._node && (u._panner || (u._pos || (u._pos = a._pos || [0, 0, -.5]), t(u, "spatial")), void 0 !== u._panner.orientationX ? (u._panner.orientationX.setValueAtTime(e, Howler.ctx.currentTime), u._panner.orientationY.setValueAtTime(i, Howler.ctx.currentTime), u._panner.orientationZ.setValueAtTime(r, Howler.ctx.currentTime)) : u._panner.setOrientation(e, i, r)), a._emit("orientation", u._id)
                        }
                    }
                    return a
                }, Howl.prototype.pannerAttr = function() {
                    var e, i, r, n = this,
                        a = arguments;
                    if (!n._webAudio) return n;
                    if (0 === a.length) return n._pannerAttr;
                    if (1 === a.length) {
                        if ("object" != typeof a[0]) return (r = n._soundById(parseInt(a[0], 10))) ? r._pannerAttr : n._pannerAttr;
                        e = a[0], void 0 === i && (e.pannerAttr || (e.pannerAttr = {
                            coneInnerAngle: e.coneInnerAngle,
                            coneOuterAngle: e.coneOuterAngle,
                            coneOuterGain: e.coneOuterGain,
                            distanceModel: e.distanceModel,
                            maxDistance: e.maxDistance,
                            refDistance: e.refDistance,
                            rolloffFactor: e.rolloffFactor,
                            panningModel: e.panningModel
                        }), n._pannerAttr = {
                            coneInnerAngle: void 0 !== e.pannerAttr.coneInnerAngle ? e.pannerAttr.coneInnerAngle : n._coneInnerAngle,
                            coneOuterAngle: void 0 !== e.pannerAttr.coneOuterAngle ? e.pannerAttr.coneOuterAngle : n._coneOuterAngle,
                            coneOuterGain: void 0 !== e.pannerAttr.coneOuterGain ? e.pannerAttr.coneOuterGain : n._coneOuterGain,
                            distanceModel: void 0 !== e.pannerAttr.distanceModel ? e.pannerAttr.distanceModel : n._distanceModel,
                            maxDistance: void 0 !== e.pannerAttr.maxDistance ? e.pannerAttr.maxDistance : n._maxDistance,
                            refDistance: void 0 !== e.pannerAttr.refDistance ? e.pannerAttr.refDistance : n._refDistance,
                            rolloffFactor: void 0 !== e.pannerAttr.rolloffFactor ? e.pannerAttr.rolloffFactor : n._rolloffFactor,
                            panningModel: void 0 !== e.pannerAttr.panningModel ? e.pannerAttr.panningModel : n._panningModel
                        })
                    } else 2 === a.length && (e = a[0], i = parseInt(a[1], 10));
                    for (var s = n._getSoundIds(i), o = 0; o < s.length; o++)
                        if (r = n._soundById(s[o])) {
                            var u = r._pannerAttr;
                            u = {
                                coneInnerAngle: void 0 !== e.coneInnerAngle ? e.coneInnerAngle : u.coneInnerAngle,
                                coneOuterAngle: void 0 !== e.coneOuterAngle ? e.coneOuterAngle : u.coneOuterAngle,
                                coneOuterGain: void 0 !== e.coneOuterGain ? e.coneOuterGain : u.coneOuterGain,
                                distanceModel: void 0 !== e.distanceModel ? e.distanceModel : u.distanceModel,
                                maxDistance: void 0 !== e.maxDistance ? e.maxDistance : u.maxDistance,
                                refDistance: void 0 !== e.refDistance ? e.refDistance : u.refDistance,
                                rolloffFactor: void 0 !== e.rolloffFactor ? e.rolloffFactor : u.rolloffFactor,
                                panningModel: void 0 !== e.panningModel ? e.panningModel : u.panningModel
                            };
                            var h = r._panner;
                            h ? (h.coneInnerAngle = u.coneInnerAngle, h.coneOuterAngle = u.coneOuterAngle, h.coneOuterGain = u.coneOuterGain, h.distanceModel = u.distanceModel, h.maxDistance = u.maxDistance, h.refDistance = u.refDistance, h.rolloffFactor = u.rolloffFactor, h.panningModel = u.panningModel) : (r._pos || (r._pos = n._pos || [0, 0, -.5]), t(r, "spatial"))
                        }
                    return n
                }, Sound.prototype.init = function(e) {
                    return function() {
                        var t = this._parent;
                        this._orientation = t._orientation, this._stereo = t._stereo, this._pos = t._pos, this._pannerAttr = t._pannerAttr, e.call(this), this._stereo ? t.stereo(this._stereo) : this._pos && t.pos(this._pos[0], this._pos[1], this._pos[2], this._id)
                    }
                }(Sound.prototype.init), Sound.prototype.reset = function(e) {
                    return function() {
                        var t = this._parent;
                        return this._orientation = t._orientation, this._stereo = t._stereo, this._pos = t._pos, this._pannerAttr = t._pannerAttr, this._stereo ? t.stereo(this._stereo) : this._pos ? t.pos(this._pos[0], this._pos[1], this._pos[2], this._id) : this._panner && (this._panner.disconnect(0), this._panner = void 0, t._refreshBuffer(this)), e.call(this)
                    }
                }(Sound.prototype.reset);
                var t = function(e, t) {
                    "spatial" === (t = t || "spatial") ? (e._panner = Howler.ctx.createPanner(), e._panner.coneInnerAngle = e._pannerAttr.coneInnerAngle, e._panner.coneOuterAngle = e._pannerAttr.coneOuterAngle, e._panner.coneOuterGain = e._pannerAttr.coneOuterGain, e._panner.distanceModel = e._pannerAttr.distanceModel, e._panner.maxDistance = e._pannerAttr.maxDistance, e._panner.refDistance = e._pannerAttr.refDistance, e._panner.rolloffFactor = e._pannerAttr.rolloffFactor, e._panner.panningModel = e._pannerAttr.panningModel, void 0 !== e._panner.positionX ? (e._panner.positionX.setValueAtTime(e._pos[0], Howler.ctx.currentTime), e._panner.positionY.setValueAtTime(e._pos[1], Howler.ctx.currentTime), e._panner.positionZ.setValueAtTime(e._pos[2], Howler.ctx.currentTime)) : e._panner.setPosition(e._pos[0], e._pos[1], e._pos[2]), void 0 !== e._panner.orientationX ? (e._panner.orientationX.setValueAtTime(e._orientation[0], Howler.ctx.currentTime), e._panner.orientationY.setValueAtTime(e._orientation[1], Howler.ctx.currentTime), e._panner.orientationZ.setValueAtTime(e._orientation[2], Howler.ctx.currentTime)) : e._panner.setOrientation(e._orientation[0], e._orientation[1], e._orientation[2])) : (e._panner = Howler.ctx.createStereoPanner(), e._panner.pan.setValueAtTime(e._stereo, Howler.ctx.currentTime)), e._panner.connect(e._node), e._paused || e._parent.pause(e._id, !0).play(e._id, !0)
                }
            }()
        }).call(this, i(54))
    }, , function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return S
        }), i.d(t, "b", function() {
            return x
        }), i.d(t, "c", function() {
            return g
        });
        var r, n, a = i(3),
            s = function() {
                function e(e, t, i) {
                    this.value = e, this.time = t, this.next = null, this.isStepped = !1, this.ease = i ? "function" == typeof i ? i : n.generateEase(i) : null
                }
                return e.createList = function(t) {
                    if ("list" in t) {
                        var i = t.list,
                            r = void 0,
                            a = i[0],
                            s = a.value,
                            o = a.time,
                            u = r = new e("string" == typeof s ? n.hexToRGB(s) : s, o, t.ease);
                        if (i.length > 2 || 2 === i.length && i[1].value !== s)
                            for (var h = 1; h < i.length; ++h) {
                                var l = i[h],
                                    f = l.value,
                                    c = l.time;
                                r.next = new e("string" == typeof f ? n.hexToRGB(f) : f, c), r = r.next
                            }
                        return u.isStepped = !!t.isStepped, u
                    }
                    var d = new e("string" == typeof t.start ? n.hexToRGB(t.start) : t.start, 0);
                    return t.end !== t.start && (d.next = new e("string" == typeof t.end ? n.hexToRGB(t.end) : t.end, 1)), d
                }, e
            }(),
            o = a;
        /*!
         * pixi-particles - v4.2.1
         * Compiled Sat, 02 May 2020 01:25:39 UTC
         *
         * pixi-particles is licensed under the MIT License.
         * http://www.opensource.org/licenses/mit-license
         */
        function u(e) {
            return r(e)
        }
        r = parseInt(/^(\d+)\./.exec(a.VERSION)[1], 10) < 5 ? o.Texture.fromImage : o.Texture.from,
            function(e) {
                e.verbose = !1, e.DEG_TO_RADS = Math.PI / 180, e.rotatePoint = function(t, i) {
                    if (t) {
                        t *= e.DEG_TO_RADS;
                        var r = Math.sin(t),
                            n = Math.cos(t),
                            a = i.x * n - i.y * r,
                            s = i.x * r + i.y * n;
                        i.x = a, i.y = s
                    }
                }, e.combineRGBComponents = function(e, t, i) {
                    return e << 16 | t << 8 | i
                }, e.normalize = function(t) {
                    var i = 1 / e.length(t);
                    t.x *= i, t.y *= i
                }, e.scaleBy = function(e, t) {
                    e.x *= t, e.y *= t
                }, e.length = function(e) {
                    return Math.sqrt(e.x * e.x + e.y * e.y)
                }, e.hexToRGB = function(e, t) {
                    var i;
                    return t || (t = {}), "#" === e.charAt(0) ? e = e.substr(1) : 0 === e.indexOf("0x") && (e = e.substr(2)), 8 === e.length && (i = e.substr(0, 2), e = e.substr(2)), t.r = parseInt(e.substr(0, 2), 16), t.g = parseInt(e.substr(2, 2), 16), t.b = parseInt(e.substr(4, 2), 16), i && (t.a = parseInt(i, 16)), t
                }, e.generateEase = function(e) {
                    var t = e.length,
                        i = 1 / t;
                    return function(r) {
                        var n = t * r | 0,
                            a = (r - n * i) * t,
                            s = e[n] || e[t - 1];
                        return s.s + a * (2 * (1 - a) * (s.cp - s.s) + a * (s.e - s.s))
                    }
                }, e.getBlendMode = function(e) {
                    if (!e) return a.BLEND_MODES.NORMAL;
                    for (e = e.toUpperCase(); e.indexOf(" ") >= 0;) e = e.replace(" ", "_");
                    return a.BLEND_MODES[e] || a.BLEND_MODES.NORMAL
                }, e.createSteppedGradient = function(t, i) {
                    void 0 === i && (i = 10), ("number" != typeof i || i <= 0) && (i = 10);
                    var r = new s(e.hexToRGB(t[0].value), t[0].time);
                    r.isStepped = !0;
                    for (var n = r, a = t[0], o = 1, u = t[o], h = 1; h < i; ++h) {
                        for (var l = h / i; l > u.time;) a = u, u = t[++o];
                        l = (l - a.time) / (u.time - a.time);
                        var f = e.hexToRGB(a.value),
                            c = e.hexToRGB(u.value),
                            d = {
                                r: (c.r - f.r) * l + f.r,
                                g: (c.g - f.g) * l + f.g,
                                b: (c.b - f.b) * l + f.b
                            };
                        n.next = new s(d, h / i), n = n.next
                    }
                    return r
                }
            }(n || (n = {}));
        /*! *****************************************************************************
        Copyright (c) Microsoft Corporation. All rights reserved.
        Licensed under the Apache License, Version 2.0 (the "License"); you may not use
        this file except in compliance with the License. You may obtain a copy of the
        License at http://www.apache.org/licenses/LICENSE-2.0

        THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
        KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
        WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
        MERCHANTABLITY OR NON-INFRINGEMENT.

        See the Apache Version 2.0 License for specific language governing permissions
        and limitations under the License.
        ***************************************************************************** */
        var h = function(e, t) {
            return (h = Object.setPrototypeOf || {
                    __proto__: []
                }
                instanceof Array && function(e, t) {
                    e.__proto__ = t
                } || function(e, t) {
                    for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i])
                })(e, t)
        };

        function l(e, t) {
            function i() {
                this.constructor = e
            }
            h(e, t), e.prototype = null === t ? Object.create(t) : (i.prototype = t.prototype, new i)
        }

        function f(e) {
            return this.ease && (e = this.ease(e)), (this.next.value - this.current.value) * e + this.current.value
        }

        function c(e) {
            this.ease && (e = this.ease(e));
            var t = this.current.value,
                i = this.next.value,
                r = (i.r - t.r) * e + t.r,
                a = (i.g - t.g) * e + t.g,
                s = (i.b - t.b) * e + t.b;
            return n.combineRGBComponents(r, a, s)
        }

        function d(e) {
            for (this.ease && (e = this.ease(e)); e > this.next.time;) this.current = this.next, this.next = this.next.next;
            return e = (e - this.current.time) / (this.next.time - this.current.time), (this.next.value - this.current.value) * e + this.current.value
        }

        function p(e) {
            for (this.ease && (e = this.ease(e)); e > this.next.time;) this.current = this.next, this.next = this.next.next;
            e = (e - this.current.time) / (this.next.time - this.current.time);
            var t = this.current.value,
                i = this.next.value,
                r = (i.r - t.r) * e + t.r,
                a = (i.g - t.g) * e + t.g,
                s = (i.b - t.b) * e + t.b;
            return n.combineRGBComponents(r, a, s)
        }

        function v(e) {
            for (this.ease && (e = this.ease(e)); this.next && e > this.next.time;) this.current = this.next, this.next = this.next.next;
            return this.current.value
        }

        function m(e) {
            for (this.ease && (e = this.ease(e)); this.next && e > this.next.time;) this.current = this.next, this.next = this.next.next;
            var t = this.current.value;
            return n.combineRGBComponents(t.r, t.g, t.b)
        }
        var _, b = function() {
                function e(e) {
                    void 0 === e && (e = !1), this.current = null, this.next = null, this.isColor = !!e, this.interpolate = null, this.ease = null
                }
                return e.prototype.reset = function(e) {
                    this.current = e, this.next = e.next, this.next && this.next.time >= 1 ? this.interpolate = this.isColor ? c : f : e.isStepped ? this.interpolate = this.isColor ? m : v : this.interpolate = this.isColor ? p : d, this.ease = this.current.ease
                }, e
            }(),
            g = function(e) {
                function t(i) {
                    var r = e.call(this) || this;
                    return r.emitter = i, r.anchor.x = r.anchor.y = .5, r.velocity = new a.Point, r.rotationSpeed = 0, r.rotationAcceleration = 0, r.maxLife = 0, r.age = 0, r.ease = null, r.extraData = null, r.alphaList = new b, r.speedList = new b, r.speedMultiplier = 1, r.acceleration = new a.Point, r.maxSpeed = NaN, r.scaleList = new b, r.scaleMultiplier = 1, r.colorList = new b(!0), r._doAlpha = !1, r._doScale = !1, r._doSpeed = !1, r._doAcceleration = !1, r._doColor = !1, r._doNormalMovement = !1, r._oneOverLife = 0, r.next = null, r.prev = null, r.init = r.init, r.Particle_init = t.prototype.init, r.update = r.update, r.Particle_update = t.prototype.update, r.Sprite_destroy = e.prototype.destroy, r.Particle_destroy = t.prototype.destroy, r.applyArt = r.applyArt, r.kill = r.kill, r
                }
                return l(t, e), t.prototype.init = function() {
                    this.age = 0, this.velocity.x = this.speedList.current.value * this.speedMultiplier, this.velocity.y = 0, n.rotatePoint(this.rotation, this.velocity), this.noRotation ? this.rotation = 0 : this.rotation *= n.DEG_TO_RADS, this.rotationSpeed *= n.DEG_TO_RADS, this.rotationAcceleration *= n.DEG_TO_RADS, this.alpha = this.alphaList.current.value, this.scale.x = this.scale.y = this.scaleList.current.value, this._doAlpha = !!this.alphaList.current.next, this._doSpeed = !!this.speedList.current.next, this._doScale = !!this.scaleList.current.next, this._doColor = !!this.colorList.current.next, this._doAcceleration = 0 !== this.acceleration.x || 0 !== this.acceleration.y, this._doNormalMovement = this._doSpeed || 0 !== this.speedList.current.value || this._doAcceleration, this._oneOverLife = 1 / this.maxLife;
                    var e = this.colorList.current.value;
                    this.tint = n.combineRGBComponents(e.r, e.g, e.b), this.visible = !0
                }, t.prototype.applyArt = function(e) {
                    this.texture = e || a.Texture.EMPTY
                }, t.prototype.update = function(e) {
                    if (this.age += e, this.age >= this.maxLife || this.age < 0) return this.kill(), -1;
                    var t = this.age * this._oneOverLife;
                    if (this.ease && (t = 4 === this.ease.length ? this.ease(t, 0, 1, 1) : this.ease(t)), this._doAlpha && (this.alpha = this.alphaList.interpolate(t)), this._doScale) {
                        var i = this.scaleList.interpolate(t) * this.scaleMultiplier;
                        this.scale.x = this.scale.y = i
                    }
                    if (this._doNormalMovement) {
                        var r = void 0,
                            a = void 0;
                        if (this._doSpeed) {
                            var s = this.speedList.interpolate(t) * this.speedMultiplier;
                            n.normalize(this.velocity), n.scaleBy(this.velocity, s), r = this.velocity.x * e, a = this.velocity.y * e
                        } else if (this._doAcceleration) {
                            var o = this.velocity.x,
                                u = this.velocity.y;
                            if (this.velocity.x += this.acceleration.x * e, this.velocity.y += this.acceleration.y * e, this.maxSpeed) {
                                var h = n.length(this.velocity);
                                h > this.maxSpeed && n.scaleBy(this.velocity, this.maxSpeed / h)
                            }
                            r = (o + this.velocity.x) / 2 * e, a = (u + this.velocity.y) / 2 * e
                        } else r = this.velocity.x * e, a = this.velocity.y * e;
                        this.position.x += r, this.position.y += a
                    }
                    if (this._doColor && (this.tint = this.colorList.interpolate(t)), 0 !== this.rotationAcceleration) {
                        var l = this.rotationSpeed + this.rotationAcceleration * e;
                        this.rotation += (this.rotationSpeed + l) / 2 * e, this.rotationSpeed = l
                    } else 0 !== this.rotationSpeed ? this.rotation += this.rotationSpeed * e : this.acceleration && !this.noRotation && (this.rotation = Math.atan2(this.velocity.y, this.velocity.x));
                    return t
                }, t.prototype.kill = function() {
                    this.emitter.recycle(this)
                }, t.prototype.destroy = function() {
                    this.parent && this.parent.removeChild(this), this.Sprite_destroy(), this.emitter = this.velocity = this.colorList = this.scaleList = this.alphaList = this.speedList = this.ease = this.next = this.prev = null
                }, t.parseArt = function(e) {
                    var t;
                    for (t = e.length; t >= 0; --t) "string" == typeof e[t] && (e[t] = u(e[t]));
                    if (n.verbose)
                        for (t = e.length - 1; t > 0; --t)
                            if (e[t].baseTexture !== e[t - 1].baseTexture) {
                                window.console;
                                break
                            }
                    return e
                }, t.parseData = function(e) {
                    return e
                }, t
            }(a.Sprite),
            y = function() {
                function e(e) {
                    this.segments = [], this.countingLengths = [], this.totalLength = 0, this.init(e)
                }
                return e.prototype.init = function(e) {
                    if (e && e.length)
                        if (Array.isArray(e[0]))
                            for (var t = 0; t < e.length; ++t)
                                for (var i = e[t], r = i[0], n = 1; n < i.length; ++n) {
                                    var a = i[n];
                                    this.segments.push({
                                        p1: r,
                                        p2: a,
                                        l: 0
                                    }), r = a
                                } else
                                    for (r = e[0], t = 1; t < e.length; ++t) {
                                        a = e[t];
                                        this.segments.push({
                                            p1: r,
                                            p2: a,
                                            l: 0
                                        }), r = a
                                    } else this.segments.push({
                                        p1: {
                                            x: 0,
                                            y: 0
                                        },
                                        p2: {
                                            x: 0,
                                            y: 0
                                        },
                                        l: 0
                                    });
                    for (t = 0; t < this.segments.length; ++t) {
                        var s = this.segments[t],
                            o = s.p1,
                            u = s.p2,
                            h = Math.sqrt((u.x - o.x) * (u.x - o.x) + (u.y - o.y) * (u.y - o.y));
                        this.segments[t].l = h, this.totalLength += h, this.countingLengths.push(this.totalLength)
                    }
                }, e.prototype.getRandomPoint = function(e) {
                    var t, i, r = Math.random() * this.totalLength;
                    if (1 === this.segments.length) t = this.segments[0], i = r;
                    else
                        for (var n = 0; n < this.countingLengths.length; ++n)
                            if (r < this.countingLengths[n]) {
                                t = this.segments[n], i = 0 === n ? r : r - this.countingLengths[n - 1];
                                break
                            }
                    i /= t.l || 1;
                    var a = t.p1,
                        s = t.p2;
                    e.x = a.x + i * (s.x - a.x), e.y = a.y + i * (s.y - a.y)
                }, e
            }(),
            A = a;
        _ = parseInt(/^(\d+)\./.exec(a.VERSION)[1], 10) < 5 ? A.ticker.shared : A.Ticker.shared;
        var w = new a.Point,
            x = function() {
                function e(e, t, i) {
                    this._currentImageIndex = -1, this._particleConstructor = g, this.particleImages = null, this.startAlpha = null, this.startSpeed = null, this.minimumSpeedMultiplier = 1, this.acceleration = null, this.maxSpeed = NaN, this.startScale = null, this.minimumScaleMultiplier = 1, this.startColor = null, this.minLifetime = 0, this.maxLifetime = 0, this.minStartRotation = 0, this.maxStartRotation = 0, this.noRotation = !1, this.minRotationSpeed = 0, this.maxRotationSpeed = 0, this.particleBlendMode = 0, this.customEase = null, this.extraData = null, this._frequency = 1, this.spawnChance = 1, this.maxParticles = 1e3, this.emitterLifetime = -1, this.spawnPos = null, this.spawnType = null, this._spawnFunc = null, this.spawnRect = null, this.spawnCircle = null, this.spawnPolygonalChain = null, this.particlesPerWave = 1, this.particleSpacing = 0, this.angleStart = 0, this.rotation = 0, this.ownerPos = null, this._prevEmitterPos = null, this._prevPosIsValid = !1, this._posChanged = !1, this._parent = null, this.addAtBack = !1, this.particleCount = 0, this._emit = !1, this._spawnTimer = 0, this._emitterLife = -1, this._activeParticlesFirst = null, this._activeParticlesLast = null, this._poolFirst = null, this._origConfig = null, this._origArt = null, this._autoUpdate = !1, this._currentImageIndex = -1, this._destroyWhenComplete = !1, this._completeCallback = null, this.parent = e, t && i && this.init(t, i), this.recycle = this.recycle, this.update = this.update, this.rotate = this.rotate, this.updateSpawnPos = this.updateSpawnPos, this.updateOwnerPos = this.updateOwnerPos
                }
                return Object.defineProperty(e.prototype, "orderedArt", {
                    get: function() {
                        return -1 !== this._currentImageIndex
                    },
                    set: function(e) {
                        this._currentImageIndex = e ? 0 : -1
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "frequency", {
                    get: function() {
                        return this._frequency
                    },
                    set: function(e) {
                        this._frequency = "number" == typeof e && e > 0 ? e : 1
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "particleConstructor", {
                    get: function() {
                        return this._particleConstructor
                    },
                    set: function(e) {
                        if (e !== this._particleConstructor) {
                            this._particleConstructor = e, this.cleanup();
                            for (var t = this._poolFirst; t; t = t.next) t.destroy();
                            this._poolFirst = null, this._origConfig && this._origArt && this.init(this._origArt, this._origConfig)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "parent", {
                    get: function() {
                        return this._parent
                    },
                    set: function(e) {
                        this.cleanup(), this._parent = e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.init = function(e, t) {
                    if (e && t) {
                        this.cleanup(), this._origConfig = t, this._origArt = e, e = Array.isArray(e) ? e.slice() : [e];
                        var i = this._particleConstructor;
                        this.particleImages = i.parseArt ? i.parseArt(e) : e, t.alpha ? this.startAlpha = s.createList(t.alpha) : this.startAlpha = new s(1, 0), t.speed ? (this.startSpeed = s.createList(t.speed), this.minimumSpeedMultiplier = ("minimumSpeedMultiplier" in t ? t.minimumSpeedMultiplier : t.speed.minimumSpeedMultiplier) || 1) : (this.minimumSpeedMultiplier = 1, this.startSpeed = new s(0, 0));
                        var r = t.acceleration;
                        r && (r.x || r.y) ? (this.startSpeed.next = null, this.acceleration = new a.Point(r.x, r.y), this.maxSpeed = t.maxSpeed || NaN) : this.acceleration = new a.Point, t.scale ? (this.startScale = s.createList(t.scale), this.minimumScaleMultiplier = ("minimumScaleMultiplier" in t ? t.minimumScaleMultiplier : t.scale.minimumScaleMultiplier) || 1) : (this.startScale = new s(1, 0), this.minimumScaleMultiplier = 1), t.color ? this.startColor = s.createList(t.color) : this.startColor = new s({
                            r: 255,
                            g: 255,
                            b: 255
                        }, 0), t.startRotation ? (this.minStartRotation = t.startRotation.min, this.maxStartRotation = t.startRotation.max) : this.minStartRotation = this.maxStartRotation = 0, t.noRotation && (this.minStartRotation || this.maxStartRotation) ? this.noRotation = !!t.noRotation : this.noRotation = !1, t.rotationSpeed ? (this.minRotationSpeed = t.rotationSpeed.min, this.maxRotationSpeed = t.rotationSpeed.max) : this.minRotationSpeed = this.maxRotationSpeed = 0, this.rotationAcceleration = t.rotationAcceleration || 0, this.minLifetime = t.lifetime.min, this.maxLifetime = t.lifetime.max, this.particleBlendMode = n.getBlendMode(t.blendMode), t.ease ? this.customEase = "function" == typeof t.ease ? t.ease : n.generateEase(t.ease) : this.customEase = null, i.parseData ? this.extraData = i.parseData(t.extraData) : this.extraData = t.extraData || null, this.spawnRect = this.spawnCircle = null, this.particlesPerWave = 1, t.particlesPerWave && t.particlesPerWave > 1 && (this.particlesPerWave = t.particlesPerWave), this.particleSpacing = 0, this.angleStart = 0, this.parseSpawnType(t), this.frequency = t.frequency, this.spawnChance = "number" == typeof t.spawnChance && t.spawnChance > 0 ? t.spawnChance : 1, this.emitterLifetime = t.emitterLifetime || -1, this.maxParticles = t.maxParticles > 0 ? t.maxParticles : 1e3, this.addAtBack = !!t.addAtBack, this.rotation = 0, this.ownerPos = new a.Point, this.spawnPos = new a.Point(t.pos.x, t.pos.y), this.initAdditional(e, t), this._prevEmitterPos = this.spawnPos.clone(), this._prevPosIsValid = !1, this._spawnTimer = 0, this.emit = void 0 === t.emit || !!t.emit, this.autoUpdate = !!t.autoUpdate, this.orderedArt = !!t.orderedArt
                    }
                }, e.prototype.initAdditional = function(e, t) {}, e.prototype.parseSpawnType = function(e) {
                    var t;
                    switch (e.spawnType) {
                        case "rect":
                            this.spawnType = "rect", this._spawnFunc = this._spawnRect;
                            var i = e.spawnRect;
                            this.spawnRect = new a.Rectangle(i.x, i.y, i.w, i.h);
                            break;
                        case "circle":
                            this.spawnType = "circle", this._spawnFunc = this._spawnCircle, t = e.spawnCircle, this.spawnCircle = new a.Circle(t.x, t.y, t.r);
                            break;
                        case "ring":
                            this.spawnType = "ring", this._spawnFunc = this._spawnRing, t = e.spawnCircle, this.spawnCircle = new a.Circle(t.x, t.y, t.r), this.spawnCircle.minRadius = t.minR;
                            break;
                        case "burst":
                            this.spawnType = "burst", this._spawnFunc = this._spawnBurst, this.particleSpacing = e.particleSpacing, this.angleStart = e.angleStart ? e.angleStart : 0;
                            break;
                        case "point":
                            this.spawnType = "point", this._spawnFunc = this._spawnPoint;
                            break;
                        case "polygonalChain":
                            this.spawnType = "polygonalChain", this._spawnFunc = this._spawnPolygonalChain, this.spawnPolygonalChain = new y(e.spawnPolygon);
                            break;
                        default:
                            this.spawnType = "point", this._spawnFunc = this._spawnPoint
                    }
                }, e.prototype.recycle = function(e) {
                    e.next && (e.next.prev = e.prev), e.prev && (e.prev.next = e.next), e === this._activeParticlesLast && (this._activeParticlesLast = e.prev), e === this._activeParticlesFirst && (this._activeParticlesFirst = e.next), e.prev = null, e.next = this._poolFirst, this._poolFirst = e, e.parent && e.parent.removeChild(e), --this.particleCount
                }, e.prototype.rotate = function(e) {
                    if (this.rotation !== e) {
                        var t = e - this.rotation;
                        this.rotation = e, n.rotatePoint(t, this.spawnPos), this._posChanged = !0
                    }
                }, e.prototype.updateSpawnPos = function(e, t) {
                    this._posChanged = !0, this.spawnPos.x = e, this.spawnPos.y = t
                }, e.prototype.updateOwnerPos = function(e, t) {
                    this._posChanged = !0, this.ownerPos.x = e, this.ownerPos.y = t
                }, e.prototype.resetPositionTracking = function() {
                    this._prevPosIsValid = !1
                }, Object.defineProperty(e.prototype, "emit", {
                    get: function() {
                        return this._emit
                    },
                    set: function(e) {
                        this._emit = !!e, this._emitterLife = this.emitterLifetime
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "autoUpdate", {
                    get: function() {
                        return this._autoUpdate
                    },
                    set: function(e) {
                        this._autoUpdate && !e ? _.remove(this.update, this) : !this._autoUpdate && e && _.add(this.update, this), this._autoUpdate = !!e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.playOnceAndDestroy = function(e) {
                    this.autoUpdate = !0, this.emit = !0, this._destroyWhenComplete = !0, this._completeCallback = e
                }, e.prototype.playOnce = function(e) {
                    this.emit = !0, this._completeCallback = e
                }, e.prototype.update = function(e) {
                    if (this._autoUpdate && (e = e / a.settings.TARGET_FPMS / 1e3), this._parent) {
                        var t, i, r, n, s;
                        for (i = this._activeParticlesFirst; i; i = r) r = i.next, i.update(e);
                        this._prevPosIsValid && (n = this._prevEmitterPos.x, s = this._prevEmitterPos.y);
                        var o = this.ownerPos.x + this.spawnPos.x,
                            u = this.ownerPos.y + this.spawnPos.y;
                        if (this._emit)
                            for (this._spawnTimer -= e < 0 ? 0 : e; this._spawnTimer <= 0;) {
                                if (this._emitterLife >= 0 && (this._emitterLife -= this._frequency, this._emitterLife <= 0)) {
                                    this._spawnTimer = 0, this._emitterLife = 0, this.emit = !1;
                                    break
                                }
                                if (this.particleCount >= this.maxParticles) this._spawnTimer += this._frequency;
                                else {
                                    var h = void 0;
                                    if (h = this.minLifetime === this.maxLifetime ? this.minLifetime : Math.random() * (this.maxLifetime - this.minLifetime) + this.minLifetime, -this._spawnTimer < h) {
                                        var l = void 0,
                                            f = void 0;
                                        if (this._prevPosIsValid && this._posChanged) {
                                            var c = 1 + this._spawnTimer / e;
                                            l = (o - n) * c + n, f = (u - s) * c + s
                                        } else l = o, f = u;
                                        t = 0;
                                        for (var d = Math.min(this.particlesPerWave, this.maxParticles - this.particleCount); t < d; ++t)
                                            if (!(this.spawnChance < 1 && Math.random() >= this.spawnChance)) {
                                                var p = void 0;
                                                if (this._poolFirst ? (p = this._poolFirst, this._poolFirst = this._poolFirst.next, p.next = null) : p = new this.particleConstructor(this), this.particleImages.length > 1 ? -1 !== this._currentImageIndex ? (p.applyArt(this.particleImages[this._currentImageIndex++]), (this._currentImageIndex < 0 || this._currentImageIndex >= this.particleImages.length) && (this._currentImageIndex = 0)) : p.applyArt(this.particleImages[Math.floor(Math.random() * this.particleImages.length)]) : p.applyArt(this.particleImages[0]), p.alphaList.reset(this.startAlpha), 1 !== this.minimumSpeedMultiplier && (p.speedMultiplier = Math.random() * (1 - this.minimumSpeedMultiplier) + this.minimumSpeedMultiplier), p.speedList.reset(this.startSpeed), p.acceleration.x = this.acceleration.x, p.acceleration.y = this.acceleration.y, p.maxSpeed = this.maxSpeed, 1 !== this.minimumScaleMultiplier && (p.scaleMultiplier = Math.random() * (1 - this.minimumScaleMultiplier) + this.minimumScaleMultiplier), p.scaleList.reset(this.startScale), p.colorList.reset(this.startColor), this.minRotationSpeed === this.maxRotationSpeed ? p.rotationSpeed = this.minRotationSpeed : p.rotationSpeed = Math.random() * (this.maxRotationSpeed - this.minRotationSpeed) + this.minRotationSpeed, p.rotationAcceleration = this.rotationAcceleration, p.noRotation = this.noRotation, p.maxLife = h, p.blendMode = this.particleBlendMode, p.ease = this.customEase, p.extraData = this.extraData, this.applyAdditionalProperties(p), this._spawnFunc(p, l, f, t), p.init(), p.parent) {
                                                    var v = this._parent.children;
                                                    if (v[0] === p) v.shift();
                                                    else if (v[v.length - 1] === p) v.pop();
                                                    else {
                                                        var m = v.indexOf(p);
                                                        v.splice(m, 1)
                                                    }
                                                    this.addAtBack ? v.unshift(p) : v.push(p)
                                                } else this.addAtBack ? this._parent.addChildAt(p, 0) : this._parent.addChild(p);
                                                this._activeParticlesLast ? (this._activeParticlesLast.next = p, p.prev = this._activeParticlesLast, this._activeParticlesLast = p) : this._activeParticlesLast = this._activeParticlesFirst = p, ++this.particleCount, p.update(-this._spawnTimer)
                                            }
                                    }
                                    this._spawnTimer += this._frequency
                                }
                            }
                        if (this._posChanged && (this._prevEmitterPos.x = o, this._prevEmitterPos.y = u, this._prevPosIsValid = !0, this._posChanged = !1), !this._emit && !this._activeParticlesFirst) {
                            if (this._completeCallback) {
                                var _ = this._completeCallback;
                                this._completeCallback = null, _()
                            }
                            this._destroyWhenComplete && this.destroy()
                        }
                    }
                }, e.prototype.applyAdditionalProperties = function(e) {}, e.prototype._spawnPoint = function(e, t, i) {
                    this.minStartRotation === this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, e.position.x = t, e.position.y = i
                }, e.prototype._spawnRect = function(e, t, i) {
                    this.minStartRotation === this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, w.x = Math.random() * this.spawnRect.width + this.spawnRect.x, w.y = Math.random() * this.spawnRect.height + this.spawnRect.y, 0 !== this.rotation && n.rotatePoint(this.rotation, w), e.position.x = t + w.x, e.position.y = i + w.y
                }, e.prototype._spawnCircle = function(e, t, i) {
                    this.minStartRotation === this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, w.x = Math.random() * this.spawnCircle.radius, w.y = 0, n.rotatePoint(360 * Math.random(), w), w.x += this.spawnCircle.x, w.y += this.spawnCircle.y, 0 !== this.rotation && n.rotatePoint(this.rotation, w), e.position.x = t + w.x, e.position.y = i + w.y
                }, e.prototype._spawnRing = function(e, t, i) {
                    var r = this.spawnCircle;
                    this.minStartRotation === this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, r.minRadius !== r.radius ? w.x = Math.random() * (r.radius - r.minRadius) + r.minRadius : w.x = r.radius, w.y = 0;
                    var a = 360 * Math.random();
                    e.rotation += a, n.rotatePoint(a, w), w.x += this.spawnCircle.x, w.y += this.spawnCircle.y, 0 !== this.rotation && n.rotatePoint(this.rotation, w), e.position.x = t + w.x, e.position.y = i + w.y
                }, e.prototype._spawnPolygonalChain = function(e, t, i) {
                    this.minStartRotation === this.maxStartRotation ? e.rotation = this.minStartRotation + this.rotation : e.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation, this.spawnPolygonalChain.getRandomPoint(w), 0 !== this.rotation && n.rotatePoint(this.rotation, w), e.position.x = t + w.x, e.position.y = i + w.y
                }, e.prototype._spawnBurst = function(e, t, i, r) {
                    0 === this.particleSpacing ? e.rotation = 360 * Math.random() : e.rotation = this.angleStart + this.particleSpacing * r + this.rotation, e.position.x = t, e.position.y = i
                }, e.prototype.cleanup = function() {
                    var e, t;
                    for (e = this._activeParticlesFirst; e; e = t) t = e.next, this.recycle(e), e.parent && e.parent.removeChild(e);
                    this._activeParticlesFirst = this._activeParticlesLast = null, this.particleCount = 0
                }, e.prototype.destroy = function() {
                    var e;
                    this.autoUpdate = !1, this.cleanup();
                    for (var t = this._poolFirst; t; t = e) e = t.next, t.destroy();
                    this._poolFirst = this._parent = this.particleImages = this.spawnPos = this.ownerPos = this.startColor = this.startScale = this.startAlpha = this.startSpeed = this.customEase = this._completeCallback = null
                }, e
            }(),
            k = new a.Point,
            T = ["pow", "sqrt", "abs", "floor", "round", "ceil", "E", "PI", "sin", "cos", "tan", "asin", "acos", "atan", "atan2", "log"],
            E = new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(T).join("|"), "g");
        ! function(e) {
            function t(t) {
                var i = e.call(this, t) || this;
                return i.path = null, i.initialRotation = 0, i.initialPosition = new a.Point, i.movement = 0, i
            }
            l(t, e), t.prototype.init = function() {
                this.initialRotation = this.rotation, this.Particle_init(), this.path = this.extraData.path, this._doNormalMovement = !this.path, this.movement = 0, this.initialPosition.x = this.position.x, this.initialPosition.y = this.position.y
            }, t.prototype.update = function(e) {
                var t = this.Particle_update(e);
                if (t >= 0 && this.path) {
                    if (this._doSpeed) {
                        var i = this.speedList.interpolate(t) * this.speedMultiplier;
                        this.movement += i * e
                    } else {
                        i = this.speedList.current.value * this.speedMultiplier;
                        this.movement += i * e
                    }
                    k.x = this.movement, k.y = this.path(this.movement), n.rotatePoint(this.initialRotation, k), this.position.x = this.initialPosition.x + k.x, this.position.y = this.initialPosition.y + k.y
                }
                return t
            }, t.prototype.destroy = function() {
                this.Particle_destroy(), this.path = this.initialPosition = null
            }, t.parseArt = function(e) {
                return g.parseArt(e)
            }, t.parseData = function(e) {
                var t = {};
                if (e && e.path) try {
                    t.path = function(e) {
                        for (var t = e.match(E), i = t.length - 1; i >= 0; --i) T.indexOf(t[i]) >= 0 && (t[i] = "Math." + t[i]);
                        return e = t.join(""), new Function("x", "return " + e + ";")
                    }(e.path)
                } catch (e) {
                    n.verbose, t.path = null
                } else n.verbose, t.path = null;
                return t
            }
        }(g);
        var S = function(e) {
            function t(t) {
                var i = e.call(this, t) || this;
                return i.textures = null, i.duration = 0, i.framerate = 0, i.elapsed = 0, i.loop = !1, i
            }
            return l(t, e), t.prototype.init = function() {
                this.Particle_init(), this.elapsed = 0, this.framerate < 0 && (this.duration = this.maxLife, this.framerate = this.textures.length / this.duration)
            }, t.prototype.applyArt = function(e) {
                this.textures = e.textures, this.framerate = e.framerate, this.duration = e.duration, this.loop = e.loop
            }, t.prototype.update = function(e) {
                var t = this.Particle_update(e);
                if (t >= 0) {
                    this.elapsed += e, this.elapsed > this.duration && (this.loop ? this.elapsed = this.elapsed % this.duration : this.elapsed = this.duration - 1e-6);
                    var i = this.elapsed * this.framerate + 1e-7 | 0;
                    this.texture = this.textures[i] || a.Texture.EMPTY
                }
                return t
            }, t.prototype.destroy = function() {
                this.Particle_destroy(), this.textures = null
            }, t.parseArt = function(e) {
                for (var t = [], i = 0; i < e.length; ++i) {
                    for (var r = e[i], n = t[i] = {}, s = n.textures = [], o = r.textures, h = 0; h < o.length; ++h) {
                        var l = o[h];
                        if ("string" == typeof l) s.push(u(l));
                        else if (l instanceof a.Texture) s.push(l);
                        else {
                            var f = l.count || 1;
                            for (l = "string" == typeof l.texture ? u(l.texture) : l.texture; f > 0; --f) s.push(l)
                        }
                    }
                    "matchLife" === r.framerate ? (n.framerate = -1, n.duration = 0, n.loop = !1) : (n.loop = !!r.loop, n.framerate = r.framerate > 0 ? r.framerate : 60, n.duration = s.length / n.framerate)
                }
                return t
            }, t
        }(g)
    }, , function(e, t, i) {
        "use strict";
        var r = i(206),
            n = i(207);

        function a() {
            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
        }
        t.parse = g, t.resolve = function(e, t) {
            return g(e, !1, !0).resolve(t)
        }, t.resolveObject = function(e, t) {
            return e ? g(e, !1, !0).resolveObject(t) : t
        }, t.format = function(e) {
            n.isString(e) && (e = g(e));
            return e instanceof a ? e.format() : a.prototype.format.call(e)
        }, t.Url = a;
        var s = /^([a-z0-9.+-]+:)/i,
            o = /:[0-9]*$/,
            u = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
            h = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]),
            l = ["'"].concat(h),
            f = ["%", "/", "?", ";", "#"].concat(l),
            c = ["/", "?", "#"],
            d = /^[+a-z0-9A-Z_-]{0,63}$/,
            p = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
            v = {
                javascript: !0,
                "javascript:": !0
            },
            m = {
                javascript: !0,
                "javascript:": !0
            },
            _ = {
                http: !0,
                https: !0,
                ftp: !0,
                gopher: !0,
                file: !0,
                "http:": !0,
                "https:": !0,
                "ftp:": !0,
                "gopher:": !0,
                "file:": !0
            },
            b = i(208);

        function g(e, t, i) {
            if (e && n.isObject(e) && e instanceof a) return e;
            var r = new a;
            return r.parse(e, t, i), r
        }
        a.prototype.parse = function(e, t, i) {
            if (!n.isString(e)) throw new TypeError("Parameter 'url' must be a string, not " + typeof e);
            var a = e.indexOf("?"),
                o = -1 !== a && a < e.indexOf("#") ? "?" : "#",
                h = e.split(o);
            h[0] = h[0].replace(/\\/g, "/");
            var g = e = h.join(o);
            if (g = g.trim(), !i && 1 === e.split("#").length) {
                var y = u.exec(g);
                if (y) return this.path = g, this.href = g, this.pathname = y[1], y[2] ? (this.search = y[2], this.query = t ? b.parse(this.search.substr(1)) : this.search.substr(1)) : t && (this.search = "", this.query = {}), this
            }
            var A = s.exec(g);
            if (A) {
                var w = (A = A[0]).toLowerCase();
                this.protocol = w, g = g.substr(A.length)
            }
            if (i || A || g.match(/^\/\/[^@\/]+@[^@\/]+/)) {
                var x = "//" === g.substr(0, 2);
                !x || A && m[A] || (g = g.substr(2), this.slashes = !0)
            }
            if (!m[A] && (x || A && !_[A])) {
                for (var k, T, E = -1, S = 0; S < c.length; S++) {
                    -1 !== (P = g.indexOf(c[S])) && (-1 === E || P < E) && (E = P)
                } - 1 !== (T = -1 === E ? g.lastIndexOf("@") : g.lastIndexOf("@", E)) && (k = g.slice(0, T), g = g.slice(T + 1), this.auth = decodeURIComponent(k)), E = -1;
                for (S = 0; S < f.length; S++) {
                    var P; - 1 !== (P = g.indexOf(f[S])) && (-1 === E || P < E) && (E = P)
                } - 1 === E && (E = g.length), this.host = g.slice(0, E), g = g.slice(E), this.parseHost(), this.hostname = this.hostname || "";
                var I = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
                if (!I)
                    for (var M = this.hostname.split(/\./), C = (S = 0, M.length); S < C; S++) {
                        var O = M[S];
                        if (O && !O.match(d)) {
                            for (var R = "", D = 0, F = O.length; D < F; D++) O.charCodeAt(D) > 127 ? R += "x" : R += O[D];
                            if (!R.match(d)) {
                                var B = M.slice(0, S),
                                    N = M.slice(S + 1),
                                    L = O.match(p);
                                L && (B.push(L[1]), N.unshift(L[2])), N.length && (g = "/" + N.join(".") + g), this.hostname = B.join(".");
                                break
                            }
                        }
                    }
                this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), I || (this.hostname = r.toASCII(this.hostname));
                var U = this.port ? ":" + this.port : "",
                    V = this.hostname || "";
                this.host = V + U, this.href += this.host, I && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== g[0] && (g = "/" + g))
            }
            if (!v[w])
                for (S = 0, C = l.length; S < C; S++) {
                    var X = l[S];
                    if (-1 !== g.indexOf(X)) {
                        var j = encodeURIComponent(X);
                        j === X && (j = escape(X)), g = g.split(X).join(j)
                    }
                }
            var G = g.indexOf("#"); - 1 !== G && (this.hash = g.substr(G), g = g.slice(0, G));
            var $ = g.indexOf("?");
            if (-1 !== $ ? (this.search = g.substr($), this.query = g.substr($ + 1), t && (this.query = b.parse(this.query)), g = g.slice(0, $)) : t && (this.search = "", this.query = {}), g && (this.pathname = g), _[w] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
                U = this.pathname || "";
                var H = this.search || "";
                this.path = U + H
            }
            return this.href = this.format(), this
        }, a.prototype.format = function() {
            var e = this.auth || "";
            e && (e = (e = encodeURIComponent(e)).replace(/%3A/i, ":"), e += "@");
            var t = this.protocol || "",
                i = this.pathname || "",
                r = this.hash || "",
                a = !1,
                s = "";
            this.host ? a = e + this.host : this.hostname && (a = e + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (a += ":" + this.port)), this.query && n.isObject(this.query) && Object.keys(this.query).length && (s = b.stringify(this.query));
            var o = this.search || s && "?" + s || "";
            return t && ":" !== t.substr(-1) && (t += ":"), this.slashes || (!t || _[t]) && !1 !== a ? (a = "//" + (a || ""), i && "/" !== i.charAt(0) && (i = "/" + i)) : a || (a = ""), r && "#" !== r.charAt(0) && (r = "#" + r), o && "?" !== o.charAt(0) && (o = "?" + o), t + a + (i = i.replace(/[?#]/g, function(e) {
                return encodeURIComponent(e)
            })) + (o = o.replace("#", "%23")) + r
        }, a.prototype.resolve = function(e) {
            return this.resolveObject(g(e, !1, !0)).format()
        }, a.prototype.resolveObject = function(e) {
            if (n.isString(e)) {
                var t = new a;
                t.parse(e, !1, !0), e = t
            }
            for (var i = new a, r = Object.keys(this), s = 0; s < r.length; s++) {
                var o = r[s];
                i[o] = this[o]
            }
            if (i.hash = e.hash, "" === e.href) return i.href = i.format(), i;
            if (e.slashes && !e.protocol) {
                for (var u = Object.keys(e), h = 0; h < u.length; h++) {
                    var l = u[h];
                    "protocol" !== l && (i[l] = e[l])
                }
                return _[i.protocol] && i.hostname && !i.pathname && (i.path = i.pathname = "/"), i.href = i.format(), i
            }
            if (e.protocol && e.protocol !== i.protocol) {
                if (!_[e.protocol]) {
                    for (var f = Object.keys(e), c = 0; c < f.length; c++) {
                        var d = f[c];
                        i[d] = e[d]
                    }
                    return i.href = i.format(), i
                }
                if (i.protocol = e.protocol, e.host || m[e.protocol]) i.pathname = e.pathname;
                else {
                    for (var p = (e.pathname || "").split("/"); p.length && !(e.host = p.shift()););
                    e.host || (e.host = ""), e.hostname || (e.hostname = ""), "" !== p[0] && p.unshift(""), p.length < 2 && p.unshift(""), i.pathname = p.join("/")
                }
                if (i.search = e.search, i.query = e.query, i.host = e.host || "", i.auth = e.auth, i.hostname = e.hostname || e.host, i.port = e.port, i.pathname || i.search) {
                    var v = i.pathname || "",
                        b = i.search || "";
                    i.path = v + b
                }
                return i.slashes = i.slashes || e.slashes, i.href = i.format(), i
            }
            var g = i.pathname && "/" === i.pathname.charAt(0),
                y = e.host || e.pathname && "/" === e.pathname.charAt(0),
                A = y || g || i.host && e.pathname,
                w = A,
                x = i.pathname && i.pathname.split("/") || [],
                k = (p = e.pathname && e.pathname.split("/") || [], i.protocol && !_[i.protocol]);
            if (k && (i.hostname = "", i.port = null, i.host && ("" === x[0] ? x[0] = i.host : x.unshift(i.host)), i.host = "", e.protocol && (e.hostname = null, e.port = null, e.host && ("" === p[0] ? p[0] = e.host : p.unshift(e.host)), e.host = null), A = A && ("" === p[0] || "" === x[0])), y) i.host = e.host || "" === e.host ? e.host : i.host, i.hostname = e.hostname || "" === e.hostname ? e.hostname : i.hostname, i.search = e.search, i.query = e.query, x = p;
            else if (p.length) x || (x = []), x.pop(), x = x.concat(p), i.search = e.search, i.query = e.query;
            else if (!n.isNullOrUndefined(e.search)) {
                if (k) i.hostname = i.host = x.shift(), (I = !!(i.host && i.host.indexOf("@") > 0) && i.host.split("@")) && (i.auth = I.shift(), i.host = i.hostname = I.shift());
                return i.search = e.search, i.query = e.query, n.isNull(i.pathname) && n.isNull(i.search) || (i.path = (i.pathname ? i.pathname : "") + (i.search ? i.search : "")), i.href = i.format(), i
            }
            if (!x.length) return i.pathname = null, i.search ? i.path = "/" + i.search : i.path = null, i.href = i.format(), i;
            for (var T = x.slice(-1)[0], E = (i.host || e.host || x.length > 1) && ("." === T || ".." === T) || "" === T, S = 0, P = x.length; P >= 0; P--) "." === (T = x[P]) ? x.splice(P, 1) : ".." === T ? (x.splice(P, 1), S++) : S && (x.splice(P, 1), S--);
            if (!A && !w)
                for (; S--; S) x.unshift("..");
            !A || "" === x[0] || x[0] && "/" === x[0].charAt(0) || x.unshift(""), E && "/" !== x.join("/").substr(-1) && x.push("");
            var I, M = "" === x[0] || x[0] && "/" === x[0].charAt(0);
            k && (i.hostname = i.host = M ? "" : x.length ? x.shift() : "", (I = !!(i.host && i.host.indexOf("@") > 0) && i.host.split("@")) && (i.auth = I.shift(), i.host = i.hostname = I.shift()));
            return (A = A || i.host && x.length) && !M && x.unshift(""), x.length ? i.pathname = x.join("/") : (i.pathname = null, i.path = null), n.isNull(i.pathname) && n.isNull(i.search) || (i.path = (i.pathname ? i.pathname : "") + (i.search ? i.search : "")), i.auth = e.auth || i.auth, i.slashes = i.slashes || e.slashes, i.href = i.format(), i
        }, a.prototype.parseHost = function() {
            var e = this.host,
                t = o.exec(e);
            t && (":" !== (t = t[0]) && (this.port = t.substr(1)), e = e.substr(0, e.length - t.length)), e && (this.hostname = e)
        }
    }, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, i) {
        (function(i) {
            var r, n, a;
            ! function(i, s) {
                "use strict";
                n = [], void 0 === (a = "function" == typeof(r = function() {
                    var e = {
                        alignVert: !1,
                        alignHoriz: !1,
                        multiLine: !1,
                        detectMultiLine: !0,
                        minFontSize: 6,
                        maxFontSize: 80,
                        reProcess: !0,
                        widthOnly: !1,
                        alignVertWithFlexbox: !1
                    };
                    return function(i, r) {
                        r || (r = {});
                        var n = {};
                        for (var a in e) r.hasOwnProperty(a) ? n[a] = r[a] : n[a] = e[a];
                        "function" == typeof i.toArray && (i = i.toArray());
                        var s = Object.prototype.toString.call(i);
                        "[object Array]" !== s && "[object NodeList]" !== s && "[object HTMLCollection]" !== s && (i = [i]);
                        for (var o = 0; o < i.length; o++) t(i[o], n)
                    };

                    function t(e, t) {
                        if (r = e, !("object" == typeof HTMLElement ? r instanceof HTMLElement : r && "object" == typeof r && null !== r && 1 === r.nodeType && "string" == typeof r.nodeName) || !t.reProcess && e.getAttribute("textFitted")) return !1;
                        var r, n, a, s, o, u, h, l;
                        if (t.reProcess || e.setAttribute("textFitted", 1), s = e.innerHTML, o = function(e) {
                                var t = window.getComputedStyle(e, null);
                                return e.clientWidth - parseInt(t.getPropertyValue("padding-left"), 10) - parseInt(t.getPropertyValue("padding-right"), 10)
                            }(e), a = function(e) {
                                var t = window.getComputedStyle(e, null);
                                return e.clientHeight - parseInt(t.getPropertyValue("padding-top"), 10) - parseInt(t.getPropertyValue("padding-bottom"), 10)
                            }(e), !o || !t.widthOnly && !a) throw t.widthOnly ? new Error("Set a static width on the target element " + e.outerHTML + " before using textFit!") : new Error("Set a static height and width on the target element " + e.outerHTML + " before using textFit!"); - 1 === s.indexOf("textFitted") ? ((n = document.createElement("span")).className = "textFitted", n.style.display = "inline-block", n.innerHTML = s, e.innerHTML = "", e.appendChild(n)) : i(n = e.querySelector("span.textFitted"), "textFitAlignVert") && (n.className = n.className.replace("textFitAlignVert", ""), n.style.height = "", e.className.replace("textFitAlignVertFlex", "")), t.alignHoriz && (e.style["text-align"] = "center", n.style["text-align"] = "center");
                        var f = t.multiLine;
                        t.detectMultiLine && !f && n.scrollHeight >= 2 * parseInt(window.getComputedStyle(n)["font-size"], 10) && (f = !0), f || (e.style["white-space"] = "nowrap"), u = t.minFontSize, l = t.maxFontSize;
                        for (var c = u; u <= l;) h = l + u >> 1, n.style.fontSize = h + "px", n.scrollWidth <= o && (t.widthOnly || n.scrollHeight <= a) ? (c = h, u = h + 1) : l = h - 1;
                        if (n.style.fontSize != c + "px" && (n.style.fontSize = c + "px"), t.alignVert) {
                            ! function() {
                                if (document.getElementById("textFitStyleSheet")) return;
                                var e = [".textFitAlignVert{", "position: absolute;", "top: 0; right: 0; bottom: 0; left: 0;", "margin: auto;", "display: flex;", "justify-content: center;", "flex-direction: column;", "}", ".textFitAlignVertFlex{", "display: flex;", "}", ".textFitAlignVertFlex .textFitAlignVert{", "position: static;", "}"].join(""),
                                    t = document.createElement("style");
                                t.type = "text/css", t.id = "textFitStyleSheet", t.innerHTML = e, document.body.appendChild(t)
                            }();
                            var d = n.scrollHeight;
                            "static" === window.getComputedStyle(e).position && (e.style.position = "relative"), i(n, "textFitAlignVert") || (n.className = n.className + " textFitAlignVert"), n.style.height = d + "px", t.alignVertWithFlexbox && !i(e, "textFitAlignVertFlex") && (e.className = e.className + " textFitAlignVertFlex")
                        }
                    }

                    function i(e, t) {
                        return (" " + e.className + " ").indexOf(" " + t + " ") > -1
                    }
                }) ? r.apply(t, n) : r) || (e.exports = a)
            }()
        }).call(this, i(54))
    }, , , function(e, t) {
        var i, r, n = e.exports = {};

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

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

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

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

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

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

        function v() {}
        n.nextTick = function(e) {
            var t = new Array(arguments.length - 1);
            if (arguments.length > 1)
                for (var i = 1; i < arguments.length; i++) t[i - 1] = arguments[i];
            h.push(new p(e, t)), 1 !== h.length || l || o(d)
        }, p.prototype.run = function() {
            this.fun.apply(null, this.array)
        }, n.title = "browser", n.browser = !0, n.env = {}, n.argv = [], n.version = "", n.versions = {}, n.on = v, n.addListener = v, n.once = v, n.off = v, n.removeListener = v, n.removeAllListeners = v, n.emit = v, n.prependListener = v, n.prependOnceListener = v, n.listeners = function(e) {
            return []
        }, n.binding = function(e) {
            throw new Error("process.binding is not supported")
        }, n.cwd = function() {
            return "/"
        }, n.chdir = function(e) {
            throw new Error("process.chdir is not supported")
        }, n.umask = function() {
            return 0
        }
    }, function(e, t, i) {
        (function(e) {
            var t, i, r, n = this && this.__extends || (t = function(e, i) {
                return (t = Object.setPrototypeOf || {
                        __proto__: []
                    }
                    instanceof Array && function(e, t) {
                        e.__proto__ = t
                    } || function(e, t) {
                        for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i])
                    })(e, i)
            }, function(e, i) {
                function r() {
                    this.constructor = e
                }
                t(e, i), e.prototype = null === i ? Object.create(i) : (r.prototype = i.prototype, new r)
            });
            ! function(e) {
                ! function(e) {
                    var t, i, r, a = function() {
                        function e(e, t, i) {
                            if (null == e) throw new Error("name cannot be null.");
                            if (null == t) throw new Error("timelines cannot be null.");
                            this.name = e, this.timelines = t, this.timelineIds = [];
                            for (var r = 0; r < t.length; r++) this.timelineIds[t[r].getPropertyId()] = !0;
                            this.duration = i
                        }
                        return e.prototype.hasTimeline = function(e) {
                            return 1 == this.timelineIds[e]
                        }, e.prototype.apply = function(e, t, i, r, n, a, s, o) {
                            if (null == e) throw new Error("skeleton cannot be null.");
                            r && 0 != this.duration && (i %= this.duration, t > 0 && (t %= this.duration));
                            for (var u = this.timelines, h = 0, l = u.length; h < l; h++) u[h].apply(e, t, i, n, a, s, o)
                        }, e.binarySearch = function(e, t, i) {
                            void 0 === i && (i = 1);
                            var r = 0,
                                n = e.length / i - 2;
                            if (0 == n) return i;
                            for (var a = n >>> 1;;) {
                                if (e[(a + 1) * i] <= t ? r = a + 1 : n = a, r == n) return (r + 1) * i;
                                a = r + n >>> 1
                            }
                        }, e.linearSearch = function(e, t, i) {
                            for (var r = 0, n = e.length - i; r <= n; r += i)
                                if (e[r] > t) return r;
                            return -1
                        }, e
                    }();
                    e.Animation = a,
                        function(e) {
                            e[e.setup = 0] = "setup", e[e.first = 1] = "first", e[e.replace = 2] = "replace", e[e.add = 3] = "add"
                        }(t = e.MixBlend || (e.MixBlend = {})),
                        function(e) {
                            e[e.mixIn = 0] = "mixIn", e[e.mixOut = 1] = "mixOut"
                        }(i = e.MixDirection || (e.MixDirection = {})),
                        function(e) {
                            e[e.rotate = 0] = "rotate", e[e.translate = 1] = "translate", e[e.scale = 2] = "scale", e[e.shear = 3] = "shear", e[e.attachment = 4] = "attachment", e[e.color = 5] = "color", e[e.deform = 6] = "deform", e[e.event = 7] = "event", e[e.drawOrder = 8] = "drawOrder", e[e.ikConstraint = 9] = "ikConstraint", e[e.transformConstraint = 10] = "transformConstraint", e[e.pathConstraintPosition = 11] = "pathConstraintPosition", e[e.pathConstraintSpacing = 12] = "pathConstraintSpacing", e[e.pathConstraintMix = 13] = "pathConstraintMix", e[e.twoColor = 14] = "twoColor"
                        }(r = e.TimelineType || (e.TimelineType = {}));
                    var s = function() {
                        function t(i) {
                            if (i <= 0) throw new Error("frameCount must be > 0: " + i);
                            this.curves = e.Utils.newFloatArray((i - 1) * t.BEZIER_SIZE)
                        }
                        return t.prototype.getFrameCount = function() {
                            return this.curves.length / t.BEZIER_SIZE + 1
                        }, t.prototype.setLinear = function(e) {
                            this.curves[e * t.BEZIER_SIZE] = t.LINEAR
                        }, t.prototype.setStepped = function(e) {
                            this.curves[e * t.BEZIER_SIZE] = t.STEPPED
                        }, t.prototype.getCurveType = function(e) {
                            var i = e * t.BEZIER_SIZE;
                            if (i == this.curves.length) return t.LINEAR;
                            var r = this.curves[i];
                            return r == t.LINEAR ? t.LINEAR : r == t.STEPPED ? t.STEPPED : t.BEZIER
                        }, t.prototype.setCurve = function(e, i, r, n, a) {
                            var s = .03 * (2 * -i + n),
                                o = .03 * (2 * -r + a),
                                u = .006 * (3 * (i - n) + 1),
                                h = .006 * (3 * (r - a) + 1),
                                l = 2 * s + u,
                                f = 2 * o + h,
                                c = .3 * i + s + .16666667 * u,
                                d = .3 * r + o + .16666667 * h,
                                p = e * t.BEZIER_SIZE,
                                v = this.curves;
                            v[p++] = t.BEZIER;
                            for (var m = c, _ = d, b = p + t.BEZIER_SIZE - 1; p < b; p += 2) v[p] = m, v[p + 1] = _, c += l, d += f, l += u, f += h, m += c, _ += d
                        }, t.prototype.getCurvePercent = function(i, r) {
                            r = e.MathUtils.clamp(r, 0, 1);
                            var n = this.curves,
                                a = i * t.BEZIER_SIZE,
                                s = n[a];
                            if (s == t.LINEAR) return r;
                            if (s == t.STEPPED) return 0;
                            for (var o = 0, u = ++a, h = a + t.BEZIER_SIZE - 1; a < h; a += 2)
                                if ((o = n[a]) >= r) {
                                    var l = void 0,
                                        f = void 0;
                                    return a == u ? (l = 0, f = 0) : (l = n[a - 2], f = n[a - 1]), f + (n[a + 1] - f) * (r - l) / (o - l)
                                }
                            var c = n[a - 1];
                            return c + (1 - c) * (r - o) / (1 - o)
                        }, t.LINEAR = 0, t.STEPPED = 1, t.BEZIER = 2, t.BEZIER_SIZE = 19, t
                    }();
                    e.CurveTimeline = s;
                    var o = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t << 1), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.rotate << 24) + this.boneIndex
                        }, s.prototype.setFrame = function(e, t, i) {
                            e <<= 1, this.frames[e] = t, this.frames[e + s.ROTATION] = i
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = this.frames,
                                f = e.bones[this.boneIndex];
                            if (f.active)
                                if (r < l[0]) switch (u) {
                                    case t.setup:
                                        return void(f.rotation = f.data.rotation);
                                    case t.first:
                                        var c = f.data.rotation - f.rotation;
                                        f.rotation += (c - 360 * (16384 - (16384.499999999996 - c / 360 | 0))) * o
                                } else if (r >= l[l.length - s.ENTRIES]) {
                                    var d = l[l.length + s.PREV_ROTATION];
                                    switch (u) {
                                        case t.setup:
                                            f.rotation = f.data.rotation + d * o;
                                            break;
                                        case t.first:
                                        case t.replace:
                                            d += f.data.rotation - f.rotation, d -= 360 * (16384 - (16384.499999999996 - d / 360 | 0));
                                        case t.add:
                                            f.rotation += d * o
                                    }
                                } else {
                                    var p = a.binarySearch(l, r, s.ENTRIES),
                                        v = l[p + s.PREV_ROTATION],
                                        m = l[p],
                                        _ = this.getCurvePercent((p >> 1) - 1, 1 - (r - m) / (l[p + s.PREV_TIME] - m)),
                                        b = l[p + s.ROTATION] - v;
                                    switch (b = v + (b - 360 * (16384 - (16384.499999999996 - b / 360 | 0))) * _, u) {
                                        case t.setup:
                                            f.rotation = f.data.rotation + (b - 360 * (16384 - (16384.499999999996 - b / 360 | 0))) * o;
                                            break;
                                        case t.first:
                                        case t.replace:
                                            b += f.data.rotation - f.rotation;
                                        case t.add:
                                            f.rotation += (b - 360 * (16384 - (16384.499999999996 - b / 360 | 0))) * o
                                    }
                                }
                        }, s.ENTRIES = 2, s.PREV_TIME = -2, s.PREV_ROTATION = -1, s.ROTATION = 1, s
                    }(s);
                    e.RotateTimeline = o;
                    var u = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.translate << 24) + this.boneIndex
                        }, s.prototype.setFrame = function(e, t, i, r) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.X] = i, this.frames[e + s.Y] = r
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = this.frames,
                                f = e.bones[this.boneIndex];
                            if (f.active)
                                if (r < l[0]) switch (u) {
                                    case t.setup:
                                        return f.x = f.data.x, void(f.y = f.data.y);
                                    case t.first:
                                        f.x += (f.data.x - f.x) * o, f.y += (f.data.y - f.y) * o
                                } else {
                                    var c = 0,
                                        d = 0;
                                    if (r >= l[l.length - s.ENTRIES]) c = l[l.length + s.PREV_X], d = l[l.length + s.PREV_Y];
                                    else {
                                        var p = a.binarySearch(l, r, s.ENTRIES);
                                        c = l[p + s.PREV_X], d = l[p + s.PREV_Y];
                                        var v = l[p],
                                            m = this.getCurvePercent(p / s.ENTRIES - 1, 1 - (r - v) / (l[p + s.PREV_TIME] - v));
                                        c += (l[p + s.X] - c) * m, d += (l[p + s.Y] - d) * m
                                    }
                                    switch (u) {
                                        case t.setup:
                                            f.x = f.data.x + c * o, f.y = f.data.y + d * o;
                                            break;
                                        case t.first:
                                        case t.replace:
                                            f.x += (f.data.x + c - f.x) * o, f.y += (f.data.y + d - f.y) * o;
                                            break;
                                        case t.add:
                                            f.x += c * o, f.y += d * o
                                    }
                                }
                        }, s.ENTRIES = 3, s.PREV_TIME = -3, s.PREV_X = -2, s.PREV_Y = -1, s.X = 1, s.Y = 2, s
                    }(s);
                    e.TranslateTimeline = u;
                    var h = function(s) {
                        function o(e) {
                            return s.call(this, e) || this
                        }
                        return n(o, s), o.prototype.getPropertyId = function() {
                            return (r.scale << 24) + this.boneIndex
                        }, o.prototype.apply = function(r, n, s, u, h, l, f) {
                            var c = this.frames,
                                d = r.bones[this.boneIndex];
                            if (d.active)
                                if (s < c[0]) switch (l) {
                                    case t.setup:
                                        return d.scaleX = d.data.scaleX, void(d.scaleY = d.data.scaleY);
                                    case t.first:
                                        d.scaleX += (d.data.scaleX - d.scaleX) * h, d.scaleY += (d.data.scaleY - d.scaleY) * h
                                } else {
                                    var p = 0,
                                        v = 0;
                                    if (s >= c[c.length - o.ENTRIES]) p = c[c.length + o.PREV_X] * d.data.scaleX, v = c[c.length + o.PREV_Y] * d.data.scaleY;
                                    else {
                                        var m = a.binarySearch(c, s, o.ENTRIES);
                                        p = c[m + o.PREV_X], v = c[m + o.PREV_Y];
                                        var _ = c[m],
                                            b = this.getCurvePercent(m / o.ENTRIES - 1, 1 - (s - _) / (c[m + o.PREV_TIME] - _));
                                        p = (p + (c[m + o.X] - p) * b) * d.data.scaleX, v = (v + (c[m + o.Y] - v) * b) * d.data.scaleY
                                    }
                                    if (1 == h) l == t.add ? (d.scaleX += p - d.data.scaleX, d.scaleY += v - d.data.scaleY) : (d.scaleX = p, d.scaleY = v);
                                    else {
                                        var g = 0,
                                            y = 0;
                                        if (f == i.mixOut) switch (l) {
                                            case t.setup:
                                                g = d.data.scaleX, y = d.data.scaleY, d.scaleX = g + (Math.abs(p) * e.MathUtils.signum(g) - g) * h, d.scaleY = y + (Math.abs(v) * e.MathUtils.signum(y) - y) * h;
                                                break;
                                            case t.first:
                                            case t.replace:
                                                g = d.scaleX, y = d.scaleY, d.scaleX = g + (Math.abs(p) * e.MathUtils.signum(g) - g) * h, d.scaleY = y + (Math.abs(v) * e.MathUtils.signum(y) - y) * h;
                                                break;
                                            case t.add:
                                                g = d.scaleX, y = d.scaleY, d.scaleX = g + (Math.abs(p) * e.MathUtils.signum(g) - d.data.scaleX) * h, d.scaleY = y + (Math.abs(v) * e.MathUtils.signum(y) - d.data.scaleY) * h
                                        } else switch (l) {
                                            case t.setup:
                                                g = Math.abs(d.data.scaleX) * e.MathUtils.signum(p), y = Math.abs(d.data.scaleY) * e.MathUtils.signum(v), d.scaleX = g + (p - g) * h, d.scaleY = y + (v - y) * h;
                                                break;
                                            case t.first:
                                            case t.replace:
                                                g = Math.abs(d.scaleX) * e.MathUtils.signum(p), y = Math.abs(d.scaleY) * e.MathUtils.signum(v), d.scaleX = g + (p - g) * h, d.scaleY = y + (v - y) * h;
                                                break;
                                            case t.add:
                                                g = e.MathUtils.signum(p), y = e.MathUtils.signum(v), d.scaleX = Math.abs(d.scaleX) * g + (p - Math.abs(d.data.scaleX) * g) * h, d.scaleY = Math.abs(d.scaleY) * y + (v - Math.abs(d.data.scaleY) * y) * h
                                        }
                                    }
                                }
                        }, o
                    }(u);
                    e.ScaleTimeline = h;
                    var l = function(e) {
                        function i(t) {
                            return e.call(this, t) || this
                        }
                        return n(i, e), i.prototype.getPropertyId = function() {
                            return (r.shear << 24) + this.boneIndex
                        }, i.prototype.apply = function(e, r, n, s, o, u, h) {
                            var l = this.frames,
                                f = e.bones[this.boneIndex];
                            if (f.active)
                                if (n < l[0]) switch (u) {
                                    case t.setup:
                                        return f.shearX = f.data.shearX, void(f.shearY = f.data.shearY);
                                    case t.first:
                                        f.shearX += (f.data.shearX - f.shearX) * o, f.shearY += (f.data.shearY - f.shearY) * o
                                } else {
                                    var c = 0,
                                        d = 0;
                                    if (n >= l[l.length - i.ENTRIES]) c = l[l.length + i.PREV_X], d = l[l.length + i.PREV_Y];
                                    else {
                                        var p = a.binarySearch(l, n, i.ENTRIES);
                                        c = l[p + i.PREV_X], d = l[p + i.PREV_Y];
                                        var v = l[p],
                                            m = this.getCurvePercent(p / i.ENTRIES - 1, 1 - (n - v) / (l[p + i.PREV_TIME] - v));
                                        c += (l[p + i.X] - c) * m, d += (l[p + i.Y] - d) * m
                                    }
                                    switch (u) {
                                        case t.setup:
                                            f.shearX = f.data.shearX + c * o, f.shearY = f.data.shearY + d * o;
                                            break;
                                        case t.first:
                                        case t.replace:
                                            f.shearX += (f.data.shearX + c - f.shearX) * o, f.shearY += (f.data.shearY + d - f.shearY) * o;
                                            break;
                                        case t.add:
                                            f.shearX += c * o, f.shearY += d * o
                                    }
                                }
                        }, i
                    }(u);
                    e.ShearTimeline = l;
                    var f = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.color << 24) + this.slotIndex
                        }, s.prototype.setFrame = function(e, t, i, r, n, a) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.R] = i, this.frames[e + s.G] = r, this.frames[e + s.B] = n, this.frames[e + s.A] = a
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = e.slots[this.slotIndex];
                            if (l.bone.active) {
                                var f = this.frames;
                                if (r < f[0]) switch (u) {
                                    case t.setup:
                                        return void l.color.setFromColor(l.data.color);
                                    case t.first:
                                        var c = l.color,
                                            d = l.data.color;
                                        c.add((d.r - c.r) * o, (d.g - c.g) * o, (d.b - c.b) * o, (d.a - c.a) * o)
                                } else {
                                    var p = 0,
                                        v = 0,
                                        m = 0,
                                        _ = 0;
                                    if (r >= f[f.length - s.ENTRIES]) {
                                        var b = f.length;
                                        p = f[b + s.PREV_R], v = f[b + s.PREV_G], m = f[b + s.PREV_B], _ = f[b + s.PREV_A]
                                    } else {
                                        var g = a.binarySearch(f, r, s.ENTRIES);
                                        p = f[g + s.PREV_R], v = f[g + s.PREV_G], m = f[g + s.PREV_B], _ = f[g + s.PREV_A];
                                        var y = f[g],
                                            A = this.getCurvePercent(g / s.ENTRIES - 1, 1 - (r - y) / (f[g + s.PREV_TIME] - y));
                                        p += (f[g + s.R] - p) * A, v += (f[g + s.G] - v) * A, m += (f[g + s.B] - m) * A, _ += (f[g + s.A] - _) * A
                                    }
                                    if (1 == o) l.color.set(p, v, m, _);
                                    else {
                                        c = l.color;
                                        u == t.setup && c.setFromColor(l.data.color), c.add((p - c.r) * o, (v - c.g) * o, (m - c.b) * o, (_ - c.a) * o)
                                    }
                                }
                            }
                        }, s.ENTRIES = 5, s.PREV_TIME = -5, s.PREV_R = -4, s.PREV_G = -3, s.PREV_B = -2, s.PREV_A = -1, s.R = 1, s.G = 2, s.B = 3, s.A = 4, s
                    }(s);
                    e.ColorTimeline = f;
                    var c = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.twoColor << 24) + this.slotIndex
                        }, s.prototype.setFrame = function(e, t, i, r, n, a, o, u, h) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.R] = i, this.frames[e + s.G] = r, this.frames[e + s.B] = n, this.frames[e + s.A] = a, this.frames[e + s.R2] = o, this.frames[e + s.G2] = u, this.frames[e + s.B2] = h
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = e.slots[this.slotIndex];
                            if (l.bone.active) {
                                var f = this.frames;
                                if (r < f[0]) switch (u) {
                                    case t.setup:
                                        return l.color.setFromColor(l.data.color), void l.darkColor.setFromColor(l.data.darkColor);
                                    case t.first:
                                        var c = l.color,
                                            d = l.darkColor,
                                            p = l.data.color,
                                            v = l.data.darkColor;
                                        c.add((p.r - c.r) * o, (p.g - c.g) * o, (p.b - c.b) * o, (p.a - c.a) * o), d.add((v.r - d.r) * o, (v.g - d.g) * o, (v.b - d.b) * o, 0)
                                } else {
                                    var m = 0,
                                        _ = 0,
                                        b = 0,
                                        g = 0,
                                        y = 0,
                                        A = 0,
                                        w = 0;
                                    if (r >= f[f.length - s.ENTRIES]) {
                                        var x = f.length;
                                        m = f[x + s.PREV_R], _ = f[x + s.PREV_G], b = f[x + s.PREV_B], g = f[x + s.PREV_A], y = f[x + s.PREV_R2], A = f[x + s.PREV_G2], w = f[x + s.PREV_B2]
                                    } else {
                                        var k = a.binarySearch(f, r, s.ENTRIES);
                                        m = f[k + s.PREV_R], _ = f[k + s.PREV_G], b = f[k + s.PREV_B], g = f[k + s.PREV_A], y = f[k + s.PREV_R2], A = f[k + s.PREV_G2], w = f[k + s.PREV_B2];
                                        var T = f[k],
                                            E = this.getCurvePercent(k / s.ENTRIES - 1, 1 - (r - T) / (f[k + s.PREV_TIME] - T));
                                        m += (f[k + s.R] - m) * E, _ += (f[k + s.G] - _) * E, b += (f[k + s.B] - b) * E, g += (f[k + s.A] - g) * E, y += (f[k + s.R2] - y) * E, A += (f[k + s.G2] - A) * E, w += (f[k + s.B2] - w) * E
                                    }
                                    if (1 == o) l.color.set(m, _, b, g), l.darkColor.set(y, A, w, 1);
                                    else {
                                        c = l.color, d = l.darkColor;
                                        u == t.setup && (c.setFromColor(l.data.color), d.setFromColor(l.data.darkColor)), c.add((m - c.r) * o, (_ - c.g) * o, (b - c.b) * o, (g - c.a) * o), d.add((y - d.r) * o, (A - d.g) * o, (w - d.b) * o, 0)
                                    }
                                }
                            }
                        }, s.ENTRIES = 8, s.PREV_TIME = -8, s.PREV_R = -7, s.PREV_G = -6, s.PREV_B = -5, s.PREV_A = -4, s.PREV_R2 = -3, s.PREV_G2 = -2, s.PREV_B2 = -1, s.R = 1, s.G = 2, s.B = 3, s.A = 4, s.R2 = 5, s.G2 = 6, s.B2 = 7, s
                    }(s);
                    e.TwoColorTimeline = c;
                    var d = function() {
                        function n(t) {
                            this.frames = e.Utils.newFloatArray(t), this.attachmentNames = new Array(t)
                        }
                        return n.prototype.getPropertyId = function() {
                            return (r.attachment << 24) + this.slotIndex
                        }, n.prototype.getFrameCount = function() {
                            return this.frames.length
                        }, n.prototype.setFrame = function(e, t, i) {
                            this.frames[e] = t, this.attachmentNames[e] = i
                        }, n.prototype.apply = function(e, r, n, s, o, u, h) {
                            var l = e.slots[this.slotIndex];
                            if (l.bone.active)
                                if (h != i.mixOut || u != t.setup) {
                                    var f = this.frames;
                                    if (n < f[0]) {
                                        if (u == t.setup || u == t.first) {
                                            var c = l.data.attachmentName;
                                            l.setAttachment(null == c ? null : e.getAttachment(this.slotIndex, c))
                                        }
                                    } else {
                                        var d = 0;
                                        d = n >= f[f.length - 1] ? f.length - 1 : a.binarySearch(f, n, 1) - 1;
                                        var p = this.attachmentNames[d];
                                        e.slots[this.slotIndex].setAttachment(null == p ? null : e.getAttachment(this.slotIndex, p))
                                    }
                                } else {
                                    var v = l.data.attachmentName;
                                    l.setAttachment(null == v ? null : e.getAttachment(this.slotIndex, v))
                                }
                        }, n
                    }();
                    e.AttachmentTimeline = d;
                    var p = null,
                        v = function(i) {
                            function s(t) {
                                var r = i.call(this, t) || this;
                                return r.frames = e.Utils.newFloatArray(t), r.frameVertices = new Array(t), null == p && (p = e.Utils.newFloatArray(64)), r
                            }
                            return n(s, i), s.prototype.getPropertyId = function() {
                                return (r.deform << 27) + +this.attachment.id + this.slotIndex
                            }, s.prototype.setFrame = function(e, t, i) {
                                this.frames[e] = t, this.frameVertices[e] = i
                            }, s.prototype.apply = function(i, r, n, s, o, u, h) {
                                var l = i.slots[this.slotIndex];
                                if (l.bone.active) {
                                    var f = l.getAttachment();
                                    if (f instanceof e.VertexAttachment && f.deformAttachment == this.attachment) {
                                        var c = l.deform;
                                        0 == c.length && (u = t.setup);
                                        var d = this.frameVertices,
                                            p = d[0].length,
                                            v = this.frames;
                                        if (n < v[0]) {
                                            var m = f;
                                            switch (u) {
                                                case t.setup:
                                                    return void(c.length = 0);
                                                case t.first:
                                                    if (1 == o) {
                                                        c.length = 0;
                                                        break
                                                    }
                                                    var _ = e.Utils.setArraySize(c, p);
                                                    if (null == m.bones)
                                                        for (var b = m.vertices, g = 0; g < p; g++) _[g] += (b[g] - _[g]) * o;
                                                    else {
                                                        o = 1 - o;
                                                        for (g = 0; g < p; g++) _[g] *= o
                                                    }
                                            }
                                        } else {
                                            var y = e.Utils.setArraySize(c, p);
                                            if (n >= v[v.length - 1]) {
                                                var A = d[v.length - 1];
                                                if (1 == o)
                                                    if (u == t.add)
                                                        if (null == (m = f).bones) {
                                                            b = m.vertices;
                                                            for (var w = 0; w < p; w++) y[w] += A[w] - b[w]
                                                        } else
                                                            for (var x = 0; x < p; x++) y[x] += A[x];
                                                else e.Utils.arrayCopy(A, 0, y, 0, p);
                                                else switch (u) {
                                                    case t.setup:
                                                        var k = f;
                                                        if (null == k.bones) {
                                                            b = k.vertices;
                                                            for (var T = 0; T < p; T++) {
                                                                var E = b[T];
                                                                y[T] = E + (A[T] - E) * o
                                                            }
                                                        } else
                                                            for (var S = 0; S < p; S++) y[S] = A[S] * o;
                                                        break;
                                                    case t.first:
                                                    case t.replace:
                                                        for (var P = 0; P < p; P++) y[P] += (A[P] - y[P]) * o;
                                                        break;
                                                    case t.add:
                                                        if (null == (m = f).bones) {
                                                            b = m.vertices;
                                                            for (var I = 0; I < p; I++) y[I] += (A[I] - b[I]) * o
                                                        } else
                                                            for (var M = 0; M < p; M++) y[M] += A[M] * o
                                                }
                                            } else {
                                                var C = a.binarySearch(v, n),
                                                    O = d[C - 1],
                                                    R = d[C],
                                                    D = v[C],
                                                    F = this.getCurvePercent(C - 1, 1 - (n - D) / (v[C - 1] - D));
                                                if (1 == o)
                                                    if (u == t.add)
                                                        if (null == (m = f).bones) {
                                                            b = m.vertices;
                                                            for (var B = 0; B < p; B++) {
                                                                var N = O[B];
                                                                y[B] += N + (R[B] - N) * F - b[B]
                                                            }
                                                        } else
                                                            for (var L = 0; L < p; L++) {
                                                                N = O[L];
                                                                y[L] += N + (R[L] - N) * F
                                                            } else
                                                                for (var U = 0; U < p; U++) {
                                                                    N = O[U];
                                                                    y[U] = N + (R[U] - N) * F
                                                                } else switch (u) {
                                                                    case t.setup:
                                                                        var V = f;
                                                                        if (null == V.bones) {
                                                                            b = V.vertices;
                                                                            for (var X = 0; X < p; X++) {
                                                                                N = O[X], E = b[X];
                                                                                y[X] = E + (N + (R[X] - N) * F - E) * o
                                                                            }
                                                                        } else
                                                                            for (var j = 0; j < p; j++) {
                                                                                N = O[j];
                                                                                y[j] = (N + (R[j] - N) * F) * o
                                                                            }
                                                                        break;
                                                                    case t.first:
                                                                    case t.replace:
                                                                        for (var G = 0; G < p; G++) {
                                                                            N = O[G];
                                                                            y[G] += (N + (R[G] - N) * F - y[G]) * o
                                                                        }
                                                                        break;
                                                                    case t.add:
                                                                        if (null == (m = f).bones) {
                                                                            b = m.vertices;
                                                                            for (var $ = 0; $ < p; $++) {
                                                                                N = O[$];
                                                                                y[$] += (N + (R[$] - N) * F - b[$]) * o
                                                                            }
                                                                        } else
                                                                            for (var H = 0; H < p; H++) {
                                                                                N = O[H];
                                                                                y[H] += (N + (R[H] - N) * F) * o
                                                                            }
                                                                }
                                            }
                                        }
                                    }
                                }
                            }, s
                        }(s);
                    e.DeformTimeline = v;
                    var m = function() {
                        function t(t) {
                            this.frames = e.Utils.newFloatArray(t), this.events = new Array(t)
                        }
                        return t.prototype.getPropertyId = function() {
                            return r.event << 24
                        }, t.prototype.getFrameCount = function() {
                            return this.frames.length
                        }, t.prototype.setFrame = function(e, t) {
                            this.frames[e] = t.time, this.events[e] = t
                        }, t.prototype.apply = function(e, t, i, r, n, s, o) {
                            if (null != r) {
                                var u = this.frames,
                                    h = this.frames.length;
                                if (t > i) this.apply(e, t, Number.MAX_VALUE, r, n, s, o), t = -1;
                                else if (t >= u[h - 1]) return;
                                if (!(i < u[0])) {
                                    var l = 0;
                                    if (t < u[0]) l = 0;
                                    else
                                        for (var f = u[l = a.binarySearch(u, t)]; l > 0 && u[l - 1] == f;) l--;
                                    for (; l < h && i >= u[l]; l++) r.push(this.events[l])
                                }
                            }
                        }, t
                    }();
                    e.EventTimeline = m;
                    var _ = function() {
                        function n(t) {
                            this.frames = e.Utils.newFloatArray(t), this.drawOrders = new Array(t)
                        }
                        return n.prototype.getPropertyId = function() {
                            return r.drawOrder << 24
                        }, n.prototype.getFrameCount = function() {
                            return this.frames.length
                        }, n.prototype.setFrame = function(e, t, i) {
                            this.frames[e] = t, this.drawOrders[e] = i
                        }, n.prototype.apply = function(r, n, s, o, u, h, l) {
                            var f = r.drawOrder,
                                c = r.slots;
                            if (l != i.mixOut || h != t.setup) {
                                var d = this.frames;
                                if (s < d[0]) h != t.setup && h != t.first || e.Utils.arrayCopy(r.slots, 0, r.drawOrder, 0, r.slots.length);
                                else {
                                    var p = 0;
                                    p = s >= d[d.length - 1] ? d.length - 1 : a.binarySearch(d, s) - 1;
                                    var v = this.drawOrders[p];
                                    if (null == v) e.Utils.arrayCopy(c, 0, f, 0, c.length);
                                    else
                                        for (var m = 0, _ = v.length; m < _; m++) f[m] = c[v[m]]
                                }
                            } else e.Utils.arrayCopy(r.slots, 0, r.drawOrder, 0, r.slots.length)
                        }, n
                    }();
                    e.DrawOrderTimeline = _;
                    var b = function(s) {
                        function o(t) {
                            var i = s.call(this, t) || this;
                            return i.frames = e.Utils.newFloatArray(t * o.ENTRIES), i
                        }
                        return n(o, s), o.prototype.getPropertyId = function() {
                            return (r.ikConstraint << 24) + this.ikConstraintIndex
                        }, o.prototype.setFrame = function(e, t, i, r, n, a, s) {
                            e *= o.ENTRIES, this.frames[e] = t, this.frames[e + o.MIX] = i, this.frames[e + o.SOFTNESS] = r, this.frames[e + o.BEND_DIRECTION] = n, this.frames[e + o.COMPRESS] = a ? 1 : 0, this.frames[e + o.STRETCH] = s ? 1 : 0
                        }, o.prototype.apply = function(e, r, n, s, u, h, l) {
                            var f = this.frames,
                                c = e.ikConstraints[this.ikConstraintIndex];
                            if (c.active)
                                if (n < f[0]) switch (h) {
                                        case t.setup:
                                            return c.mix = c.data.mix, c.softness = c.data.softness, c.bendDirection = c.data.bendDirection, c.compress = c.data.compress, void(c.stretch = c.data.stretch);
                                        case t.first:
                                            c.mix += (c.data.mix - c.mix) * u, c.softness += (c.data.softness - c.softness) * u, c.bendDirection = c.data.bendDirection, c.compress = c.data.compress, c.stretch = c.data.stretch
                                    } else if (n >= f[f.length - o.ENTRIES]) h == t.setup ? (c.mix = c.data.mix + (f[f.length + o.PREV_MIX] - c.data.mix) * u, c.softness = c.data.softness + (f[f.length + o.PREV_SOFTNESS] - c.data.softness) * u, l == i.mixOut ? (c.bendDirection = c.data.bendDirection, c.compress = c.data.compress, c.stretch = c.data.stretch) : (c.bendDirection = f[f.length + o.PREV_BEND_DIRECTION], c.compress = 0 != f[f.length + o.PREV_COMPRESS], c.stretch = 0 != f[f.length + o.PREV_STRETCH])) : (c.mix += (f[f.length + o.PREV_MIX] - c.mix) * u, c.softness += (f[f.length + o.PREV_SOFTNESS] - c.softness) * u, l == i.mixIn && (c.bendDirection = f[f.length + o.PREV_BEND_DIRECTION], c.compress = 0 != f[f.length + o.PREV_COMPRESS], c.stretch = 0 != f[f.length + o.PREV_STRETCH]));
                                    else {
                                        var d = a.binarySearch(f, n, o.ENTRIES),
                                            p = f[d + o.PREV_MIX],
                                            v = f[d + o.PREV_SOFTNESS],
                                            m = f[d],
                                            _ = this.getCurvePercent(d / o.ENTRIES - 1, 1 - (n - m) / (f[d + o.PREV_TIME] - m));
                                        h == t.setup ? (c.mix = c.data.mix + (p + (f[d + o.MIX] - p) * _ - c.data.mix) * u, c.softness = c.data.softness + (v + (f[d + o.SOFTNESS] - v) * _ - c.data.softness) * u, l == i.mixOut ? (c.bendDirection = c.data.bendDirection, c.compress = c.data.compress, c.stretch = c.data.stretch) : (c.bendDirection = f[d + o.PREV_BEND_DIRECTION], c.compress = 0 != f[d + o.PREV_COMPRESS], c.stretch = 0 != f[d + o.PREV_STRETCH])) : (c.mix += (p + (f[d + o.MIX] - p) * _ - c.mix) * u, c.softness += (v + (f[d + o.SOFTNESS] - v) * _ - c.softness) * u, l == i.mixIn && (c.bendDirection = f[d + o.PREV_BEND_DIRECTION], c.compress = 0 != f[d + o.PREV_COMPRESS], c.stretch = 0 != f[d + o.PREV_STRETCH]))
                                    }
                        }, o.ENTRIES = 6, o.PREV_TIME = -6, o.PREV_MIX = -5, o.PREV_SOFTNESS = -4, o.PREV_BEND_DIRECTION = -3, o.PREV_COMPRESS = -2, o.PREV_STRETCH = -1, o.MIX = 1, o.SOFTNESS = 2, o.BEND_DIRECTION = 3, o.COMPRESS = 4, o.STRETCH = 5, o
                    }(s);
                    e.IkConstraintTimeline = b;
                    var g = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.transformConstraint << 24) + this.transformConstraintIndex
                        }, s.prototype.setFrame = function(e, t, i, r, n, a) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.ROTATE] = i, this.frames[e + s.TRANSLATE] = r, this.frames[e + s.SCALE] = n, this.frames[e + s.SHEAR] = a
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = this.frames,
                                f = e.transformConstraints[this.transformConstraintIndex];
                            if (f.active)
                                if (r < l[0]) {
                                    var c = f.data;
                                    switch (u) {
                                        case t.setup:
                                            return f.rotateMix = c.rotateMix, f.translateMix = c.translateMix, f.scaleMix = c.scaleMix, void(f.shearMix = c.shearMix);
                                        case t.first:
                                            f.rotateMix += (c.rotateMix - f.rotateMix) * o, f.translateMix += (c.translateMix - f.translateMix) * o, f.scaleMix += (c.scaleMix - f.scaleMix) * o, f.shearMix += (c.shearMix - f.shearMix) * o
                                    }
                                } else {
                                    var d = 0,
                                        p = 0,
                                        v = 0,
                                        m = 0;
                                    if (r >= l[l.length - s.ENTRIES]) {
                                        var _ = l.length;
                                        d = l[_ + s.PREV_ROTATE], p = l[_ + s.PREV_TRANSLATE], v = l[_ + s.PREV_SCALE], m = l[_ + s.PREV_SHEAR]
                                    } else {
                                        var b = a.binarySearch(l, r, s.ENTRIES);
                                        d = l[b + s.PREV_ROTATE], p = l[b + s.PREV_TRANSLATE], v = l[b + s.PREV_SCALE], m = l[b + s.PREV_SHEAR];
                                        var g = l[b],
                                            y = this.getCurvePercent(b / s.ENTRIES - 1, 1 - (r - g) / (l[b + s.PREV_TIME] - g));
                                        d += (l[b + s.ROTATE] - d) * y, p += (l[b + s.TRANSLATE] - p) * y, v += (l[b + s.SCALE] - v) * y, m += (l[b + s.SHEAR] - m) * y
                                    }
                                    if (u == t.setup) {
                                        c = f.data;
                                        f.rotateMix = c.rotateMix + (d - c.rotateMix) * o, f.translateMix = c.translateMix + (p - c.translateMix) * o, f.scaleMix = c.scaleMix + (v - c.scaleMix) * o, f.shearMix = c.shearMix + (m - c.shearMix) * o
                                    } else f.rotateMix += (d - f.rotateMix) * o, f.translateMix += (p - f.translateMix) * o, f.scaleMix += (v - f.scaleMix) * o, f.shearMix += (m - f.shearMix) * o
                                }
                        }, s.ENTRIES = 5, s.PREV_TIME = -5, s.PREV_ROTATE = -4, s.PREV_TRANSLATE = -3, s.PREV_SCALE = -2, s.PREV_SHEAR = -1, s.ROTATE = 1, s.TRANSLATE = 2, s.SCALE = 3, s.SHEAR = 4, s
                    }(s);
                    e.TransformConstraintTimeline = g;
                    var y = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.pathConstraintPosition << 24) + this.pathConstraintIndex
                        }, s.prototype.setFrame = function(e, t, i) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.VALUE] = i
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = this.frames,
                                f = e.pathConstraints[this.pathConstraintIndex];
                            if (f.active)
                                if (r < l[0]) switch (u) {
                                    case t.setup:
                                        return void(f.position = f.data.position);
                                    case t.first:
                                        f.position += (f.data.position - f.position) * o
                                } else {
                                    var c = 0;
                                    if (r >= l[l.length - s.ENTRIES]) c = l[l.length + s.PREV_VALUE];
                                    else {
                                        var d = a.binarySearch(l, r, s.ENTRIES);
                                        c = l[d + s.PREV_VALUE];
                                        var p = l[d],
                                            v = this.getCurvePercent(d / s.ENTRIES - 1, 1 - (r - p) / (l[d + s.PREV_TIME] - p));
                                        c += (l[d + s.VALUE] - c) * v
                                    }
                                    u == t.setup ? f.position = f.data.position + (c - f.data.position) * o : f.position += (c - f.position) * o
                                }
                        }, s.ENTRIES = 2, s.PREV_TIME = -2, s.PREV_VALUE = -1, s.VALUE = 1, s
                    }(s);
                    e.PathConstraintPositionTimeline = y;
                    var A = function(e) {
                        function i(t) {
                            return e.call(this, t) || this
                        }
                        return n(i, e), i.prototype.getPropertyId = function() {
                            return (r.pathConstraintSpacing << 24) + this.pathConstraintIndex
                        }, i.prototype.apply = function(e, r, n, s, o, u, h) {
                            var l = this.frames,
                                f = e.pathConstraints[this.pathConstraintIndex];
                            if (f.active)
                                if (n < l[0]) switch (u) {
                                    case t.setup:
                                        return void(f.spacing = f.data.spacing);
                                    case t.first:
                                        f.spacing += (f.data.spacing - f.spacing) * o
                                } else {
                                    var c = 0;
                                    if (n >= l[l.length - i.ENTRIES]) c = l[l.length + i.PREV_VALUE];
                                    else {
                                        var d = a.binarySearch(l, n, i.ENTRIES);
                                        c = l[d + i.PREV_VALUE];
                                        var p = l[d],
                                            v = this.getCurvePercent(d / i.ENTRIES - 1, 1 - (n - p) / (l[d + i.PREV_TIME] - p));
                                        c += (l[d + i.VALUE] - c) * v
                                    }
                                    u == t.setup ? f.spacing = f.data.spacing + (c - f.data.spacing) * o : f.spacing += (c - f.spacing) * o
                                }
                        }, i
                    }(y);
                    e.PathConstraintSpacingTimeline = A;
                    var w = function(i) {
                        function s(t) {
                            var r = i.call(this, t) || this;
                            return r.frames = e.Utils.newFloatArray(t * s.ENTRIES), r
                        }
                        return n(s, i), s.prototype.getPropertyId = function() {
                            return (r.pathConstraintMix << 24) + this.pathConstraintIndex
                        }, s.prototype.setFrame = function(e, t, i, r) {
                            e *= s.ENTRIES, this.frames[e] = t, this.frames[e + s.ROTATE] = i, this.frames[e + s.TRANSLATE] = r
                        }, s.prototype.apply = function(e, i, r, n, o, u, h) {
                            var l = this.frames,
                                f = e.pathConstraints[this.pathConstraintIndex];
                            if (f.active)
                                if (r < l[0]) switch (u) {
                                    case t.setup:
                                        return f.rotateMix = f.data.rotateMix, void(f.translateMix = f.data.translateMix);
                                    case t.first:
                                        f.rotateMix += (f.data.rotateMix - f.rotateMix) * o, f.translateMix += (f.data.translateMix - f.translateMix) * o
                                } else {
                                    var c = 0,
                                        d = 0;
                                    if (r >= l[l.length - s.ENTRIES]) c = l[l.length + s.PREV_ROTATE], d = l[l.length + s.PREV_TRANSLATE];
                                    else {
                                        var p = a.binarySearch(l, r, s.ENTRIES);
                                        c = l[p + s.PREV_ROTATE], d = l[p + s.PREV_TRANSLATE];
                                        var v = l[p],
                                            m = this.getCurvePercent(p / s.ENTRIES - 1, 1 - (r - v) / (l[p + s.PREV_TIME] - v));
                                        c += (l[p + s.ROTATE] - c) * m, d += (l[p + s.TRANSLATE] - d) * m
                                    }
                                    u == t.setup ? (f.rotateMix = f.data.rotateMix + (c - f.data.rotateMix) * o, f.translateMix = f.data.translateMix + (d - f.data.translateMix) * o) : (f.rotateMix += (c - f.rotateMix) * o, f.translateMix += (d - f.translateMix) * o)
                                }
                        }, s.ENTRIES = 3, s.PREV_TIME = -3, s.PREV_ROTATE = -2, s.PREV_TRANSLATE = -1, s.ROTATE = 1, s.TRANSLATE = 2, s
                    }(s);
                    e.PathConstraintMixTimeline = w
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(t) {
                            this.tracks = new Array, this.timeScale = 1, this.events = new Array, this.listeners = new Array, this.queue = new n(this), this.propertyIDs = new e.IntSet, this.animationsChanged = !1, this.trackEntryPool = new e.Pool(function() {
                                return new i
                            }), this.data = t
                        }
                        return t.prototype.update = function(e) {
                            e *= this.timeScale;
                            for (var t = this.tracks, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (null != n) {
                                    n.animationLast = n.nextAnimationLast, n.trackLast = n.nextTrackLast;
                                    var a = e * n.timeScale;
                                    if (n.delay > 0) {
                                        if (n.delay -= a, n.delay > 0) continue;
                                        a = -n.delay, n.delay = 0
                                    }
                                    var s = n.next;
                                    if (null != s) {
                                        var o = n.trackLast - s.delay;
                                        if (o >= 0) {
                                            for (s.delay = 0, s.trackTime += 0 == n.timeScale ? 0 : (o / n.timeScale + e) * s.timeScale, n.trackTime += a, this.setCurrent(i, s, !0); null != s.mixingFrom;) s.mixTime += e, s = s.mixingFrom;
                                            continue
                                        }
                                    } else if (n.trackLast >= n.trackEnd && null == n.mixingFrom) {
                                        t[i] = null, this.queue.end(n), this.disposeNext(n);
                                        continue
                                    }
                                    if (null != n.mixingFrom && this.updateMixingFrom(n, e)) {
                                        var u = n.mixingFrom;
                                        for (n.mixingFrom = null, null != u && (u.mixingTo = null); null != u;) this.queue.end(u), u = u.mixingFrom
                                    }
                                    n.trackTime += a
                                }
                            }
                            this.queue.drain()
                        }, t.prototype.updateMixingFrom = function(e, t) {
                            var i = e.mixingFrom;
                            if (null == i) return !0;
                            var r = this.updateMixingFrom(i, t);
                            return i.animationLast = i.nextAnimationLast, i.trackLast = i.nextTrackLast, e.mixTime > 0 && e.mixTime >= e.mixDuration ? (0 != i.totalAlpha && 0 != e.mixDuration || (e.mixingFrom = i.mixingFrom, null != i.mixingFrom && (i.mixingFrom.mixingTo = e), e.interruptAlpha = i.interruptAlpha, this.queue.end(i)), r) : (i.trackTime += t * i.timeScale, e.mixTime += t, !1)
                        }, t.prototype.apply = function(i) {
                            if (null == i) throw new Error("skeleton cannot be null.");
                            this.animationsChanged && this._animationsChanged();
                            for (var r = this.events, n = this.tracks, a = !1, s = 0, o = n.length; s < o; s++) {
                                var u = n[s];
                                if (!(null == u || u.delay > 0)) {
                                    a = !0;
                                    var h = 0 == s ? e.MixBlend.first : u.mixBlend,
                                        l = u.alpha;
                                    null != u.mixingFrom ? l *= this.applyMixingFrom(u, i, h) : u.trackTime >= u.trackEnd && null == u.next && (l = 0);
                                    var f = u.animationLast,
                                        c = u.getAnimationTime(),
                                        d = u.animation.timelines.length,
                                        p = u.animation.timelines;
                                    if (0 == s && 1 == l || h == e.MixBlend.add)
                                        for (var v = 0; v < d; v++) e.Utils.webkit602BugfixHelper(l, h), p[v].apply(i, f, c, r, l, h, e.MixDirection.mixIn);
                                    else {
                                        var m = u.timelineMode,
                                            _ = 0 == u.timelinesRotation.length;
                                        _ && e.Utils.setArraySize(u.timelinesRotation, d << 1, null);
                                        var b = u.timelinesRotation;
                                        for (v = 0; v < d; v++) {
                                            var g = p[v],
                                                y = (m[v] & t.NOT_LAST - 1) == t.SUBSEQUENT ? h : e.MixBlend.setup;
                                            g instanceof e.RotateTimeline ? this.applyRotateTimeline(g, i, c, l, y, b, v << 1, _) : (e.Utils.webkit602BugfixHelper(l, h), g.apply(i, f, c, r, l, y, e.MixDirection.mixIn))
                                        }
                                    }
                                    this.queueEvents(u, c), r.length = 0, u.nextAnimationLast = c, u.nextTrackLast = u.trackTime
                                }
                            }
                            return this.queue.drain(), a
                        }, t.prototype.applyMixingFrom = function(i, r, n) {
                            var a = i.mixingFrom;
                            null != a.mixingFrom && this.applyMixingFrom(a, r, n);
                            var s = 0;
                            0 == i.mixDuration ? (s = 1, n == e.MixBlend.first && (n = e.MixBlend.setup)) : ((s = i.mixTime / i.mixDuration) > 1 && (s = 1), n != e.MixBlend.first && (n = a.mixBlend));
                            var o = s < a.eventThreshold ? this.events : null,
                                u = s < a.attachmentThreshold,
                                h = s < a.drawOrderThreshold,
                                l = a.animationLast,
                                f = a.getAnimationTime(),
                                c = a.animation.timelines.length,
                                d = a.animation.timelines,
                                p = a.alpha * i.interruptAlpha,
                                v = p * (1 - s);
                            if (n == e.MixBlend.add)
                                for (var m = 0; m < c; m++) d[m].apply(r, l, f, o, v, n, e.MixDirection.mixOut);
                            else {
                                var _ = a.timelineMode,
                                    b = a.timelineHoldMix,
                                    g = 0 == a.timelinesRotation.length;
                                g && e.Utils.setArraySize(a.timelinesRotation, c << 1, null);
                                var y = a.timelinesRotation;
                                a.totalAlpha = 0;
                                for (m = 0; m < c; m++) {
                                    var A = d[m],
                                        w = e.MixDirection.mixOut,
                                        x = void 0,
                                        k = 0;
                                    switch (_[m] & t.NOT_LAST - 1) {
                                        case t.SUBSEQUENT:
                                            if (x = n, !u && A instanceof e.AttachmentTimeline) {
                                                if ((_[m] & t.NOT_LAST) == t.NOT_LAST) continue;
                                                x = e.MixBlend.setup
                                            }
                                            if (!h && A instanceof e.DrawOrderTimeline) continue;
                                            k = v;
                                            break;
                                        case t.FIRST:
                                            x = e.MixBlend.setup, k = v;
                                            break;
                                        case t.HOLD:
                                            x = e.MixBlend.setup, k = p;
                                            break;
                                        default:
                                            x = e.MixBlend.setup;
                                            var T = b[m];
                                            k = p * Math.max(0, 1 - T.mixTime / T.mixDuration)
                                    }
                                    a.totalAlpha += k, A instanceof e.RotateTimeline ? this.applyRotateTimeline(A, r, f, k, x, y, m << 1, g) : (e.Utils.webkit602BugfixHelper(k, n), x == e.MixBlend.setup && (A instanceof e.AttachmentTimeline ? (u || (_[m] & t.NOT_LAST) == t.NOT_LAST) && (w = e.MixDirection.mixIn) : A instanceof e.DrawOrderTimeline && h && (w = e.MixDirection.mixIn)), A.apply(r, l, f, o, k, x, w))
                                }
                            }
                            return i.mixDuration > 0 && this.queueEvents(a, f), this.events.length = 0, a.nextAnimationLast = f, a.nextTrackLast = a.trackTime, s
                        }, t.prototype.applyRotateTimeline = function(t, i, r, n, a, s, o, u) {
                            if (u && (s[o] = 0), 1 != n) {
                                var h = t,
                                    l = h.frames,
                                    f = i.bones[h.boneIndex];
                                if (f.active) {
                                    var c = 0,
                                        d = 0;
                                    if (r < l[0]) switch (a) {
                                            case e.MixBlend.setup:
                                                f.rotation = f.data.rotation;
                                            default:
                                                return;
                                            case e.MixBlend.first:
                                                c = f.rotation, d = f.data.rotation
                                        } else if (c = a == e.MixBlend.setup ? f.data.rotation : f.rotation, r >= l[l.length - e.RotateTimeline.ENTRIES]) d = f.data.rotation + l[l.length + e.RotateTimeline.PREV_ROTATION];
                                        else {
                                            var p = e.Animation.binarySearch(l, r, e.RotateTimeline.ENTRIES),
                                                v = l[p + e.RotateTimeline.PREV_ROTATION],
                                                m = l[p],
                                                _ = h.getCurvePercent((p >> 1) - 1, 1 - (r - m) / (l[p + e.RotateTimeline.PREV_TIME] - m));
                                            d = l[p + e.RotateTimeline.ROTATION] - v, d = v + (d -= 360 * (16384 - (16384.499999999996 - d / 360 | 0))) * _ + f.data.rotation, d -= 360 * (16384 - (16384.499999999996 - d / 360 | 0))
                                        }
                                    var b = 0,
                                        g = d - c;
                                    if (0 == (g -= 360 * (16384 - (16384.499999999996 - g / 360 | 0)))) b = s[o];
                                    else {
                                        var y = 0,
                                            A = 0;
                                        u ? (y = 0, A = g) : (y = s[o], A = s[o + 1]);
                                        var w = g > 0,
                                            x = y >= 0;
                                        e.MathUtils.signum(A) != e.MathUtils.signum(g) && Math.abs(A) <= 90 && (Math.abs(y) > 180 && (y += 360 * e.MathUtils.signum(y)), x = w), b = g + y - y % 360, x != w && (b += 360 * e.MathUtils.signum(y)), s[o] = b
                                    }
                                    s[o + 1] = g, c += b * n, f.rotation = c - 360 * (16384 - (16384.499999999996 - c / 360 | 0))
                                }
                            } else t.apply(i, 0, r, null, 1, a, e.MixDirection.mixIn)
                        }, t.prototype.queueEvents = function(e, t) {
                            for (var i = e.animationStart, r = e.animationEnd, n = r - i, a = e.trackLast % n, s = this.events, o = 0, u = s.length; o < u; o++) {
                                var h = s[o];
                                if (h.time < a) break;
                                h.time > r || this.queue.event(e, h)
                            }
                            for ((e.loop ? 0 == n || a > e.trackTime % n : t >= r && e.animationLast < r) && this.queue.complete(e); o < u; o++) {
                                s[o].time < i || this.queue.event(e, s[o])
                            }
                        }, t.prototype.clearTracks = function() {
                            var e = this.queue.drainDisabled;
                            this.queue.drainDisabled = !0;
                            for (var t = 0, i = this.tracks.length; t < i; t++) this.clearTrack(t);
                            this.tracks.length = 0, this.queue.drainDisabled = e, this.queue.drain()
                        }, t.prototype.clearTrack = function(e) {
                            if (!(e >= this.tracks.length)) {
                                var t = this.tracks[e];
                                if (null != t) {
                                    this.queue.end(t), this.disposeNext(t);
                                    for (var i = t;;) {
                                        var r = i.mixingFrom;
                                        if (null == r) break;
                                        this.queue.end(r), i.mixingFrom = null, i.mixingTo = null, i = r
                                    }
                                    this.tracks[t.trackIndex] = null, this.queue.drain()
                                }
                            }
                        }, t.prototype.setCurrent = function(e, t, i) {
                            var r = this.expandToIndex(e);
                            this.tracks[e] = t, null != r && (i && this.queue.interrupt(r), t.mixingFrom = r, r.mixingTo = t, t.mixTime = 0, null != r.mixingFrom && r.mixDuration > 0 && (t.interruptAlpha *= Math.min(1, r.mixTime / r.mixDuration)), r.timelinesRotation.length = 0), this.queue.start(t)
                        }, t.prototype.setAnimation = function(e, t, i) {
                            var r = this.data.skeletonData.findAnimation(t);
                            if (null == r) throw new Error("Animation not found: " + t);
                            return this.setAnimationWith(e, r, i)
                        }, t.prototype.setAnimationWith = function(e, t, i) {
                            if (null == t) throw new Error("animation cannot be null.");
                            var r = !0,
                                n = this.expandToIndex(e);
                            null != n && (-1 == n.nextTrackLast ? (this.tracks[e] = n.mixingFrom, this.queue.interrupt(n), this.queue.end(n), this.disposeNext(n), n = n.mixingFrom, r = !1) : this.disposeNext(n));
                            var a = this.trackEntry(e, t, i, n);
                            return this.setCurrent(e, a, r), this.queue.drain(), a
                        }, t.prototype.addAnimation = function(e, t, i, r) {
                            var n = this.data.skeletonData.findAnimation(t);
                            if (null == n) throw new Error("Animation not found: " + t);
                            return this.addAnimationWith(e, n, i, r)
                        }, t.prototype.addAnimationWith = function(e, t, i, r) {
                            if (null == t) throw new Error("animation cannot be null.");
                            var n = this.expandToIndex(e);
                            if (null != n)
                                for (; null != n.next;) n = n.next;
                            var a = this.trackEntry(e, t, i, n);
                            if (null == n) this.setCurrent(e, a, !0), this.queue.drain();
                            else if (n.next = a, r <= 0) {
                                var s = n.animationEnd - n.animationStart;
                                0 != s ? (n.loop ? r += s * (1 + (n.trackTime / s | 0)) : r += Math.max(s, n.trackTime), r -= this.data.getMix(n.animation, t)) : r = n.trackTime
                            }
                            return a.delay = r, a
                        }, t.prototype.setEmptyAnimation = function(e, i) {
                            var r = this.setAnimationWith(e, t.emptyAnimation, !1);
                            return r.mixDuration = i, r.trackEnd = i, r
                        }, t.prototype.addEmptyAnimation = function(e, i, r) {
                            r <= 0 && (r -= i);
                            var n = this.addAnimationWith(e, t.emptyAnimation, !1, r);
                            return n.mixDuration = i, n.trackEnd = i, n
                        }, t.prototype.setEmptyAnimations = function(e) {
                            var t = this.queue.drainDisabled;
                            this.queue.drainDisabled = !0;
                            for (var i = 0, r = this.tracks.length; i < r; i++) {
                                var n = this.tracks[i];
                                null != n && this.setEmptyAnimation(n.trackIndex, e)
                            }
                            this.queue.drainDisabled = t, this.queue.drain()
                        }, t.prototype.expandToIndex = function(t) {
                            return t < this.tracks.length ? this.tracks[t] : (e.Utils.ensureArrayCapacity(this.tracks, t + 1, null), this.tracks.length = t + 1, null)
                        }, t.prototype.trackEntry = function(t, i, r, n) {
                            var a = this.trackEntryPool.obtain();
                            return a.trackIndex = t, a.animation = i, a.loop = r, a.holdPrevious = !1, a.eventThreshold = 0, a.attachmentThreshold = 0, a.drawOrderThreshold = 0, a.animationStart = 0, a.animationEnd = i.duration, a.animationLast = -1, a.nextAnimationLast = -1, a.delay = 0, a.trackTime = 0, a.trackLast = -1, a.nextTrackLast = -1, a.trackEnd = Number.MAX_VALUE, a.timeScale = 1, a.alpha = 1, a.interruptAlpha = 1, a.mixTime = 0, a.mixDuration = null == n ? 0 : this.data.getMix(n.animation, i), a.mixBlend = e.MixBlend.replace, a
                        }, t.prototype.disposeNext = function(e) {
                            for (var t = e.next; null != t;) this.queue.dispose(t), t = t.next;
                            e.next = null
                        }, t.prototype._animationsChanged = function() {
                            this.animationsChanged = !1, this.propertyIDs.clear();
                            for (var t = 0, i = this.tracks.length; t < i; t++) {
                                if (null != (r = this.tracks[t])) {
                                    for (; null != r.mixingFrom;) r = r.mixingFrom;
                                    do {
                                        null != r.mixingFrom && r.mixBlend == e.MixBlend.add || this.computeHold(r), r = r.mixingTo
                                    } while (null != r)
                                }
                            }
                            this.propertyIDs.clear();
                            for (t = this.tracks.length - 1; t >= 0; t--)
                                for (var r = this.tracks[t]; null != r;) this.computeNotLast(r), r = r.mixingFrom
                        }, t.prototype.computeHold = function(i) {
                            var r = i.mixingTo,
                                n = i.animation.timelines,
                                a = i.animation.timelines.length,
                                s = e.Utils.setArraySize(i.timelineMode, a);
                            i.timelineHoldMix.length = 0;
                            var o = e.Utils.setArraySize(i.timelineHoldMix, a),
                                u = this.propertyIDs;
                            if (null != r && r.holdPrevious)
                                for (var h = 0; h < a; h++) u.add(n[h].getPropertyId()), s[h] = t.HOLD;
                            else e: for (h = 0; h < a; h++) {
                                var l = n[h],
                                    f = l.getPropertyId();
                                if (u.add(f))
                                    if (null == r || l instanceof e.AttachmentTimeline || l instanceof e.DrawOrderTimeline || l instanceof e.EventTimeline || !r.animation.hasTimeline(f)) s[h] = t.FIRST;
                                    else {
                                        for (var c = r.mixingTo; null != c; c = c.mixingTo)
                                            if (!c.animation.hasTimeline(f)) {
                                                if (i.mixDuration > 0) {
                                                    s[h] = t.HOLD_MIX, o[h] = c;
                                                    continue e
                                                }
                                                break
                                            }
                                        s[h] = t.HOLD
                                    }
                                else s[h] = t.SUBSEQUENT
                            }
                        }, t.prototype.computeNotLast = function(i) {
                            for (var r = i.animation.timelines, n = i.animation.timelines.length, a = i.timelineMode, s = this.propertyIDs, o = 0; o < n; o++)
                                if (r[o] instanceof e.AttachmentTimeline) {
                                    var u = r[o];
                                    s.add(u.slotIndex) || (a[o] |= t.NOT_LAST)
                                }
                        }, t.prototype.getCurrent = function(e) {
                            return e >= this.tracks.length ? null : this.tracks[e]
                        }, t.prototype.addListener = function(e) {
                            if (null == e) throw new Error("listener cannot be null.");
                            this.listeners.push(e)
                        }, t.prototype.removeListener = function(e) {
                            var t = this.listeners.indexOf(e);
                            t >= 0 && this.listeners.splice(t, 1)
                        }, t.prototype.clearListeners = function() {
                            this.listeners.length = 0
                        }, t.prototype.clearListenerNotifications = function() {
                            this.queue.clear()
                        }, t.prototype.setAnimationByName = function(e, i, r) {
                            t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), this.setAnimation(e, i, r)
                        }, t.prototype.addAnimationByName = function(e, i, r, n) {
                            t.deprecatedWarning2 || (t.deprecatedWarning2 = !0), this.addAnimation(e, i, r, n)
                        }, t.prototype.hasAnimation = function(e) {
                            return null !== this.data.skeletonData.findAnimation(e)
                        }, t.prototype.hasAnimationByName = function(e) {
                            return t.deprecatedWarning3 || (t.deprecatedWarning3 = !0), this.hasAnimation(e)
                        }, t.emptyAnimation = new e.Animation("<empty>", [], 0), t.SUBSEQUENT = 0, t.FIRST = 1, t.HOLD = 2, t.HOLD_MIX = 3, t.NOT_LAST = 4, t.deprecatedWarning1 = !1, t.deprecatedWarning2 = !1, t.deprecatedWarning3 = !1, t
                    }();
                    e.AnimationState = t;
                    var i = function() {
                        function t() {
                            this.mixBlend = e.MixBlend.replace, this.timelineMode = new Array, this.timelineHoldMix = new Array, this.timelinesRotation = new Array
                        }
                        return t.prototype.reset = function() {
                            this.next = null, this.mixingFrom = null, this.mixingTo = null, this.animation = null, this.listener = null, this.timelineMode.length = 0, this.timelineHoldMix.length = 0, this.timelinesRotation.length = 0
                        }, t.prototype.getAnimationTime = function() {
                            if (this.loop) {
                                var e = this.animationEnd - this.animationStart;
                                return 0 == e ? this.animationStart : this.trackTime % e + this.animationStart
                            }
                            return Math.min(this.trackTime + this.animationStart, this.animationEnd)
                        }, t.prototype.setAnimationLast = function(e) {
                            this.animationLast = e, this.nextAnimationLast = e
                        }, t.prototype.isComplete = function() {
                            return this.trackTime >= this.animationEnd - this.animationStart
                        }, t.prototype.resetRotationDirections = function() {
                            this.timelinesRotation.length = 0
                        }, Object.defineProperty(t.prototype, "time", {
                            get: function() {
                                return t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), this.trackTime
                            },
                            set: function(e) {
                                t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), this.trackTime = e
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "endTime", {
                            get: function() {
                                return t.deprecatedWarning2 || (t.deprecatedWarning2 = !0), this.trackTime
                            },
                            set: function(e) {
                                t.deprecatedWarning2 || (t.deprecatedWarning2 = !0), this.trackTime = e
                            },
                            enumerable: !0,
                            configurable: !0
                        }), t.prototype.loopsCount = function() {
                            return Math.floor(this.trackTime / this.trackEnd)
                        }, t.deprecatedWarning1 = !1, t.deprecatedWarning2 = !1, t
                    }();
                    e.TrackEntry = i;
                    var r, n = function() {
                        function t(e) {
                            this.objects = [], this.drainDisabled = !1, this.animState = e
                        }
                        return t.prototype.start = function(e) {
                            this.objects.push(r.start), this.objects.push(e), this.animState.animationsChanged = !0
                        }, t.prototype.interrupt = function(e) {
                            this.objects.push(r.interrupt), this.objects.push(e)
                        }, t.prototype.end = function(e) {
                            this.objects.push(r.end), this.objects.push(e), this.animState.animationsChanged = !0
                        }, t.prototype.dispose = function(e) {
                            this.objects.push(r.dispose), this.objects.push(e)
                        }, t.prototype.complete = function(e) {
                            this.objects.push(r.complete), this.objects.push(e)
                        }, t.prototype.event = function(e, t) {
                            this.objects.push(r.event), this.objects.push(e), this.objects.push(t)
                        }, t.prototype.deprecateStuff = function() {
                            return t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), !0
                        }, t.prototype.drain = function() {
                            if (!this.drainDisabled) {
                                this.drainDisabled = !0;
                                for (var t = this.objects, i = this.animState.listeners, n = 0; n < t.length; n += 2) {
                                    var a = t[n],
                                        s = t[n + 1];
                                    switch (a) {
                                        case r.start:
                                            null != s.listener && s.listener.start && s.listener.start(s);
                                            for (var o = 0; o < i.length; o++) i[o].start && i[o].start(s);
                                            s.onStart && this.deprecateStuff() && s.onStart(s.trackIndex), this.animState.onStart && this.deprecateStuff() && this.deprecateStuff && this.animState.onStart(s.trackIndex);
                                            break;
                                        case r.interrupt:
                                            null != s.listener && s.listener.interrupt && s.listener.interrupt(s);
                                            for (o = 0; o < i.length; o++) i[o].interrupt && i[o].interrupt(s);
                                            break;
                                        case r.end:
                                            null != s.listener && s.listener.end && s.listener.end(s);
                                            for (o = 0; o < i.length; o++) i[o].end && i[o].end(s);
                                            s.onEnd && this.deprecateStuff() && s.onEnd(s.trackIndex), this.animState.onEnd && this.deprecateStuff() && this.animState.onEnd(s.trackIndex);
                                        case r.dispose:
                                            null != s.listener && s.listener.dispose && s.listener.dispose(s);
                                            for (o = 0; o < i.length; o++) i[o].dispose && i[o].dispose(s);
                                            this.animState.trackEntryPool.free(s);
                                            break;
                                        case r.complete:
                                            null != s.listener && s.listener.complete && s.listener.complete(s);
                                            for (o = 0; o < i.length; o++) i[o].complete && i[o].complete(s);
                                            var u = e.MathUtils.toInt(s.loopsCount());
                                            s.onComplete && this.deprecateStuff() && s.onComplete(s.trackIndex, u), this.animState.onComplete && this.deprecateStuff() && this.animState.onComplete(s.trackIndex, u);
                                            break;
                                        case r.event:
                                            var h = t[2 + n++];
                                            null != s.listener && s.listener.event && s.listener.event(s, h);
                                            for (o = 0; o < i.length; o++) i[o].event && i[o].event(s, h);
                                            s.onEvent && this.deprecateStuff() && s.onEvent(s.trackIndex, h), this.animState.onEvent && this.deprecateStuff() && this.animState.onEvent(s.trackIndex, h)
                                    }
                                }
                                this.clear(), this.drainDisabled = !1
                            }
                        }, t.prototype.clear = function() {
                            this.objects.length = 0
                        }, t.deprecatedWarning1 = !1, t
                    }();
                    e.EventQueue = n,
                        function(e) {
                            e[e.start = 0] = "start", e[e.interrupt = 1] = "interrupt", e[e.end = 2] = "end", e[e.dispose = 3] = "dispose", e[e.complete = 4] = "complete", e[e.event = 5] = "event"
                        }(r = e.EventType || (e.EventType = {}));
                    var a = function() {
                        function e() {}
                        return e.prototype.start = function(e) {}, e.prototype.interrupt = function(e) {}, e.prototype.end = function(e) {}, e.prototype.dispose = function(e) {}, e.prototype.complete = function(e) {}, e.prototype.event = function(e, t) {}, e
                    }();
                    e.AnimationStateAdapter = a
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function e(e) {
                            if (this.animationToMixTime = {}, this.defaultMix = 0, null == e) throw new Error("skeletonData cannot be null.");
                            this.skeletonData = e
                        }
                        return e.prototype.setMix = function(e, t, i) {
                            var r = this.skeletonData.findAnimation(e);
                            if (null == r) throw new Error("Animation not found: " + e);
                            var n = this.skeletonData.findAnimation(t);
                            if (null == n) throw new Error("Animation not found: " + t);
                            this.setMixWith(r, n, i)
                        }, e.prototype.setMixByName = function(t, i, r) {
                            e.deprecatedWarning1 || (e.deprecatedWarning1 = !0), this.setMix(t, i, r)
                        }, e.prototype.setMixWith = function(e, t, i) {
                            if (null == e) throw new Error("from cannot be null.");
                            if (null == t) throw new Error("to cannot be null.");
                            var r = e.name + "." + t.name;
                            this.animationToMixTime[r] = i
                        }, e.prototype.getMix = function(e, t) {
                            var i = e.name + "." + t.name,
                                r = this.animationToMixTime[i];
                            return void 0 === r ? this.defaultMix : r
                        }, e.deprecatedWarning1 = !1, e
                    }();
                    e.AnimationStateData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e) {
                            this.atlas = e
                        }
                        return t.prototype.newRegionAttachment = function(t, i, r) {
                            var n = this.atlas.findRegion(r);
                            if (null == n) throw new Error("Region not found in atlas: " + r + " (region attachment: " + i + ")");
                            var a = new e.RegionAttachment(i);
                            return a.region = n, a
                        }, t.prototype.newMeshAttachment = function(t, i, r) {
                            var n = this.atlas.findRegion(r);
                            if (null == n) throw new Error("Region not found in atlas: " + r + " (mesh attachment: " + i + ")");
                            var a = new e.MeshAttachment(i);
                            return a.region = n, a
                        }, t.prototype.newBoundingBoxAttachment = function(t, i) {
                            return new e.BoundingBoxAttachment(i)
                        }, t.prototype.newPathAttachment = function(t, i) {
                            return new e.PathAttachment(i)
                        }, t.prototype.newPointAttachment = function(t, i) {
                            return new e.PointAttachment(i)
                        }, t.prototype.newClippingAttachment = function(t, i) {
                            return new e.ClippingAttachment(i)
                        }, t
                    }();
                    e.AtlasAttachmentLoader = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    ! function(e) {
                        e[e.Normal = 0] = "Normal", e[e.Additive = 1] = "Additive", e[e.Multiply = 2] = "Multiply", e[e.Screen = 3] = "Screen"
                    }(e.BlendMode || (e.BlendMode = {}))
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(t) {
                ! function(t) {
                    var i = function() {
                        function i(t, i, r) {
                            if (this.matrix = new e.Matrix, this.children = new Array, this.x = 0, this.y = 0, this.rotation = 0, this.scaleX = 0, this.scaleY = 0, this.shearX = 0, this.shearY = 0, this.ax = 0, this.ay = 0, this.arotation = 0, this.ascaleX = 0, this.ascaleY = 0, this.ashearX = 0, this.ashearY = 0, this.appliedValid = !1, this.sorted = !1, this.active = !1, null == t) throw new Error("data cannot be null.");
                            if (null == i) throw new Error("skeleton cannot be null.");
                            this.data = t, this.skeleton = i, this.parent = r, this.setToSetupPose()
                        }
                        return Object.defineProperty(i.prototype, "worldX", {
                            get: function() {
                                return this.matrix.tx
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(i.prototype, "worldY", {
                            get: function() {
                                return this.matrix.ty
                            },
                            enumerable: !0,
                            configurable: !0
                        }), i.prototype.isActive = function() {
                            return this.active
                        }, i.prototype.update = function() {
                            this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY)
                        }, i.prototype.updateWorldTransform = function() {
                            this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY)
                        }, i.prototype.updateWorldTransformWith = function(e, r, n, a, s, o, u) {
                            this.ax = e, this.ay = r, this.arotation = n, this.ascaleX = a, this.ascaleY = s, this.ashearX = o, this.ashearY = u, this.appliedValid = !0;
                            var h = this.parent,
                                l = this.matrix,
                                f = this.skeleton.scaleX,
                                c = i.yDown ? -this.skeleton.scaleY : this.skeleton.scaleY;
                            if (null == h) {
                                var d = this.skeleton,
                                    p = n + 90 + u;
                                return l.a = t.MathUtils.cosDeg(n + o) * a * f, l.c = t.MathUtils.cosDeg(p) * s * f, l.b = t.MathUtils.sinDeg(n + o) * a * c, l.d = t.MathUtils.sinDeg(p) * s * c, l.tx = e * f + d.x, void(l.ty = r * c + d.y)
                            }
                            var v = h.matrix.a,
                                m = h.matrix.c,
                                _ = h.matrix.b,
                                b = h.matrix.d;
                            switch (l.tx = v * e + m * r + h.matrix.tx, l.ty = _ * e + b * r + h.matrix.ty, this.data.transformMode) {
                                case t.TransformMode.Normal:
                                    p = n + 90 + u;
                                    var g = t.MathUtils.cosDeg(n + o) * a,
                                        y = t.MathUtils.cosDeg(p) * s,
                                        A = t.MathUtils.sinDeg(n + o) * a,
                                        w = t.MathUtils.sinDeg(p) * s;
                                    return l.a = v * g + m * A, l.c = v * y + m * w, l.b = _ * g + b * A, void(l.d = _ * y + b * w);
                                case t.TransformMode.OnlyTranslation:
                                    p = n + 90 + u;
                                    l.a = t.MathUtils.cosDeg(n + o) * a, l.c = t.MathUtils.cosDeg(p) * s, l.b = t.MathUtils.sinDeg(n + o) * a, l.d = t.MathUtils.sinDeg(p) * s;
                                    break;
                                case t.TransformMode.NoRotationOrReflection:
                                    var x = 0;
                                    (E = v * v + _ * _) > 1e-4 ? (m = _ * (E = Math.abs(v * b - m * _) / E), b = v * E, x = Math.atan2(_, v) * t.MathUtils.radDeg) : (v = 0, _ = 0, x = 90 - Math.atan2(b, m) * t.MathUtils.radDeg);
                                    var k = n + o - x,
                                        T = n + u - x + 90;
                                    g = t.MathUtils.cosDeg(k) * a, y = t.MathUtils.cosDeg(T) * s, A = t.MathUtils.sinDeg(k) * a, w = t.MathUtils.sinDeg(T) * s;
                                    l.a = v * g - m * A, l.c = v * y - m * w, l.b = _ * g + b * A, l.d = _ * y + b * w;
                                    break;
                                case t.TransformMode.NoScale:
                                case t.TransformMode.NoScaleOrReflection:
                                    var E, S = t.MathUtils.cosDeg(n),
                                        P = t.MathUtils.sinDeg(n),
                                        I = (v * S + m * P) / f,
                                        M = (_ * S + b * P) / c;
                                    (E = Math.sqrt(I * I + M * M)) > 1e-5 && (E = 1 / E), I *= E, M *= E, E = Math.sqrt(I * I + M * M), this.data.transformMode == t.TransformMode.NoScale && v * b - m * _ < 0 != (i.yDown ? this.skeleton.scaleX < 0 != this.skeleton.scaleY > 0 : this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0) && (E = -E);
                                    var C = Math.PI / 2 + Math.atan2(M, I),
                                        O = Math.cos(C) * E,
                                        R = Math.sin(C) * E;
                                    g = t.MathUtils.cosDeg(o) * a, y = t.MathUtils.cosDeg(90 + u) * s, A = t.MathUtils.sinDeg(o) * a, w = t.MathUtils.sinDeg(90 + u) * s;
                                    l.a = I * g + O * A, l.c = I * y + O * w, l.b = M * g + R * A, l.d = M * y + R * w
                            }
                            l.a *= f, l.c *= f, l.b *= c, l.d *= c
                        }, i.prototype.setToSetupPose = function() {
                            var e = this.data;
                            this.x = e.x, this.y = e.y, this.rotation = e.rotation, this.scaleX = e.scaleX, this.scaleY = e.scaleY, this.shearX = e.shearX, this.shearY = e.shearY
                        }, i.prototype.getWorldRotationX = function() {
                            return Math.atan2(this.matrix.b, this.matrix.a) * t.MathUtils.radDeg
                        }, i.prototype.getWorldRotationY = function() {
                            return Math.atan2(this.matrix.d, this.matrix.c) * t.MathUtils.radDeg
                        }, i.prototype.getWorldScaleX = function() {
                            var e = this.matrix;
                            return Math.sqrt(e.a * e.a + e.c * e.c)
                        }, i.prototype.getWorldScaleY = function() {
                            var e = this.matrix;
                            return Math.sqrt(e.b * e.b + e.d * e.d)
                        }, i.prototype.updateAppliedTransform = function() {
                            this.appliedValid = !0;
                            var e = this.parent,
                                i = this.matrix;
                            if (null == e) return this.ax = i.tx, this.ay = i.ty, this.arotation = Math.atan2(i.b, i.a) * t.MathUtils.radDeg, this.ascaleX = Math.sqrt(i.a * i.a + i.b * i.b), this.ascaleY = Math.sqrt(i.c * i.c + i.d * i.d), this.ashearX = 0, void(this.ashearY = Math.atan2(i.a * i.c + i.b * i.d, i.a * i.d - i.b * i.c) * t.MathUtils.radDeg);
                            var r = e.matrix,
                                n = 1 / (r.a * r.d - r.b * r.c),
                                a = i.tx - r.tx,
                                s = i.ty - r.ty;
                            this.ax = a * r.d * n - s * r.c * n, this.ay = s * r.a * n - a * r.b * n;
                            var o = n * r.d,
                                u = n * r.a,
                                h = n * r.c,
                                l = n * r.b,
                                f = o * i.a - h * i.b,
                                c = o * i.c - h * i.d,
                                d = u * i.b - l * i.a,
                                p = u * i.d - l * i.c;
                            if (this.ashearX = 0, this.ascaleX = Math.sqrt(f * f + d * d), this.ascaleX > 1e-4) {
                                var v = f * p - c * d;
                                this.ascaleY = v / this.ascaleX, this.ashearY = Math.atan2(f * c + d * p, v) * t.MathUtils.radDeg, this.arotation = Math.atan2(d, f) * t.MathUtils.radDeg
                            } else this.ascaleX = 0, this.ascaleY = Math.sqrt(c * c + p * p), this.ashearY = 0, this.arotation = 90 - Math.atan2(p, c) * t.MathUtils.radDeg
                        }, i.prototype.worldToLocal = function(e) {
                            var t = this.matrix,
                                i = t.a,
                                r = t.c,
                                n = t.b,
                                a = t.d,
                                s = 1 / (i * a - r * n),
                                o = e.x - t.tx,
                                u = e.y - t.ty;
                            return e.x = o * a * s - u * r * s, e.y = u * i * s - o * n * s, e
                        }, i.prototype.localToWorld = function(e) {
                            var t = this.matrix,
                                i = e.x,
                                r = e.y;
                            return e.x = i * t.a + r * t.c + t.tx, e.y = i * t.b + r * t.d + t.ty, e
                        }, i.prototype.worldToLocalRotation = function(e) {
                            var i = t.MathUtils.sinDeg(e),
                                r = t.MathUtils.cosDeg(e),
                                n = this.matrix;
                            return Math.atan2(n.a * i - n.b * r, n.d * r - n.c * i) * t.MathUtils.radDeg
                        }, i.prototype.localToWorldRotation = function(e) {
                            var i = t.MathUtils.sinDeg(e),
                                r = t.MathUtils.cosDeg(e),
                                n = this.matrix;
                            return Math.atan2(r * n.b + i * n.d, r * n.a + i * n.c) * t.MathUtils.radDeg
                        }, i.prototype.rotateWorld = function(e) {
                            var i = this.matrix,
                                r = i.a,
                                n = i.c,
                                a = i.b,
                                s = i.d,
                                o = t.MathUtils.cosDeg(e),
                                u = t.MathUtils.sinDeg(e);
                            i.a = o * r - u * a, i.c = o * n - u * s, i.b = u * r + o * a, i.d = u * n + o * s, this.appliedValid = !1
                        }, i.yDown = !1, i
                    }();
                    t.Bone = i
                }(t.core || (t.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t, i = function(i, r, n) {
                        if (this.x = 0, this.y = 0, this.rotation = 0, this.scaleX = 1, this.scaleY = 1, this.shearX = 0, this.shearY = 0, this.transformMode = t.Normal, this.skinRequired = !1, this.color = new e.Color, i < 0) throw new Error("index must be >= 0.");
                        if (null == r) throw new Error("name cannot be null.");
                        this.index = i, this.name = r, this.parent = n
                    };
                    e.BoneData = i,
                        function(e) {
                            e[e.Normal = 0] = "Normal", e[e.OnlyTranslation = 1] = "OnlyTranslation", e[e.NoRotationOrReflection = 2] = "NoRotationOrReflection", e[e.NoScale = 3] = "NoScale", e[e.NoScaleOrReflection = 4] = "NoScaleOrReflection"
                        }(t = e.TransformMode || (e.TransformMode = {}))
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e, t, i) {
                        this.name = e, this.order = t, this.skinRequired = i
                    };
                    e.ConstraintData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e, t) {
                        if (null == t) throw new Error("data cannot be null.");
                        this.time = e, this.data = t
                    };
                    e.Event = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e) {
                        this.name = e
                    };
                    e.EventData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e, t) {
                            if (this.bendDirection = 0, this.compress = !1, this.stretch = !1, this.mix = 1, this.softness = 0, this.active = !1, null == e) throw new Error("data cannot be null.");
                            if (null == t) throw new Error("skeleton cannot be null.");
                            this.data = e, this.mix = e.mix, this.softness = e.softness, this.bendDirection = e.bendDirection, this.compress = e.compress, this.stretch = e.stretch, this.bones = new Array;
                            for (var i = 0; i < e.bones.length; i++) this.bones.push(t.findBone(e.bones[i].name));
                            this.target = t.findBone(e.target.name)
                        }
                        return t.prototype.isActive = function() {
                            return this.active
                        }, t.prototype.apply = function() {
                            this.update()
                        }, t.prototype.update = function() {
                            var e = this.target,
                                t = this.bones;
                            switch (t.length) {
                                case 1:
                                    this.apply1(t[0], e.worldX, e.worldY, this.compress, this.stretch, this.data.uniform, this.mix);
                                    break;
                                case 2:
                                    this.apply2(t[0], t[1], e.worldX, e.worldY, this.bendDirection, this.stretch, this.softness, this.mix)
                            }
                        }, t.prototype.apply1 = function(t, i, r, n, a, s, o) {
                            t.appliedValid || t.updateAppliedTransform();
                            var u = t.parent.matrix,
                                h = u.a,
                                l = u.c,
                                f = u.b,
                                c = u.d,
                                d = -t.ashearX - t.arotation,
                                p = 0,
                                v = 0;
                            switch (t.data.transformMode) {
                                case e.TransformMode.OnlyTranslation:
                                    p = i - t.worldX, v = r - t.worldY;
                                    break;
                                case e.TransformMode.NoRotationOrReflection:
                                    d += Math.atan2(f, h) * e.MathUtils.radDeg;
                                    var m = Math.abs(h * c - l * f) / (h * h + f * f);
                                    l = -f * m, c = h * m;
                                default:
                                    var _ = i - u.tx,
                                        b = r - u.ty,
                                        g = h * c - l * f;
                                    p = (_ * c - b * l) / g - t.ax, v = (b * h - _ * f) / g - t.ay
                            }
                            d += Math.atan2(v, p) * e.MathUtils.radDeg, t.ascaleX < 0 && (d += 180), d > 180 ? d -= 360 : d < -180 && (d += 360);
                            var y = t.ascaleX,
                                A = t.ascaleY;
                            if (n || a) {
                                switch (t.data.transformMode) {
                                    case e.TransformMode.NoScale:
                                    case e.TransformMode.NoScaleOrReflection:
                                        p = i - t.worldX, v = r - t.worldY
                                }
                                var w = t.data.length * y,
                                    x = Math.sqrt(p * p + v * v);
                                if (n && x < w || a && x > w && w > 1e-4) {
                                    var k = (x / w - 1) * o + 1;
                                    y *= k, s && (A *= k)
                                }
                            }
                            t.updateWorldTransformWith(t.ax, t.ay, t.arotation + d * o, y, A, t.ashearX, t.ashearY)
                        }, t.prototype.apply2 = function(t, i, r, n, a, s, o, u) {
                            if (0 != u) {
                                t.appliedValid || t.updateAppliedTransform(), i.appliedValid || i.updateAppliedTransform();
                                var h = t.ax,
                                    l = t.ay,
                                    f = t.ascaleX,
                                    c = f,
                                    d = t.ascaleY,
                                    p = i.ascaleX,
                                    v = t.matrix,
                                    m = 0,
                                    _ = 0,
                                    b = 0;
                                f < 0 ? (f = -f, m = 180, b = -1) : (m = 0, b = 1), d < 0 && (d = -d, b = -b), p < 0 ? (p = -p, _ = 180) : _ = 0;
                                var g = i.ax,
                                    y = 0,
                                    A = 0,
                                    w = 0,
                                    x = v.a,
                                    k = v.c,
                                    T = v.b,
                                    E = v.d,
                                    S = Math.abs(f - d) <= 1e-4;
                                S ? (A = x * g + k * (y = i.ay) + v.tx, w = T * g + E * y + v.ty) : (y = 0, A = x * g + v.tx, w = T * g + v.ty);
                                var P = t.parent.matrix;
                                x = P.a, k = P.c, T = P.b;
                                var I, M, C = 1 / (x * (E = P.d) - k * T),
                                    O = A - P.tx,
                                    R = w - P.ty,
                                    D = (O * E - R * k) * C - h,
                                    F = (R * x - O * T) * C - l,
                                    B = Math.sqrt(D * D + F * F),
                                    N = i.data.length * p;
                                if (B < 1e-4) return this.apply1(t, r, n, !1, s, !1, u), void i.updateWorldTransformWith(g, y, 0, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY);
                                var L = ((O = r - P.tx) * E - (R = n - P.ty) * k) * C - h,
                                    U = (R * x - O * T) * C - l,
                                    V = L * L + U * U;
                                if (0 != o) {
                                    o *= f * (p + 1) / 2;
                                    var X = Math.sqrt(V),
                                        j = X - B - N * f + o;
                                    if (j > 0) {
                                        var G = Math.min(1, j / (2 * o)) - 1;
                                        V = (L -= (G = (j - o * (1 - G * G)) / X) * L) * L + (U -= G * U) * U
                                    }
                                }
                                e: if (S) {
                                    var $ = (V - B * B - (N *= f) * N) / (2 * B * N);
                                    $ < -1 ? $ = -1 : $ > 1 && ($ = 1, s && (c *= (Math.sqrt(V) / (B + N) - 1) * u + 1)), M = Math.acos($) * a, x = B + N * $, k = N * Math.sin(M), I = Math.atan2(U * x - L * k, L * x + U * k)
                                } else {
                                    var H = (x = f * N) * x,
                                        W = (k = d * N) * k,
                                        Y = Math.atan2(U, L),
                                        z = -2 * W * B,
                                        q = W - H;
                                    if ((E = z * z - 4 * q * (T = W * B * B + H * V - H * W)) >= 0) {
                                        var J = Math.sqrt(E);
                                        z < 0 && (J = -J);
                                        var Q = (J = -(z + J) / 2) / q,
                                            Z = T / J,
                                            K = Math.abs(Q) < Math.abs(Z) ? Q : Z;
                                        if (K * K <= V) {
                                            R = Math.sqrt(V - K * K) * a, I = Y - Math.atan2(R, K), M = Math.atan2(R / d, (K - B) / f);
                                            break e
                                        }
                                    }
                                    var ee = e.MathUtils.PI,
                                        te = B - x,
                                        ie = te * te,
                                        re = 0,
                                        ne = 0,
                                        ae = B + x,
                                        se = ae * ae,
                                        oe = 0;
                                    (T = -x * B / (H - W)) >= -1 && T <= 1 && (T = Math.acos(T), (E = (O = x * Math.cos(T) + B) * O + (R = k * Math.sin(T)) * R) < ie && (ee = T, ie = E, te = O, re = R), E > se && (ne = T, se = E, ae = O, oe = R)), V <= (ie + se) / 2 ? (I = Y - Math.atan2(re * a, te), M = ee * a) : (I = Y - Math.atan2(oe * a, ae), M = ne * a)
                                }
                                var ue = Math.atan2(y, g) * b,
                                    he = t.arotation;
                                (I = (I - ue) * e.MathUtils.radDeg + m - he) > 180 ? I -= 360 : I < -180 && (I += 360), t.updateWorldTransformWith(h, l, he + I * u, c, t.ascaleY, 0, 0), he = i.arotation, (M = ((M + ue) * e.MathUtils.radDeg - i.ashearX) * b + _ - he) > 180 ? M -= 360 : M < -180 && (M += 360), i.updateWorldTransformWith(g, y, he + M * u, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY)
                            } else i.updateWorldTransform()
                        }, t
                    }();
                    e.IkConstraint = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e) {
                        function t(t) {
                            var i = e.call(this, t, 0, !1) || this;
                            return i.bones = new Array, i.bendDirection = 1, i.compress = !1, i.stretch = !1, i.uniform = !1, i.mix = 1, i.softness = 0, i
                        }
                        return n(t, e), t
                    }(e.ConstraintData);
                    e.IkConstraintData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e, t) {
                            if (this.position = 0, this.spacing = 0, this.rotateMix = 0, this.translateMix = 0, this.spaces = new Array, this.positions = new Array, this.world = new Array, this.curves = new Array, this.lengths = new Array, this.segments = new Array, this.active = !1, null == e) throw new Error("data cannot be null.");
                            if (null == t) throw new Error("skeleton cannot be null.");
                            this.data = e, this.bones = new Array;
                            for (var i = 0, r = e.bones.length; i < r; i++) this.bones.push(t.findBone(e.bones[i].name));
                            this.target = t.findSlot(e.target.name), this.position = e.position, this.spacing = e.spacing, this.rotateMix = e.rotateMix, this.translateMix = e.translateMix
                        }
                        return t.prototype.isActive = function() {
                            return this.active
                        }, t.prototype.apply = function() {
                            this.update()
                        }, t.prototype.update = function() {
                            var i = this.target.getAttachment();
                            if (i instanceof e.PathAttachment) {
                                var r = this.rotateMix,
                                    n = this.translateMix,
                                    a = r > 0;
                                if (n > 0 || a) {
                                    var s = this.data,
                                        o = s.spacingMode,
                                        u = o == e.SpacingMode.Length,
                                        h = s.rotateMode,
                                        l = h == e.RotateMode.Tangent,
                                        f = h == e.RotateMode.ChainScale,
                                        c = this.bones.length,
                                        d = l ? c : c + 1,
                                        p = this.bones,
                                        v = e.Utils.setArraySize(this.spaces, d),
                                        m = null,
                                        _ = this.spacing;
                                    if (f || u) {
                                        f && (m = e.Utils.setArraySize(this.lengths, c));
                                        for (var b = 0, g = d - 1; b < g;) {
                                            var y = (M = p[b]).data.length;
                                            if (y < t.epsilon) f && (m[b] = 0), v[++b] = 0;
                                            else {
                                                var A = y * M.matrix.a,
                                                    w = y * M.matrix.b,
                                                    x = Math.sqrt(A * A + w * w);
                                                f && (m[b] = x), v[++b] = (u ? y + _ : _) * x / y
                                            }
                                        }
                                    } else
                                        for (b = 1; b < d; b++) v[b] = _;
                                    var k = this.computeWorldPositions(i, d, l, s.positionMode == e.PositionMode.Percent, o == e.SpacingMode.Percent),
                                        T = k[0],
                                        E = k[1],
                                        S = s.offsetRotation,
                                        P = !1;
                                    if (0 == S) P = h == e.RotateMode.Chain;
                                    else P = !1, S *= (I = this.target.bone.matrix).a * I.d - I.b * I.c > 0 ? e.MathUtils.degRad : -e.MathUtils.degRad;
                                    b = 0;
                                    for (var I = 3; b < c; b++, I += 3) {
                                        var M, C = (M = p[b]).matrix;
                                        C.tx += (T - C.tx) * n, C.ty += (E - C.ty) * n;
                                        var O = (A = k[I]) - T,
                                            R = (w = k[I + 1]) - E;
                                        if (f) {
                                            var D = m[b];
                                            if (0 != D) {
                                                var F = (Math.sqrt(O * O + R * R) / D - 1) * r + 1;
                                                C.a *= F, C.b *= F
                                            }
                                        }
                                        if (T = A, E = w, a) {
                                            var B = C.a,
                                                N = C.c,
                                                L = C.b,
                                                U = C.d,
                                                V = 0,
                                                X = 0,
                                                j = 0;
                                            if (V = l ? k[I - 1] : 0 == v[b + 1] ? k[I + 2] : Math.atan2(R, O), V -= Math.atan2(L, B), P) {
                                                X = Math.cos(V), j = Math.sin(V);
                                                var G = M.data.length;
                                                T += (G * (X * B - j * L) - O) * r, E += (G * (j * B + X * L) - R) * r
                                            } else V += S;
                                            V > e.MathUtils.PI ? V -= e.MathUtils.PI2 : V < -e.MathUtils.PI && (V += e.MathUtils.PI2), V *= r, X = Math.cos(V), j = Math.sin(V), C.a = X * B - j * L, C.c = X * N - j * U, C.b = j * B + X * L, C.d = j * N + X * U
                                        }
                                        M.appliedValid = !1
                                    }
                                }
                            }
                        }, t.prototype.computeWorldPositions = function(i, r, n, a, s) {
                            var o = this.target,
                                u = this.position,
                                h = this.spaces,
                                l = e.Utils.setArraySize(this.positions, 3 * r + 2),
                                f = null,
                                c = i.closed,
                                d = i.worldVerticesLength,
                                p = d / 6,
                                v = t.NONE;
                            if (!i.constantSpeed) {
                                var m = i.lengths,
                                    _ = m[p -= c ? 1 : 2];
                                if (a && (u *= _), s)
                                    for (var b = 0; b < r; b++) h[b] *= _;
                                f = e.Utils.setArraySize(this.world, 8);
                                b = 0;
                                for (var g = 0, y = 0; b < r; b++, g += 3) {
                                    var A = u += H = h[b];
                                    if (c)(A %= _) < 0 && (A += _), y = 0;
                                    else {
                                        if (A < 0) {
                                            v != t.BEFORE && (v = t.BEFORE, i.computeWorldVertices(o, 2, 4, f, 0, 2)), this.addBeforePosition(A, f, 0, l, g);
                                            continue
                                        }
                                        if (A > _) {
                                            v != t.AFTER && (v = t.AFTER, i.computeWorldVertices(o, d - 6, 4, f, 0, 2)), this.addAfterPosition(A - _, f, 0, l, g);
                                            continue
                                        }
                                    }
                                    for (;; y++) {
                                        var w = m[y];
                                        if (!(A > w)) {
                                            if (0 == y) A /= w;
                                            else A = (A - (q = m[y - 1])) / (w - q);
                                            break
                                        }
                                    }
                                    y != v && (v = y, c && y == p ? (i.computeWorldVertices(o, d - 4, 4, f, 0, 2), i.computeWorldVertices(o, 0, 4, f, 4, 2)) : i.computeWorldVertices(o, 6 * y + 2, 8, f, 0, 2)), this.addCurvePosition(A, f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], l, g, n || b > 0 && 0 == H)
                                }
                                return l
                            }
                            c ? (d += 2, f = e.Utils.setArraySize(this.world, d), i.computeWorldVertices(o, 2, d - 4, f, 0, 2), i.computeWorldVertices(o, 0, 2, f, d - 4, 2), f[d - 2] = f[0], f[d - 1] = f[1]) : (p--, d -= 4, f = e.Utils.setArraySize(this.world, d), i.computeWorldVertices(o, 2, d, f, 0, 2));
                            for (var x = e.Utils.setArraySize(this.curves, p), k = 0, T = f[0], E = f[1], S = 0, P = 0, I = 0, M = 0, C = 0, O = 0, R = 0, D = 0, F = 0, B = 0, N = 0, L = 0, U = 0, V = 0, X = (b = 0, 2); b < p; b++, X += 6) S = f[X], P = f[X + 1], I = f[X + 2], M = f[X + 3], N = 2 * (R = .1875 * (T - 2 * S + I)) + (F = .09375 * (3 * (S - I) - T + (C = f[X + 4]))), L = 2 * (D = .1875 * (E - 2 * P + M)) + (B = .09375 * (3 * (P - M) - E + (O = f[X + 5]))), U = .75 * (S - T) + R + .16666667 * F, V = .75 * (P - E) + D + .16666667 * B, k += Math.sqrt(U * U + V * V), U += N, V += L, N += F, L += B, k += Math.sqrt(U * U + V * V), U += N, V += L, k += Math.sqrt(U * U + V * V), U += N + F, V += L + B, k += Math.sqrt(U * U + V * V), x[b] = k, T = C, E = O;
                            if (a && (u *= k), s)
                                for (b = 0; b < r; b++) h[b] *= k;
                            for (var j = this.segments, G = 0, $ = (b = 0, g = 0, y = 0, 0); b < r; b++, g += 3) {
                                var H;
                                A = u += H = h[b];
                                if (c)(A %= k) < 0 && (A += k), y = 0;
                                else {
                                    if (A < 0) {
                                        this.addBeforePosition(A, f, 0, l, g);
                                        continue
                                    }
                                    if (A > k) {
                                        this.addAfterPosition(A - k, f, d - 4, l, g);
                                        continue
                                    }
                                }
                                for (;; y++) {
                                    var W = x[y];
                                    if (!(A > W)) {
                                        if (0 == y) A /= W;
                                        else A = (A - (q = x[y - 1])) / (W - q);
                                        break
                                    }
                                }
                                if (y != v) {
                                    v = y;
                                    var Y = 6 * y;
                                    for (T = f[Y], E = f[Y + 1], S = f[Y + 2], P = f[Y + 3], I = f[Y + 4], M = f[Y + 5], N = 2 * (R = .03 * (T - 2 * S + I)) + (F = .006 * (3 * (S - I) - T + (C = f[Y + 6]))), L = 2 * (D = .03 * (E - 2 * P + M)) + (B = .006 * (3 * (P - M) - E + (O = f[Y + 7]))), U = .3 * (S - T) + R + .16666667 * F, V = .3 * (P - E) + D + .16666667 * B, G = Math.sqrt(U * U + V * V), j[0] = G, Y = 1; Y < 8; Y++) U += N, V += L, N += F, L += B, G += Math.sqrt(U * U + V * V), j[Y] = G;
                                    U += N, V += L, G += Math.sqrt(U * U + V * V), j[8] = G, U += N + F, V += L + B, G += Math.sqrt(U * U + V * V), j[9] = G, $ = 0
                                }
                                for (A *= G;; $++) {
                                    var z = j[$];
                                    if (!(A > z)) {
                                        var q;
                                        if (0 == $) A /= z;
                                        else A = $ + (A - (q = j[$ - 1])) / (z - q);
                                        break
                                    }
                                }
                                this.addCurvePosition(.1 * A, T, E, S, P, I, M, C, O, l, g, n || b > 0 && 0 == H)
                            }
                            return l
                        }, t.prototype.addBeforePosition = function(e, t, i, r, n) {
                            var a = t[i],
                                s = t[i + 1],
                                o = t[i + 2] - a,
                                u = t[i + 3] - s,
                                h = Math.atan2(u, o);
                            r[n] = a + e * Math.cos(h), r[n + 1] = s + e * Math.sin(h), r[n + 2] = h
                        }, t.prototype.addAfterPosition = function(e, t, i, r, n) {
                            var a = t[i + 2],
                                s = t[i + 3],
                                o = a - t[i],
                                u = s - t[i + 1],
                                h = Math.atan2(u, o);
                            r[n] = a + e * Math.cos(h), r[n + 1] = s + e * Math.sin(h), r[n + 2] = h
                        }, t.prototype.addCurvePosition = function(e, t, i, r, n, a, s, o, u, h, l, f) {
                            (0 == e || isNaN(e)) && (e = 1e-4);
                            var c = e * e,
                                d = c * e,
                                p = 1 - e,
                                v = p * p,
                                m = v * p,
                                _ = p * e,
                                b = 3 * _,
                                g = p * b,
                                y = b * e,
                                A = t * m + r * g + a * y + o * d,
                                w = i * m + n * g + s * y + u * d;
                            h[l] = A, h[l + 1] = w, f && (h[l + 2] = Math.atan2(w - (i * v + n * _ * 2 + s * c), A - (t * v + r * _ * 2 + a * c)))
                        }, t.NONE = -1, t.BEFORE = -2, t.AFTER = -3, t.epsilon = 1e-5, t
                    }();
                    e.PathConstraint = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e) {
                        function t(t) {
                            var i = e.call(this, t, 0, !1) || this;
                            return i.bones = new Array, i
                        }
                        return n(t, e), t
                    }(e.ConstraintData);
                    e.PathConstraintData = t,
                        function(e) {
                            e[e.Fixed = 0] = "Fixed", e[e.Percent = 1] = "Percent"
                        }(e.PositionMode || (e.PositionMode = {})),
                        function(e) {
                            e[e.Length = 0] = "Length", e[e.Fixed = 1] = "Fixed", e[e.Percent = 2] = "Percent"
                        }(e.SpacingMode || (e.SpacingMode = {})),
                        function(e) {
                            e[e.Tangent = 0] = "Tangent", e[e.Chain = 1] = "Chain", e[e.ChainScale = 2] = "ChainScale"
                        }(e.RotateMode || (e.RotateMode = {}))
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(t) {
                            if (this._updateCache = new Array, this.updateCacheReset = new Array, this.time = 0, this.scaleX = 1, this.scaleY = 1, this.x = 0, this.y = 0, null == t) throw new Error("data cannot be null.");
                            this.data = t, this.bones = new Array;
                            for (var i = 0; i < t.bones.length; i++) {
                                var r = t.bones[i],
                                    n = void 0;
                                if (null == r.parent) n = new e.Bone(r, this, null);
                                else {
                                    var a = this.bones[r.parent.index];
                                    n = new e.Bone(r, this, a), a.children.push(n)
                                }
                                this.bones.push(n)
                            }
                            this.slots = new Array, this.drawOrder = new Array;
                            for (i = 0; i < t.slots.length; i++) {
                                var s = t.slots[i],
                                    o = (n = this.bones[s.boneData.index], new e.Slot(s, n));
                                this.slots.push(o), this.drawOrder.push(o)
                            }
                            this.ikConstraints = new Array;
                            for (i = 0; i < t.ikConstraints.length; i++) {
                                var u = t.ikConstraints[i];
                                this.ikConstraints.push(new e.IkConstraint(u, this))
                            }
                            this.transformConstraints = new Array;
                            for (i = 0; i < t.transformConstraints.length; i++) {
                                var h = t.transformConstraints[i];
                                this.transformConstraints.push(new e.TransformConstraint(h, this))
                            }
                            this.pathConstraints = new Array;
                            for (i = 0; i < t.pathConstraints.length; i++) {
                                var l = t.pathConstraints[i];
                                this.pathConstraints.push(new e.PathConstraint(l, this))
                            }
                            this.color = new e.Color(1, 1, 1, 1), this.updateCache()
                        }
                        return t.prototype.updateCache = function() {
                            this._updateCache.length = 0, this.updateCacheReset.length = 0;
                            for (var e = this.bones, t = 0, i = e.length; t < i; t++) {
                                (n = e[t]).sorted = n.data.skinRequired, n.active = !n.sorted
                            }
                            if (null != this.skin) {
                                var r = this.skin.bones;
                                for (t = 0, i = this.skin.bones.length; t < i; t++) {
                                    var n = this.bones[r[t].index];
                                    do {
                                        n.sorted = !1, n.active = !0, n = n.parent
                                    } while (null != n)
                                }
                            }
                            var a = this.ikConstraints,
                                s = this.transformConstraints,
                                o = this.pathConstraints,
                                u = a.length,
                                h = s.length,
                                l = o.length,
                                f = u + h + l;
                            e: for (t = 0; t < f; t++) {
                                for (var c = 0; c < u; c++) {
                                    if ((d = a[c]).data.order == t) {
                                        this.sortIkConstraint(d);
                                        continue e
                                    }
                                }
                                for (c = 0; c < h; c++) {
                                    if ((d = s[c]).data.order == t) {
                                        this.sortTransformConstraint(d);
                                        continue e
                                    }
                                }
                                for (c = 0; c < l; c++) {
                                    var d;
                                    if ((d = o[c]).data.order == t) {
                                        this.sortPathConstraint(d);
                                        continue e
                                    }
                                }
                            }
                            for (t = 0, i = e.length; t < i; t++) this.sortBone(e[t])
                        }, t.prototype.sortIkConstraint = function(t) {
                            if (t.active = t.target.isActive() && (!t.data.skinRequired || null != this.skin && e.Utils.contains(this.skin.constraints, t.data, !0)), t.active) {
                                var i = t.target;
                                this.sortBone(i);
                                var r = t.bones,
                                    n = r[0];
                                if (this.sortBone(n), r.length > 1) {
                                    var a = r[r.length - 1];
                                    this._updateCache.indexOf(a) > -1 || this.updateCacheReset.push(a)
                                }
                                this._updateCache.push(t), this.sortReset(n.children), r[r.length - 1].sorted = !0
                            }
                        }, t.prototype.sortPathConstraint = function(t) {
                            if (t.active = t.target.bone.isActive() && (!t.data.skinRequired || null != this.skin && e.Utils.contains(this.skin.constraints, t.data, !0)), t.active) {
                                var i = t.target,
                                    r = i.data.index,
                                    n = i.bone;
                                null != this.skin && this.sortPathConstraintAttachment(this.skin, r, n), null != this.data.defaultSkin && this.data.defaultSkin != this.skin && this.sortPathConstraintAttachment(this.data.defaultSkin, r, n);
                                for (var a = 0, s = this.data.skins.length; a < s; a++) this.sortPathConstraintAttachment(this.data.skins[a], r, n);
                                var o = i.getAttachment();
                                o instanceof e.PathAttachment && this.sortPathConstraintAttachmentWith(o, n);
                                var u = t.bones,
                                    h = u.length;
                                for (a = 0; a < h; a++) this.sortBone(u[a]);
                                this._updateCache.push(t);
                                for (a = 0; a < h; a++) this.sortReset(u[a].children);
                                for (a = 0; a < h; a++) u[a].sorted = !0
                            }
                        }, t.prototype.sortTransformConstraint = function(t) {
                            if (t.active = t.target.isActive() && (!t.data.skinRequired || null != this.skin && e.Utils.contains(this.skin.constraints, t.data, !0)), t.active) {
                                this.sortBone(t.target);
                                var i = t.bones,
                                    r = i.length;
                                if (t.data.local)
                                    for (var n = 0; n < r; n++) {
                                        var a = i[n];
                                        this.sortBone(a.parent), this._updateCache.indexOf(a) > -1 || this.updateCacheReset.push(a)
                                    } else
                                        for (n = 0; n < r; n++) this.sortBone(i[n]);
                                this._updateCache.push(t);
                                for (var s = 0; s < r; s++) this.sortReset(i[s].children);
                                for (s = 0; s < r; s++) i[s].sorted = !0
                            }
                        }, t.prototype.sortPathConstraintAttachment = function(e, t, i) {
                            var r = e.attachments[t];
                            if (r)
                                for (var n in r) this.sortPathConstraintAttachmentWith(r[n], i)
                        }, t.prototype.sortPathConstraintAttachmentWith = function(t, i) {
                            if (t instanceof e.PathAttachment) {
                                var r = t.bones;
                                if (null == r) this.sortBone(i);
                                else
                                    for (var n = this.bones, a = 0; a < r.length;)
                                        for (var s = r[a++], o = a + s; a < o; a++) {
                                            var u = r[a];
                                            this.sortBone(n[u])
                                        }
                            }
                        }, t.prototype.sortBone = function(e) {
                            if (!e.sorted) {
                                var t = e.parent;
                                null != t && this.sortBone(t), e.sorted = !0, this._updateCache.push(e)
                            }
                        }, t.prototype.sortReset = function(e) {
                            for (var t = 0, i = e.length; t < i; t++) {
                                var r = e[t];
                                r.active && (r.sorted && this.sortReset(r.children), r.sorted = !1)
                            }
                        }, t.prototype.updateWorldTransform = function() {
                            for (var e = this.updateCacheReset, t = 0, i = e.length; t < i; t++) {
                                var r = e[t];
                                r.ax = r.x, r.ay = r.y, r.arotation = r.rotation, r.ascaleX = r.scaleX, r.ascaleY = r.scaleY, r.ashearX = r.shearX, r.ashearY = r.shearY, r.appliedValid = !0
                            }
                            var n = this._updateCache;
                            for (t = 0, i = n.length; t < i; t++) n[t].update()
                        }, t.prototype.setToSetupPose = function() {
                            this.setBonesToSetupPose(), this.setSlotsToSetupPose()
                        }, t.prototype.setBonesToSetupPose = function() {
                            for (var e = this.bones, t = 0, i = e.length; t < i; t++) e[t].setToSetupPose();
                            var r = this.ikConstraints;
                            for (t = 0, i = r.length; t < i; t++) {
                                (o = r[t]).mix = o.data.mix, o.softness = o.data.softness, o.bendDirection = o.data.bendDirection, o.compress = o.data.compress, o.stretch = o.data.stretch
                            }
                            var n = this.transformConstraints;
                            for (t = 0, i = n.length; t < i; t++) {
                                var a = (o = n[t]).data;
                                o.rotateMix = a.rotateMix, o.translateMix = a.translateMix, o.scaleMix = a.scaleMix, o.shearMix = a.shearMix
                            }
                            var s = this.pathConstraints;
                            for (t = 0, i = s.length; t < i; t++) {
                                var o;
                                a = (o = s[t]).data;
                                o.position = a.position, o.spacing = a.spacing, o.rotateMix = a.rotateMix, o.translateMix = a.translateMix
                            }
                        }, t.prototype.setSlotsToSetupPose = function() {
                            var t = this.slots;
                            e.Utils.arrayCopy(t, 0, this.drawOrder, 0, t.length);
                            for (var i = 0, r = t.length; i < r; i++) t[i].setToSetupPose()
                        }, t.prototype.getRootBone = function() {
                            return 0 == this.bones.length ? null : this.bones[0]
                        }, t.prototype.findBone = function(e) {
                            if (null == e) throw new Error("boneName cannot be null.");
                            for (var t = this.bones, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.data.name == e) return n
                            }
                            return null
                        }, t.prototype.findBoneIndex = function(e) {
                            if (null == e) throw new Error("boneName cannot be null.");
                            for (var t = this.bones, i = 0, r = t.length; i < r; i++)
                                if (t[i].data.name == e) return i;
                            return -1
                        }, t.prototype.findSlot = function(e) {
                            if (null == e) throw new Error("slotName cannot be null.");
                            for (var t = this.slots, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.data.name == e) return n
                            }
                            return null
                        }, t.prototype.findSlotIndex = function(e) {
                            if (null == e) throw new Error("slotName cannot be null.");
                            for (var t = this.slots, i = 0, r = t.length; i < r; i++)
                                if (t[i].data.name == e) return i;
                            return -1
                        }, t.prototype.setSkinByName = function(e) {
                            var t = this.data.findSkin(e);
                            if (null == t) throw new Error("Skin not found: " + e);
                            this.setSkin(t)
                        }, t.prototype.setSkin = function(e) {
                            if (e != this.skin) {
                                if (null != e)
                                    if (null != this.skin) e.attachAll(this, this.skin);
                                    else
                                        for (var t = this.slots, i = 0, r = t.length; i < r; i++) {
                                            var n = t[i],
                                                a = n.data.attachmentName;
                                            if (null != a) {
                                                var s = e.getAttachment(i, a);
                                                null != s && n.setAttachment(s)
                                            }
                                        }
                                this.skin = e, this.updateCache()
                            }
                        }, t.prototype.getAttachmentByName = function(e, t) {
                            return this.getAttachment(this.data.findSlotIndex(e), t)
                        }, t.prototype.getAttachment = function(e, t) {
                            if (null == t) throw new Error("attachmentName cannot be null.");
                            if (null != this.skin) {
                                var i = this.skin.getAttachment(e, t);
                                if (null != i) return i
                            }
                            return null != this.data.defaultSkin ? this.data.defaultSkin.getAttachment(e, t) : null
                        }, t.prototype.setAttachment = function(e, t) {
                            if (null == e) throw new Error("slotName cannot be null.");
                            for (var i = this.slots, r = 0, n = i.length; r < n; r++) {
                                var a = i[r];
                                if (a.data.name == e) {
                                    var s = null;
                                    if (null != t && null == (s = this.getAttachment(r, t))) throw new Error("Attachment not found: " + t + ", for slot: " + e);
                                    return void a.setAttachment(s)
                                }
                            }
                            throw new Error("Slot not found: " + e)
                        }, t.prototype.findIkConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.ikConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.data.name == e) return n
                            }
                            return null
                        }, t.prototype.findTransformConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.transformConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.data.name == e) return n
                            }
                            return null
                        }, t.prototype.findPathConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.pathConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.data.name == e) return n
                            }
                            return null
                        }, t.prototype.getBounds = function(t, i, r) {
                            if (void 0 === r && (r = new Array(2)), null == t) throw new Error("offset cannot be null.");
                            if (null == i) throw new Error("size cannot be null.");
                            for (var n = this.drawOrder, a = Number.POSITIVE_INFINITY, s = Number.POSITIVE_INFINITY, o = Number.NEGATIVE_INFINITY, u = Number.NEGATIVE_INFINITY, h = 0, l = n.length; h < l; h++) {
                                var f = n[h];
                                if (f.bone.active) {
                                    var c = 0,
                                        d = null,
                                        p = f.getAttachment();
                                    if (p instanceof e.RegionAttachment) c = 8, d = e.Utils.setArraySize(r, c, 0), p.computeWorldVertices(f.bone, d, 0, 2);
                                    else if (p instanceof e.MeshAttachment) {
                                        var v = p;
                                        c = v.worldVerticesLength, d = e.Utils.setArraySize(r, c, 0), v.computeWorldVertices(f, 0, c, d, 0, 2)
                                    }
                                    if (null != d)
                                        for (var m = 0, _ = d.length; m < _; m += 2) {
                                            var b = d[m],
                                                g = d[m + 1];
                                            a = Math.min(a, b), s = Math.min(s, g), o = Math.max(o, b), u = Math.max(u, g)
                                        }
                                }
                            }
                            t.set(a, s), i.set(o - a, u - s)
                        }, t.prototype.update = function(e) {
                            this.time += e
                        }, Object.defineProperty(t.prototype, "flipX", {
                            get: function() {
                                return -1 == this.scaleX
                            },
                            set: function(e) {
                                t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), this.scaleX = e ? 1 : -1
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "flipY", {
                            get: function() {
                                return -1 == this.scaleY
                            },
                            set: function(e) {
                                t.deprecatedWarning1 || (t.deprecatedWarning1 = !0), this.scaleY = e ? 1 : -1
                            },
                            enumerable: !0,
                            configurable: !0
                        }), t.deprecatedWarning1 = !1, t
                    }();
                    e.Skeleton = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e) {
                            this.scale = 1, this.linkedMeshes = new Array, this.attachmentLoader = e
                        }
                        return t.prototype.readSkeletonData = function(r) {
                            var n = this.scale,
                                a = new e.SkeletonData;
                            a.name = "";
                            var s = new i(r);
                            if (a.hash = s.readString(), a.version = s.readString(), "3.8.75" === a.version);
                            a.x = s.readFloat(), a.y = s.readFloat(), a.width = s.readFloat(), a.height = s.readFloat();
                            var o = s.readBoolean();
                            o && (a.fps = s.readFloat(), a.imagesPath = s.readString(), a.audioPath = s.readString());
                            var u = 0;
                            u = s.readInt(!0);
                            for (var h = 0; h < u; h++) s.strings.push(s.readString());
                            u = s.readInt(!0);
                            for (h = 0; h < u; h++) {
                                var l = s.readString(),
                                    f = 0 == h ? null : a.bones[s.readInt(!0)];
                                (p = new e.BoneData(h, l, f)).rotation = s.readFloat(), p.x = s.readFloat() * n, p.y = s.readFloat() * n, p.scaleX = s.readFloat(), p.scaleY = s.readFloat(), p.shearX = s.readFloat(), p.shearY = s.readFloat(), p.length = s.readFloat() * n, p.transformMode = t.TransformModeValues[s.readInt(!0)], p.skinRequired = s.readBoolean(), o && e.Color.rgba8888ToColor(p.color, s.readInt32()), a.bones.push(p)
                            }
                            u = s.readInt(!0);
                            for (h = 0; h < u; h++) {
                                var c = s.readString(),
                                    d = a.bones[s.readInt(!0)],
                                    p = new e.SlotData(h, c, d);
                                e.Color.rgba8888ToColor(p.color, s.readInt32());
                                var v = s.readInt32(); - 1 != v && e.Color.rgb888ToColor(p.darkColor = new e.Color, v), p.attachmentName = s.readStringRef(), p.blendMode = t.BlendModeValues[s.readInt(!0)], a.slots.push(p)
                            }
                            u = s.readInt(!0);
                            h = 0;
                            for (var m = void 0; h < u; h++) {
                                (p = new e.IkConstraintData(s.readString())).order = s.readInt(!0), p.skinRequired = s.readBoolean(), m = s.readInt(!0);
                                for (var _ = 0; _ < m; _++) p.bones.push(a.bones[s.readInt(!0)]);
                                p.target = a.bones[s.readInt(!0)], p.mix = s.readFloat(), p.softness = s.readFloat() * n, p.bendDirection = s.readByte(), p.compress = s.readBoolean(), p.stretch = s.readBoolean(), p.uniform = s.readBoolean(), a.ikConstraints.push(p)
                            }
                            u = s.readInt(!0);
                            for (h = 0, m = void 0; h < u; h++) {
                                (p = new e.TransformConstraintData(s.readString())).order = s.readInt(!0), p.skinRequired = s.readBoolean(), m = s.readInt(!0);
                                for (_ = 0; _ < m; _++) p.bones.push(a.bones[s.readInt(!0)]);
                                p.target = a.bones[s.readInt(!0)], p.local = s.readBoolean(), p.relative = s.readBoolean(), p.offsetRotation = s.readFloat(), p.offsetX = s.readFloat() * n, p.offsetY = s.readFloat() * n, p.offsetScaleX = s.readFloat(), p.offsetScaleY = s.readFloat(), p.offsetShearY = s.readFloat(), p.rotateMix = s.readFloat(), p.translateMix = s.readFloat(), p.scaleMix = s.readFloat(), p.shearMix = s.readFloat(), a.transformConstraints.push(p)
                            }
                            u = s.readInt(!0);
                            for (h = 0, m = void 0; h < u; h++) {
                                (p = new e.PathConstraintData(s.readString())).order = s.readInt(!0), p.skinRequired = s.readBoolean(), m = s.readInt(!0);
                                for (_ = 0; _ < m; _++) p.bones.push(a.bones[s.readInt(!0)]);
                                p.target = a.slots[s.readInt(!0)], p.positionMode = t.PositionModeValues[s.readInt(!0)], p.spacingMode = t.SpacingModeValues[s.readInt(!0)], p.rotateMode = t.RotateModeValues[s.readInt(!0)], p.offsetRotation = s.readFloat(), p.position = s.readFloat(), p.positionMode == e.PositionMode.Fixed && (p.position *= n), p.spacing = s.readFloat(), p.spacingMode != e.SpacingMode.Length && p.spacingMode != e.SpacingMode.Fixed || (p.spacing *= n), p.rotateMix = s.readFloat(), p.translateMix = s.readFloat(), a.pathConstraints.push(p)
                            }
                            var b = this.readSkin(s, a, !0, o);
                            null != b && (a.defaultSkin = b, a.skins.push(b));
                            h = a.skins.length;
                            for (e.Utils.setArraySize(a.skins, u = h + s.readInt(!0)); h < u; h++) a.skins[h] = this.readSkin(s, a, !1, o);
                            u = this.linkedMeshes.length;
                            for (h = 0; h < u; h++) {
                                var g = this.linkedMeshes[h],
                                    y = null == g.skin ? a.defaultSkin : a.findSkin(g.skin);
                                if (null == y) throw new Error("Skin not found: " + g.skin);
                                var A = y.getAttachment(g.slotIndex, g.parent);
                                if (null == A) throw new Error("Parent mesh not found: " + g.parent);
                                g.mesh.deformAttachment = g.inheritDeform ? A : g.mesh, g.mesh.setParentMesh(A)
                            }
                            this.linkedMeshes.length = 0, u = s.readInt(!0);
                            for (h = 0; h < u; h++) {
                                (p = new e.EventData(s.readStringRef())).intValue = s.readInt(!1), p.floatValue = s.readFloat(), p.stringValue = s.readString(), p.audioPath = s.readString(), null != p.audioPath && (p.volume = s.readFloat(), p.balance = s.readFloat()), a.events.push(p)
                            }
                            u = s.readInt(!0);
                            for (h = 0; h < u; h++) a.animations.push(this.readAnimation(s, s.readString(), a));
                            return a
                        }, t.prototype.readSkin = function(t, i, r, n) {
                            var a = null,
                                s = 0;
                            if (r) {
                                if (0 == (s = t.readInt(!0))) return null;
                                a = new e.Skin("default")
                            } else {
                                (a = new e.Skin(t.readStringRef())).bones.length = t.readInt(!0);
                                for (var o = 0, u = a.bones.length; o < u; o++) a.bones[o] = i.bones[t.readInt(!0)];
                                for (o = 0, u = t.readInt(!0); o < u; o++) a.constraints.push(i.ikConstraints[t.readInt(!0)]);
                                for (o = 0, u = t.readInt(!0); o < u; o++) a.constraints.push(i.transformConstraints[t.readInt(!0)]);
                                for (o = 0, u = t.readInt(!0); o < u; o++) a.constraints.push(i.pathConstraints[t.readInt(!0)]);
                                s = t.readInt(!0)
                            }
                            for (o = 0; o < s; o++)
                                for (var h = t.readInt(!0), l = 0, f = t.readInt(!0); l < f; l++) {
                                    var c = t.readStringRef(),
                                        d = this.readAttachment(t, i, a, h, c, n);
                                    null != d && a.setAttachment(h, c, d)
                                }
                            return a
                        }, t.prototype.readAttachment = function(i, n, a, s, o, u) {
                            var h = this.scale,
                                l = i.readStringRef();
                            null == l && (l = o);
                            var f = i.readByte();
                            switch (t.AttachmentTypeValues[f]) {
                                case e.AttachmentType.Region:
                                    var c = i.readStringRef(),
                                        d = i.readFloat(),
                                        p = i.readFloat(),
                                        v = i.readFloat(),
                                        m = i.readFloat(),
                                        _ = i.readFloat(),
                                        b = i.readFloat(),
                                        g = i.readFloat(),
                                        y = i.readInt32();
                                    null == c && (c = l);
                                    var A = this.attachmentLoader.newRegionAttachment(a, l, c);
                                    return null == A ? null : (A.path = c, A.x = p * h, A.y = v * h, A.scaleX = m, A.scaleY = _, A.rotation = d, A.width = b * h, A.height = g * h, e.Color.rgba8888ToColor(A.color, y), A);
                                case e.AttachmentType.BoundingBox:
                                    var w = i.readInt(!0),
                                        x = this.readVertices(i, w),
                                        k = (y = u ? i.readInt32() : 0, this.attachmentLoader.newBoundingBoxAttachment(a, l));
                                    return null == k ? null : (k.worldVerticesLength = w << 1, k.vertices = x.vertices, k.bones = x.bones, u && e.Color.rgba8888ToColor(k.color, y), k);
                                case e.AttachmentType.Mesh:
                                    c = i.readStringRef(), y = i.readInt32(), w = i.readInt(!0);
                                    var T = this.readFloatArray(i, w << 1, 1),
                                        E = this.readShortArray(i),
                                        S = (x = this.readVertices(i, w), i.readInt(!0)),
                                        P = null;
                                    b = 0, g = 0;
                                    return u && (P = this.readShortArray(i), b = i.readFloat(), g = i.readFloat()), null == c && (c = l), null == (I = this.attachmentLoader.newMeshAttachment(a, l, c)) ? null : (I.path = c, e.Color.rgba8888ToColor(I.color, y), I.bones = x.bones, I.vertices = x.vertices, I.worldVerticesLength = w << 1, I.triangles = E, I.regionUVs = new Float32Array(T), I.hullLength = S << 1, u && (I.edges = P, I.width = b * h, I.height = g * h), I);
                                case e.AttachmentType.LinkedMesh:
                                    c = i.readStringRef(), y = i.readInt32();
                                    var I, M = i.readStringRef(),
                                        C = i.readStringRef(),
                                        O = i.readBoolean();
                                    b = 0, g = 0;
                                    return u && (b = i.readFloat(), g = i.readFloat()), null == c && (c = l), null == (I = this.attachmentLoader.newMeshAttachment(a, l, c)) ? null : (I.path = c, e.Color.rgba8888ToColor(I.color, y), u && (I.width = b * h, I.height = g * h), this.linkedMeshes.push(new r(I, M, s, C, O)), I);
                                case e.AttachmentType.Path:
                                    for (var R = i.readBoolean(), D = i.readBoolean(), F = (w = i.readInt(!0), x = this.readVertices(i, w), e.Utils.newArray(w / 3, 0)), B = 0, N = F.length; B < N; B++) F[B] = i.readFloat() * h;
                                    y = u ? i.readInt32() : 0;
                                    return null == (c = this.attachmentLoader.newPathAttachment(a, l)) ? null : (c.closed = R, c.constantSpeed = D, c.worldVerticesLength = w << 1, c.vertices = x.vertices, c.bones = x.bones, c.lengths = F, u && e.Color.rgba8888ToColor(c.color, y), c);
                                case e.AttachmentType.Point:
                                    d = i.readFloat(), p = i.readFloat(), v = i.readFloat(), y = u ? i.readInt32() : 0;
                                    var L = this.attachmentLoader.newPointAttachment(a, l);
                                    return null == L ? null : (L.x = p * h, L.y = v * h, L.rotation = d, u && e.Color.rgba8888ToColor(L.color, y), L);
                                case e.AttachmentType.Clipping:
                                    var U = i.readInt(!0),
                                        V = (w = i.readInt(!0), x = this.readVertices(i, w), y = u ? i.readInt32() : 0, this.attachmentLoader.newClippingAttachment(a, l));
                                    return null == V ? null : (V.endSlot = n.slots[U], V.worldVerticesLength = w << 1, V.vertices = x.vertices, V.bones = x.bones, u && e.Color.rgba8888ToColor(V.color, y), V)
                            }
                            return null
                        }, t.prototype.readVertices = function(t, i) {
                            var r = i << 1,
                                a = new n,
                                s = this.scale;
                            if (!t.readBoolean()) return a.vertices = this.readFloatArray(t, r, s), a;
                            for (var o = new Array, u = new Array, h = 0; h < i; h++) {
                                var l = t.readInt(!0);
                                u.push(l);
                                for (var f = 0; f < l; f++) u.push(t.readInt(!0)), o.push(t.readFloat() * s), o.push(t.readFloat() * s), o.push(t.readFloat())
                            }
                            return a.vertices = e.Utils.toFloatArray(o), a.bones = u, a
                        }, t.prototype.readFloatArray = function(e, t, i) {
                            var r = new Array(t);
                            if (1 == i)
                                for (var n = 0; n < t; n++) r[n] = e.readFloat();
                            else
                                for (n = 0; n < t; n++) r[n] = e.readFloat() * i;
                            return r
                        }, t.prototype.readShortArray = function(e) {
                            for (var t = e.readInt(!0), i = new Array(t), r = 0; r < t; r++) i[r] = e.readShort();
                            return i
                        }, t.prototype.readAnimation = function(i, r, n) {
                            for (var a = new Array, s = this.scale, o = 0, u = new e.Color, h = new e.Color, l = 0, f = i.readInt(!0); l < f; l++)
                                for (var c = i.readInt(!0), d = 0, p = i.readInt(!0); d < p; d++) {
                                    var v = i.readByte(),
                                        m = i.readInt(!0);
                                    switch (v) {
                                        case t.SLOT_ATTACHMENT:
                                            (y = new e.AttachmentTimeline(m)).slotIndex = c;
                                            for (var _ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readStringRef());
                                            a.push(y), o = Math.max(o, y.frames[m - 1]);
                                            break;
                                        case t.SLOT_COLOR:
                                            (y = new e.ColorTimeline(m)).slotIndex = c;
                                            for (_ = 0; _ < m; _++) {
                                                var b = i.readFloat();
                                                e.Color.rgba8888ToColor(u, i.readInt32()), y.setFrame(_, b, u.r, u.g, u.b, u.a), _ < m - 1 && this.readCurve(i, _, y)
                                            }
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.ColorTimeline.ENTRIES]);
                                            break;
                                        case t.SLOT_TWO_COLOR:
                                            (y = new e.TwoColorTimeline(m)).slotIndex = c;
                                            for (_ = 0; _ < m; _++) {
                                                b = i.readFloat();
                                                e.Color.rgba8888ToColor(u, i.readInt32()), e.Color.rgb888ToColor(h, i.readInt32()), y.setFrame(_, b, u.r, u.g, u.b, u.a, h.r, h.g, h.b), _ < m - 1 && this.readCurve(i, _, y)
                                            }
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.TwoColorTimeline.ENTRIES])
                                    }
                                }
                            for (l = 0, f = i.readInt(!0); l < f; l++) {
                                var g = i.readInt(!0);
                                for (d = 0, p = i.readInt(!0); d < p; d++) {
                                    v = i.readByte(), m = i.readInt(!0);
                                    switch (v) {
                                        case t.BONE_ROTATE:
                                            (y = new e.RotateTimeline(m)).boneIndex = g;
                                            for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat()), _ < m - 1 && this.readCurve(i, _, y);
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.RotateTimeline.ENTRIES]);
                                            break;
                                        case t.BONE_TRANSLATE:
                                        case t.BONE_SCALE:
                                        case t.BONE_SHEAR:
                                            var y = void 0,
                                                A = 1;
                                            v == t.BONE_SCALE ? y = new e.ScaleTimeline(m) : v == t.BONE_SHEAR ? y = new e.ShearTimeline(m) : (y = new e.TranslateTimeline(m), A = s), y.boneIndex = g;
                                            for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat() * A, i.readFloat() * A), _ < m - 1 && this.readCurve(i, _, y);
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.TranslateTimeline.ENTRIES])
                                    }
                                }
                            }
                            for (l = 0, f = i.readInt(!0); l < f; l++) {
                                var w = i.readInt(!0);
                                m = i.readInt(!0);
                                (y = new e.IkConstraintTimeline(m)).ikConstraintIndex = w;
                                for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat(), i.readFloat() * s, i.readByte(), i.readBoolean(), i.readBoolean()), _ < m - 1 && this.readCurve(i, _, y);
                                a.push(y), o = Math.max(o, y.frames[(m - 1) * e.IkConstraintTimeline.ENTRIES])
                            }
                            for (l = 0, f = i.readInt(!0); l < f; l++) {
                                w = i.readInt(!0), m = i.readInt(!0);
                                (y = new e.TransformConstraintTimeline(m)).transformConstraintIndex = w;
                                for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat()), _ < m - 1 && this.readCurve(i, _, y);
                                a.push(y), o = Math.max(o, y.frames[(m - 1) * e.TransformConstraintTimeline.ENTRIES])
                            }
                            for (l = 0, f = i.readInt(!0); l < f; l++) {
                                w = i.readInt(!0);
                                var x = n.pathConstraints[w];
                                for (d = 0, p = i.readInt(!0); d < p; d++) {
                                    v = i.readByte(), m = i.readInt(!0);
                                    switch (v) {
                                        case t.PATH_POSITION:
                                        case t.PATH_SPACING:
                                            y = void 0, A = 1;
                                            v == t.PATH_SPACING ? (y = new e.PathConstraintSpacingTimeline(m), x.spacingMode != e.SpacingMode.Length && x.spacingMode != e.SpacingMode.Fixed || (A = s)) : (y = new e.PathConstraintPositionTimeline(m), x.positionMode == e.PositionMode.Fixed && (A = s)), y.pathConstraintIndex = w;
                                            for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat() * A), _ < m - 1 && this.readCurve(i, _, y);
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.PathConstraintPositionTimeline.ENTRIES]);
                                            break;
                                        case t.PATH_MIX:
                                            (y = new e.PathConstraintMixTimeline(m)).pathConstraintIndex = w;
                                            for (_ = 0; _ < m; _++) y.setFrame(_, i.readFloat(), i.readFloat(), i.readFloat()), _ < m - 1 && this.readCurve(i, _, y);
                                            a.push(y), o = Math.max(o, y.frames[(m - 1) * e.PathConstraintMixTimeline.ENTRIES])
                                    }
                                }
                            }
                            for (l = 0, f = i.readInt(!0); l < f; l++) {
                                var k = n.skins[i.readInt(!0)];
                                for (d = 0, p = i.readInt(!0); d < p; d++) {
                                    c = i.readInt(!0);
                                    for (var T = 0, E = i.readInt(!0); T < E; T++) {
                                        var S = k.getAttachment(c, i.readStringRef()),
                                            P = null != S.bones,
                                            I = S.vertices,
                                            M = P ? I.length / 3 * 2 : I.length;
                                        m = i.readInt(!0);
                                        (y = new e.DeformTimeline(m)).slotIndex = c, y.attachment = S;
                                        for (_ = 0; _ < m; _++) {
                                            b = i.readFloat();
                                            var C = void 0,
                                                O = i.readInt(!0);
                                            if (0 == O) C = P ? e.Utils.newFloatArray(M) : I;
                                            else {
                                                C = e.Utils.newFloatArray(M);
                                                var R = i.readInt(!0);
                                                if (O += R, 1 == s)
                                                    for (var D = R; D < O; D++) C[D] = i.readFloat();
                                                else
                                                    for (D = R; D < O; D++) C[D] = i.readFloat() * s;
                                                if (!P) {
                                                    D = 0;
                                                    for (var F = C.length; D < F; D++) C[D] += I[D]
                                                }
                                            }
                                            y.setFrame(_, b, C), _ < m - 1 && this.readCurve(i, _, y)
                                        }
                                        a.push(y), o = Math.max(o, y.frames[m - 1])
                                    }
                                }
                            }
                            var B = i.readInt(!0);
                            if (B > 0) {
                                y = new e.DrawOrderTimeline(B);
                                var N = n.slots.length;
                                for (l = 0; l < B; l++) {
                                    b = i.readFloat();
                                    var L = i.readInt(!0),
                                        U = e.Utils.newArray(N, 0);
                                    for (d = N - 1; d >= 0; d--) U[d] = -1;
                                    var V = e.Utils.newArray(N - L, 0),
                                        X = 0,
                                        j = 0;
                                    for (d = 0; d < L; d++) {
                                        for (c = i.readInt(!0); X != c;) V[j++] = X++;
                                        U[X + i.readInt(!0)] = X++
                                    }
                                    for (; X < N;) V[j++] = X++;
                                    for (d = N - 1; d >= 0; d--) - 1 == U[d] && (U[d] = V[--j]);
                                    y.setFrame(l, b, U)
                                }
                                a.push(y), o = Math.max(o, y.frames[B - 1])
                            }
                            var G = i.readInt(!0);
                            if (G > 0) {
                                for (y = new e.EventTimeline(G), l = 0; l < G; l++) {
                                    b = i.readFloat();
                                    var $ = n.events[i.readInt(!0)],
                                        H = new e.Event(b, $);
                                    H.intValue = i.readInt(!1), H.floatValue = i.readFloat(), H.stringValue = i.readBoolean() ? i.readString() : $.stringValue, null != H.data.audioPath && (H.volume = i.readFloat(), H.balance = i.readFloat()), y.setFrame(l, H)
                                }
                                a.push(y), o = Math.max(o, y.frames[G - 1])
                            }
                            return new e.Animation(r, a, o)
                        }, t.prototype.readCurve = function(e, i, r) {
                            switch (e.readByte()) {
                                case t.CURVE_STEPPED:
                                    r.setStepped(i);
                                    break;
                                case t.CURVE_BEZIER:
                                    this.setCurve(r, i, e.readFloat(), e.readFloat(), e.readFloat(), e.readFloat())
                            }
                        }, t.prototype.setCurve = function(e, t, i, r, n, a) {
                            e.setCurve(t, i, r, n, a)
                        }, t.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6], t.TransformModeValues = [e.TransformMode.Normal, e.TransformMode.OnlyTranslation, e.TransformMode.NoRotationOrReflection, e.TransformMode.NoScale, e.TransformMode.NoScaleOrReflection], t.PositionModeValues = [e.PositionMode.Fixed, e.PositionMode.Percent], t.SpacingModeValues = [e.SpacingMode.Length, e.SpacingMode.Fixed, e.SpacingMode.Percent], t.RotateModeValues = [e.RotateMode.Tangent, e.RotateMode.Chain, e.RotateMode.ChainScale], t.BlendModeValues = [e.BlendMode.Normal, e.BlendMode.Additive, e.BlendMode.Multiply, e.BlendMode.Screen], t.BONE_ROTATE = 0, t.BONE_TRANSLATE = 1, t.BONE_SCALE = 2, t.BONE_SHEAR = 3, t.SLOT_ATTACHMENT = 0, t.SLOT_COLOR = 1, t.SLOT_TWO_COLOR = 2, t.PATH_POSITION = 0, t.PATH_SPACING = 1, t.PATH_MIX = 2, t.CURVE_LINEAR = 0, t.CURVE_STEPPED = 1, t.CURVE_BEZIER = 2, t
                    }();
                    e.SkeletonBinary = t;
                    var i = function() {
                            function e(e, t, i, r) {
                                void 0 === t && (t = new Array), void 0 === i && (i = 0), void 0 === r && (r = new DataView(e.buffer)), this.strings = t, this.index = i, this.buffer = r
                            }
                            return e.prototype.readByte = function() {
                                return this.buffer.getInt8(this.index++)
                            }, e.prototype.readShort = function() {
                                var e = this.buffer.getInt16(this.index);
                                return this.index += 2, e
                            }, e.prototype.readInt32 = function() {
                                var e = this.buffer.getInt32(this.index);
                                return this.index += 4, e
                            }, e.prototype.readInt = function(e) {
                                var t = this.readByte(),
                                    i = 127 & t;
                                return 0 != (128 & t) && (i |= (127 & (t = this.readByte())) << 7, 0 != (128 & t) && (i |= (127 & (t = this.readByte())) << 14, 0 != (128 & t) && (i |= (127 & (t = this.readByte())) << 21, 0 != (128 & t) && (i |= (127 & (t = this.readByte())) << 28)))), e ? i : i >>> 1 ^ -(1 & i)
                            }, e.prototype.readStringRef = function() {
                                var e = this.readInt(!0);
                                return 0 == e ? null : this.strings[e - 1]
                            }, e.prototype.readString = function() {
                                var e = this.readInt(!0);
                                switch (e) {
                                    case 0:
                                        return null;
                                    case 1:
                                        return ""
                                }
                                e--;
                                for (var t = "", i = 0; i < e;) {
                                    var r = this.readByte();
                                    switch (r >> 4) {
                                        case 12:
                                        case 13:
                                            t += String.fromCharCode((31 & r) << 6 | 63 & this.readByte()), i += 2;
                                            break;
                                        case 14:
                                            t += String.fromCharCode((15 & r) << 12 | (63 & this.readByte()) << 6 | 63 & this.readByte()), i += 3;
                                            break;
                                        default:
                                            t += String.fromCharCode(r), i++
                                    }
                                }
                                return t
                            }, e.prototype.readFloat = function() {
                                var e = this.buffer.getFloat32(this.index);
                                return this.index += 4, e
                            }, e.prototype.readBoolean = function() {
                                return 0 != this.readByte()
                            }, e
                        }(),
                        r = function(e, t, i, r, n) {
                            this.mesh = e, this.skin = t, this.slotIndex = i, this.parent = r, this.inheritDeform = n
                        },
                        n = function(e, t) {
                            void 0 === e && (e = null), void 0 === t && (t = null), this.bones = e, this.vertices = t
                        }
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t() {
                            this.minX = 0, this.minY = 0, this.maxX = 0, this.maxY = 0, this.boundingBoxes = new Array, this.polygons = new Array, this.polygonPool = new e.Pool(function() {
                                return e.Utils.newFloatArray(16)
                            })
                        }
                        return t.prototype.update = function(t, i) {
                            if (null == t) throw new Error("skeleton cannot be null.");
                            var r = this.boundingBoxes,
                                n = this.polygons,
                                a = this.polygonPool,
                                s = t.slots,
                                o = s.length;
                            r.length = 0, a.freeAll(n), n.length = 0;
                            for (var u = 0; u < o; u++) {
                                var h = s[u];
                                if (h.bone.active) {
                                    var l = h.getAttachment();
                                    if (l instanceof e.BoundingBoxAttachment) {
                                        var f = l;
                                        r.push(f);
                                        var c = a.obtain();
                                        c.length != f.worldVerticesLength && (c = e.Utils.newFloatArray(f.worldVerticesLength)), n.push(c), f.computeWorldVertices(h, 0, f.worldVerticesLength, c, 0, 2)
                                    }
                                }
                            }
                            i ? this.aabbCompute() : (this.minX = Number.POSITIVE_INFINITY, this.minY = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.maxY = Number.NEGATIVE_INFINITY)
                        }, t.prototype.aabbCompute = function() {
                            for (var e = Number.POSITIVE_INFINITY, t = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY, r = Number.NEGATIVE_INFINITY, n = this.polygons, a = 0, s = n.length; a < s; a++)
                                for (var o = n[a], u = o, h = 0, l = o.length; h < l; h += 2) {
                                    var f = u[h],
                                        c = u[h + 1];
                                    e = Math.min(e, f), t = Math.min(t, c), i = Math.max(i, f), r = Math.max(r, c)
                                }
                            this.minX = e, this.minY = t, this.maxX = i, this.maxY = r
                        }, t.prototype.aabbContainsPoint = function(e, t) {
                            return e >= this.minX && e <= this.maxX && t >= this.minY && t <= this.maxY
                        }, t.prototype.aabbIntersectsSegment = function(e, t, i, r) {
                            var n = this.minX,
                                a = this.minY,
                                s = this.maxX,
                                o = this.maxY;
                            if (e <= n && i <= n || t <= a && r <= a || e >= s && i >= s || t >= o && r >= o) return !1;
                            var u = (r - t) / (i - e),
                                h = u * (n - e) + t;
                            if (h > a && h < o) return !0;
                            if ((h = u * (s - e) + t) > a && h < o) return !0;
                            var l = (a - t) / u + e;
                            return l > n && l < s || (l = (o - t) / u + e) > n && l < s
                        }, t.prototype.aabbIntersectsSkeleton = function(e) {
                            return this.minX < e.maxX && this.maxX > e.minX && this.minY < e.maxY && this.maxY > e.minY
                        }, t.prototype.containsPoint = function(e, t) {
                            for (var i = this.polygons, r = 0, n = i.length; r < n; r++)
                                if (this.containsPointPolygon(i[r], e, t)) return this.boundingBoxes[r];
                            return null
                        }, t.prototype.containsPointPolygon = function(e, t, i) {
                            for (var r = e, n = e.length, a = n - 2, s = !1, o = 0; o < n; o += 2) {
                                var u = r[o + 1],
                                    h = r[a + 1];
                                if (u < i && h >= i || h < i && u >= i) {
                                    var l = r[o];
                                    l + (i - u) / (h - u) * (r[a] - l) < t && (s = !s)
                                }
                                a = o
                            }
                            return s
                        }, t.prototype.intersectsSegment = function(e, t, i, r) {
                            for (var n = this.polygons, a = 0, s = n.length; a < s; a++)
                                if (this.intersectsSegmentPolygon(n[a], e, t, i, r)) return this.boundingBoxes[a];
                            return null
                        }, t.prototype.intersectsSegmentPolygon = function(e, t, i, r, n) {
                            for (var a = e, s = e.length, o = t - r, u = i - n, h = t * n - i * r, l = a[s - 2], f = a[s - 1], c = 0; c < s; c += 2) {
                                var d = a[c],
                                    p = a[c + 1],
                                    v = l * p - f * d,
                                    m = l - d,
                                    _ = f - p,
                                    b = o * _ - u * m,
                                    g = (h * m - o * v) / b;
                                if ((g >= l && g <= d || g >= d && g <= l) && (g >= t && g <= r || g >= r && g <= t)) {
                                    var y = (h * _ - u * v) / b;
                                    if ((y >= f && y <= p || y >= p && y <= f) && (y >= i && y <= n || y >= n && y <= i)) return !0
                                }
                                l = d, f = p
                            }
                            return !1
                        }, t.prototype.getPolygon = function(e) {
                            if (null == e) throw new Error("boundingBox cannot be null.");
                            var t = this.boundingBoxes.indexOf(e);
                            return -1 == t ? null : this.polygons[t]
                        }, t.prototype.getWidth = function() {
                            return this.maxX - this.minX
                        }, t.prototype.getHeight = function() {
                            return this.maxY - this.minY
                        }, t
                    }();
                    e.SkeletonBounds = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t() {
                            this.triangulator = new e.Triangulator, this.clippingPolygon = new Array, this.clipOutput = new Array, this.clippedVertices = new Array, this.clippedTriangles = new Array, this.scratch = new Array
                        }
                        return t.prototype.clipStart = function(i, r) {
                            if (null != this.clipAttachment) return 0;
                            this.clipAttachment = r;
                            var n = r.worldVerticesLength,
                                a = e.Utils.setArraySize(this.clippingPolygon, n);
                            r.computeWorldVertices(i, 0, n, a, 0, 2);
                            var s = this.clippingPolygon;
                            t.makeClockwise(s);
                            for (var o = this.clippingPolygons = this.triangulator.decompose(s, this.triangulator.triangulate(s)), u = 0, h = o.length; u < h; u++) {
                                var l = o[u];
                                t.makeClockwise(l), l.push(l[0]), l.push(l[1])
                            }
                            return o.length
                        }, t.prototype.clipEndWithSlot = function(e) {
                            null != this.clipAttachment && this.clipAttachment.endSlot == e.data && this.clipEnd()
                        }, t.prototype.clipEnd = function() {
                            null != this.clipAttachment && (this.clipAttachment = null, this.clippingPolygons = null, this.clippedVertices.length = 0, this.clippedTriangles.length = 0, this.clippingPolygon.length = 0)
                        }, t.prototype.isClipping = function() {
                            return null != this.clipAttachment
                        }, t.prototype.clipTriangles = function(t, i, r, n, a, s, o, u) {
                            var h = this.clipOutput,
                                l = this.clippedVertices,
                                f = this.clippedTriangles,
                                c = this.clippingPolygons,
                                d = this.clippingPolygons.length,
                                p = u ? 12 : 8,
                                v = 0;
                            l.length = 0, f.length = 0;
                            e: for (var m = 0; m < n; m += 3)
                                for (var _ = r[m] << 1, b = t[_], g = t[_ + 1], y = a[_], A = a[_ + 1], w = t[_ = r[m + 1] << 1], x = t[_ + 1], k = a[_], T = a[_ + 1], E = t[_ = r[m + 2] << 1], S = t[_ + 1], P = a[_], I = a[_ + 1], M = 0; M < d; M++) {
                                    var C = l.length;
                                    if (!this.clip(b, g, w, x, E, S, c[M], h)) {
                                        (V = e.Utils.setArraySize(l, C + 3 * p))[C] = b, V[C + 1] = g, V[C + 2] = s.r, V[C + 3] = s.g, V[C + 4] = s.b, V[C + 5] = s.a, u ? (V[C + 6] = y, V[C + 7] = A, V[C + 8] = o.r, V[C + 9] = o.g, V[C + 10] = o.b, V[C + 11] = o.a, V[C + 12] = w, V[C + 13] = x, V[C + 14] = s.r, V[C + 15] = s.g, V[C + 16] = s.b, V[C + 17] = s.a, V[C + 18] = k, V[C + 19] = T, V[C + 20] = o.r, V[C + 21] = o.g, V[C + 22] = o.b, V[C + 23] = o.a, V[C + 24] = E, V[C + 25] = S, V[C + 26] = s.r, V[C + 27] = s.g, V[C + 28] = s.b, V[C + 29] = s.a, V[C + 30] = P, V[C + 31] = I, V[C + 32] = o.r, V[C + 33] = o.g, V[C + 34] = o.b, V[C + 35] = o.a) : (V[C + 6] = y, V[C + 7] = A, V[C + 8] = w, V[C + 9] = x, V[C + 10] = s.r, V[C + 11] = s.g, V[C + 12] = s.b, V[C + 13] = s.a, V[C + 14] = k, V[C + 15] = T, V[C + 16] = E, V[C + 17] = S, V[C + 18] = s.r, V[C + 19] = s.g, V[C + 20] = s.b, V[C + 21] = s.a, V[C + 22] = P, V[C + 23] = I), C = f.length, (q = e.Utils.setArraySize(f, C + 3))[C] = v, q[C + 1] = v + 1, q[C + 2] = v + 2, v += 3;
                                        continue e
                                    }
                                    var O = h.length;
                                    if (0 != O) {
                                        for (var R = x - S, D = E - w, F = b - E, B = S - g, N = 1 / (R * F + D * (g - S)), L = O >> 1, U = this.clipOutput, V = e.Utils.setArraySize(l, C + L * p), X = 0; X < O; X += 2) {
                                            var j = U[X],
                                                G = U[X + 1];
                                            V[C] = j, V[C + 1] = G, V[C + 2] = s.r, V[C + 3] = s.g, V[C + 4] = s.b, V[C + 5] = s.a;
                                            var $ = j - E,
                                                H = G - S,
                                                W = (R * $ + D * H) * N,
                                                Y = (B * $ + F * H) * N,
                                                z = 1 - W - Y;
                                            V[C + 6] = y * W + k * Y + P * z, V[C + 7] = A * W + T * Y + I * z, u && (V[C + 8] = o.r, V[C + 9] = o.g, V[C + 10] = o.b, V[C + 11] = o.a), C += p
                                        }
                                        C = f.length;
                                        var q = e.Utils.setArraySize(f, C + 3 * (L - 2));
                                        L--;
                                        for (X = 1; X < L; X++) q[C] = v, q[C + 1] = v + X, q[C + 2] = v + X + 1, C += 3;
                                        v += L + 1
                                    }
                                }
                        }, t.prototype.clip = function(e, t, i, r, n, a, s, o) {
                            var u = o,
                                h = !1,
                                l = null;
                            s.length % 4 >= 2 ? (l = o, o = this.scratch) : l = this.scratch, l.length = 0, l.push(e), l.push(t), l.push(i), l.push(r), l.push(n), l.push(a), l.push(e), l.push(t), o.length = 0;
                            for (var f = s, c = s.length - 4, d = 0;; d += 2) {
                                for (var p = f[d], v = f[d + 1], m = f[d + 2], _ = f[d + 3], b = p - m, g = v - _, y = l, A = l.length - 2, w = o.length, x = 0; x < A; x += 2) {
                                    var k = y[x],
                                        T = y[x + 1],
                                        E = y[x + 2],
                                        S = y[x + 3],
                                        P = b * (S - _) - g * (E - m) > 0;
                                    if (b * (T - _) - g * (k - m) > 0) {
                                        if (P) {
                                            o.push(E), o.push(S);
                                            continue
                                        }
                                        var I = ((C = E - k) * (v - T) - (M = S - T) * (p - k)) / (M * (m - p) - C * (_ - v));
                                        o.push(p + (m - p) * I), o.push(v + (_ - v) * I)
                                    } else if (P) {
                                        var M, C;
                                        I = ((C = E - k) * (v - T) - (M = S - T) * (p - k)) / (M * (m - p) - C * (_ - v));
                                        o.push(p + (m - p) * I), o.push(v + (_ - v) * I), o.push(E), o.push(S)
                                    }
                                    h = !0
                                }
                                if (w == o.length) return u.length = 0, !0;
                                if (o.push(o[0]), o.push(o[1]), d == c) break;
                                var O = o;
                                (o = l).length = 0, l = O
                            }
                            if (u != o) {
                                u.length = 0;
                                d = 0;
                                for (var R = o.length - 2; d < R; d++) u[d] = o[d]
                            } else u.length = u.length - 2;
                            return h
                        }, t.makeClockwise = function(e) {
                            for (var t = e, i = e.length, r = t[i - 2] * t[1] - t[0] * t[i - 1], n = 0, a = 0, s = 0, o = 0, u = i - 3; o < u; o += 2) n = t[o], a = t[o + 1], s = t[o + 2], r += n * t[o + 3] - s * a;
                            if (!(r < 0)) {
                                o = 0;
                                var h = i - 2;
                                for (u = i >> 1; o < u; o += 2) {
                                    var l = t[o],
                                        f = t[o + 1],
                                        c = h - o;
                                    t[o] = t[c], t[o + 1] = t[c + 1], t[c] = l, t[c + 1] = f
                                }
                            }
                        }, t
                    }();
                    e.SkeletonClipping = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function e() {
                            this.bones = new Array, this.slots = new Array, this.skins = new Array, this.events = new Array, this.animations = new Array, this.ikConstraints = new Array, this.transformConstraints = new Array, this.pathConstraints = new Array, this.fps = 0
                        }
                        return e.prototype.findBone = function(e) {
                            if (null == e) throw new Error("boneName cannot be null.");
                            for (var t = this.bones, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findBoneIndex = function(e) {
                            if (null == e) throw new Error("boneName cannot be null.");
                            for (var t = this.bones, i = 0, r = t.length; i < r; i++)
                                if (t[i].name == e) return i;
                            return -1
                        }, e.prototype.findSlot = function(e) {
                            if (null == e) throw new Error("slotName cannot be null.");
                            for (var t = this.slots, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findSlotIndex = function(e) {
                            if (null == e) throw new Error("slotName cannot be null.");
                            for (var t = this.slots, i = 0, r = t.length; i < r; i++)
                                if (t[i].name == e) return i;
                            return -1
                        }, e.prototype.findSkin = function(e) {
                            if (null == e) throw new Error("skinName cannot be null.");
                            for (var t = this.skins, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findEvent = function(e) {
                            if (null == e) throw new Error("eventDataName cannot be null.");
                            for (var t = this.events, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findAnimation = function(e) {
                            if (null == e) throw new Error("animationName cannot be null.");
                            for (var t = this.animations, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findIkConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.ikConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findTransformConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.transformConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findPathConstraint = function(e) {
                            if (null == e) throw new Error("constraintName cannot be null.");
                            for (var t = this.pathConstraints, i = 0, r = t.length; i < r; i++) {
                                var n = t[i];
                                if (n.name == e) return n
                            }
                            return null
                        }, e.prototype.findPathConstraintIndex = function(e) {
                            if (null == e) throw new Error("pathConstraintName cannot be null.");
                            for (var t = this.pathConstraints, i = 0, r = t.length; i < r; i++)
                                if (t[i].name == e) return i;
                            return -1
                        }, e
                    }();
                    e.SkeletonData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    e.FAIL_ON_NON_EXISTING_SKIN = !1;
                    var t = function() {
                        function t(e) {
                            this.scale = 1, this.linkedMeshes = new Array, this.attachmentLoader = e
                        }
                        return t.prototype.readSkeletonData = function(i) {
                            var r = this.scale,
                                n = new e.SkeletonData,
                                a = "string" == typeof i ? JSON.parse(i) : i,
                                s = a.skeleton;
                            if (null != s) {
                                if (n.hash = s.hash, n.version = s.spine, "3.8" !== n.version.substr(0, 3)) s.spine;
                                if ("3.8.75" === n.version);
                                n.x = s.x, n.y = s.y, n.width = s.width, n.height = s.height, n.fps = s.fps, n.imagesPath = s.images
                            }
                            if (a.bones)
                                for (var o = 0; o < a.bones.length; o++) {
                                    var u = a.bones[o],
                                        h = null,
                                        l = this.getValue(u, "parent", null);
                                    if (null != l && null == (h = n.findBone(l))) throw new Error("Parent bone not found: " + l);
                                    (p = new e.BoneData(n.bones.length, u.name, h)).length = this.getValue(u, "length", 0) * r, p.x = this.getValue(u, "x", 0) * r, p.y = this.getValue(u, "y", 0) * r, p.rotation = this.getValue(u, "rotation", 0), p.scaleX = this.getValue(u, "scaleX", 1), p.scaleY = this.getValue(u, "scaleY", 1), p.shearX = this.getValue(u, "shearX", 0), p.shearY = this.getValue(u, "shearY", 0), p.transformMode = t.transformModeFromString(this.getValue(u, "transform", "normal")), p.skinRequired = this.getValue(u, "skin", !1), n.bones.push(p)
                                }
                            if (a.slots)
                                for (o = 0; o < a.slots.length; o++) {
                                    var f = (E = a.slots[o]).name,
                                        c = E.bone,
                                        d = n.findBone(c);
                                    if (null == d) throw new Error("Slot bone not found: " + c);
                                    var p = new e.SlotData(n.slots.length, f, d),
                                        v = this.getValue(E, "color", null);
                                    null != v && p.color.setFromString(v);
                                    var m = this.getValue(E, "dark", null);
                                    null != m && (p.darkColor = new e.Color(1, 1, 1, 1), p.darkColor.setFromString(m)), p.attachmentName = this.getValue(E, "attachment", null), p.blendMode = t.blendModeFromString(this.getValue(E, "blend", "normal")), n.slots.push(p)
                                }
                            if (a.ik)
                                for (o = 0; o < a.ik.length; o++) {
                                    var _ = a.ik[o];
                                    (p = new e.IkConstraintData(_.name)).order = this.getValue(_, "order", 0), p.skinRequired = this.getValue(_, "skin", !1);
                                    for (var b = 0; b < _.bones.length; b++) {
                                        c = _.bones[b];
                                        if (null == (x = n.findBone(c))) throw new Error("IK bone not found: " + c);
                                        p.bones.push(x)
                                    }
                                    var g = _.target;
                                    if (p.target = n.findBone(g), null == p.target) throw new Error("IK target bone not found: " + g);
                                    p.mix = this.getValue(_, "mix", 1), p.softness = this.getValue(_, "softness", 0) * r, p.bendDirection = this.getValue(_, "bendPositive", !0) ? 1 : -1, p.compress = this.getValue(_, "compress", !1), p.stretch = this.getValue(_, "stretch", !1), p.uniform = this.getValue(_, "uniform", !1), n.ikConstraints.push(p)
                                }
                            if (a.transform)
                                for (o = 0; o < a.transform.length; o++) {
                                    _ = a.transform[o];
                                    (p = new e.TransformConstraintData(_.name)).order = this.getValue(_, "order", 0), p.skinRequired = this.getValue(_, "skin", !1);
                                    for (b = 0; b < _.bones.length; b++) {
                                        c = _.bones[b];
                                        if (null == (x = n.findBone(c))) throw new Error("Transform constraint bone not found: " + c);
                                        p.bones.push(x)
                                    }
                                    g = _.target;
                                    if (p.target = n.findBone(g), null == p.target) throw new Error("Transform constraint target bone not found: " + g);
                                    p.local = this.getValue(_, "local", !1), p.relative = this.getValue(_, "relative", !1), p.offsetRotation = this.getValue(_, "rotation", 0), p.offsetX = this.getValue(_, "x", 0) * r, p.offsetY = this.getValue(_, "y", 0) * r, p.offsetScaleX = this.getValue(_, "scaleX", 0), p.offsetScaleY = this.getValue(_, "scaleY", 0), p.offsetShearY = this.getValue(_, "shearY", 0), p.rotateMix = this.getValue(_, "rotateMix", 1), p.translateMix = this.getValue(_, "translateMix", 1), p.scaleMix = this.getValue(_, "scaleMix", 1), p.shearMix = this.getValue(_, "shearMix", 1), n.transformConstraints.push(p)
                                }
                            if (a.path)
                                for (o = 0; o < a.path.length; o++) {
                                    _ = a.path[o];
                                    (p = new e.PathConstraintData(_.name)).order = this.getValue(_, "order", 0), p.skinRequired = this.getValue(_, "skin", !1);
                                    for (b = 0; b < _.bones.length; b++) {
                                        c = _.bones[b];
                                        if (null == (x = n.findBone(c))) throw new Error("Transform constraint bone not found: " + c);
                                        p.bones.push(x)
                                    }
                                    g = _.target;
                                    if (p.target = n.findSlot(g), null == p.target) throw new Error("Path target slot not found: " + g);
                                    p.positionMode = t.positionModeFromString(this.getValue(_, "positionMode", "percent")), p.spacingMode = t.spacingModeFromString(this.getValue(_, "spacingMode", "length")), p.rotateMode = t.rotateModeFromString(this.getValue(_, "rotateMode", "tangent")), p.offsetRotation = this.getValue(_, "rotation", 0), p.position = this.getValue(_, "position", 0), p.positionMode == e.PositionMode.Fixed && (p.position *= r), p.spacing = this.getValue(_, "spacing", 0), p.spacingMode != e.SpacingMode.Length && p.spacingMode != e.SpacingMode.Fixed || (p.spacing *= r), p.rotateMix = this.getValue(_, "rotateMix", 1), p.translateMix = this.getValue(_, "translateMix", 1), n.pathConstraints.push(p)
                                }
                            if (a.skins)
                                for (o = 0; o < a.skins.length; o++) {
                                    var y = a.skins[o],
                                        A = new e.Skin(y.name);
                                    if (y.bones)
                                        for (var w = 0; w < y.bones.length; w++) {
                                            var x;
                                            if (null == (x = n.findBone(y.bones[w]))) throw new Error("Skin bone not found: " + y.bones[o]);
                                            A.bones.push(x)
                                        }
                                    if (y.ik)
                                        for (w = 0; w < y.ik.length; w++) {
                                            if (null == (k = n.findIkConstraint(y.ik[w]))) throw new Error("Skin IK constraint not found: " + y.ik[o]);
                                            A.constraints.push(k)
                                        }
                                    if (y.transform)
                                        for (w = 0; w < y.transform.length; w++) {
                                            if (null == (k = n.findTransformConstraint(y.transform[w]))) throw new Error("Skin transform constraint not found: " + y.transform[o]);
                                            A.constraints.push(k)
                                        }
                                    if (y.path)
                                        for (w = 0; w < y.path.length; w++) {
                                            var k;
                                            if (null == (k = n.findPathConstraint(y.path[w]))) throw new Error("Skin path constraint not found: " + y.path[o]);
                                            A.constraints.push(k)
                                        }
                                    for (var f in y.attachments) {
                                        var T = n.findSlot(f);
                                        if (null == T) throw new Error("Slot not found: " + f);
                                        var E = y.attachments[f];
                                        for (var S in E) {
                                            var P = this.readAttachment(E[S], A, T.index, S, n);
                                            null != P && A.setAttachment(T.index, S, P)
                                        }
                                    }
                                    n.skins.push(A), "default" == A.name && (n.defaultSkin = A)
                                }
                            o = 0;
                            for (var I = this.linkedMeshes.length; o < I; o++) {
                                var M = this.linkedMeshes[o];
                                if (null == (A = null == M.skin ? n.defaultSkin : n.findSkin(M.skin))) throw new Error("Skin not found: " + M.skin);
                                var C = A.getAttachment(M.slotIndex, M.parent);
                                if (null == C) throw new Error("Parent mesh not found: " + M.parent);
                                M.mesh.deformAttachment = M.inheritDeform ? C : M.mesh, M.mesh.setParentMesh(C)
                            }
                            if (this.linkedMeshes.length = 0, a.events)
                                for (var O in a.events) {
                                    var R = a.events[O];
                                    (p = new e.EventData(O)).intValue = this.getValue(R, "int", 0), p.floatValue = this.getValue(R, "float", 0), p.stringValue = this.getValue(R, "string", ""), p.audioPath = this.getValue(R, "audio", null), null != p.audioPath && (p.volume = this.getValue(R, "volume", 1), p.balance = this.getValue(R, "balance", 0)), n.events.push(p)
                                }
                            if (a.animations)
                                for (var D in a.animations) {
                                    var F = a.animations[D];
                                    this.readAnimation(F, D, n)
                                }
                            return n
                        }, t.prototype.readAttachment = function(t, r, n, a, s) {
                            var o = this.scale;
                            switch (a = this.getValue(t, "name", a), this.getValue(t, "type", "region")) {
                                case "region":
                                    var u = this.getValue(t, "path", a),
                                        h = this.attachmentLoader.newRegionAttachment(r, a, u);
                                    return null == h ? null : (h.path = u, h.x = this.getValue(t, "x", 0) * o, h.y = this.getValue(t, "y", 0) * o, h.scaleX = this.getValue(t, "scaleX", 1), h.scaleY = this.getValue(t, "scaleY", 1), h.rotation = this.getValue(t, "rotation", 0), h.width = t.width * o, h.height = t.height * o, null != (A = this.getValue(t, "color", null)) && h.color.setFromString(A), h);
                                case "boundingbox":
                                    var l = this.attachmentLoader.newBoundingBoxAttachment(r, a);
                                    return null == l ? null : (this.readVertices(t, l, t.vertexCount << 1), null != (A = this.getValue(t, "color", null)) && l.color.setFromString(A), l);
                                case "mesh":
                                case "linkedmesh":
                                    u = this.getValue(t, "path", a);
                                    var f = this.attachmentLoader.newMeshAttachment(r, a, u);
                                    if (null == f) return null;
                                    f.path = u, null != (A = this.getValue(t, "color", null)) && f.color.setFromString(A), f.width = this.getValue(t, "width", 0) * o, f.height = this.getValue(t, "height", 0) * o;
                                    var c = this.getValue(t, "parent", null);
                                    if (null != c) return this.linkedMeshes.push(new i(f, this.getValue(t, "skin", null), n, c, this.getValue(t, "deform", !0))), f;
                                    var d = t.uvs;
                                    return this.readVertices(t, f, d.length), f.triangles = t.triangles, f.regionUVs = new Float32Array(d), f.edges = this.getValue(t, "edges", null), f.hullLength = 2 * this.getValue(t, "hull", 0), f;
                                case "path":
                                    if (null == (u = this.attachmentLoader.newPathAttachment(r, a))) return null;
                                    u.closed = this.getValue(t, "closed", !1), u.constantSpeed = this.getValue(t, "constantSpeed", !0);
                                    var p = t.vertexCount;
                                    this.readVertices(t, u, p << 1);
                                    for (var v = e.Utils.newArray(p / 3, 0), m = 0; m < t.lengths.length; m++) v[m] = t.lengths[m] * o;
                                    return u.lengths = v, null != (A = this.getValue(t, "color", null)) && u.color.setFromString(A), u;
                                case "point":
                                    var _ = this.attachmentLoader.newPointAttachment(r, a);
                                    return null == _ ? null : (_.x = this.getValue(t, "x", 0) * o, _.y = this.getValue(t, "y", 0) * o, _.rotation = this.getValue(t, "rotation", 0), null != (A = this.getValue(t, "color", null)) && _.color.setFromString(A), _);
                                case "clipping":
                                    var b = this.attachmentLoader.newClippingAttachment(r, a);
                                    if (null == b) return null;
                                    var g = this.getValue(t, "end", null);
                                    if (null != g) {
                                        var y = s.findSlot(g);
                                        if (null == y) throw new Error("Clipping end slot not found: " + g);
                                        b.endSlot = y
                                    }
                                    var A;
                                    p = t.vertexCount;
                                    return this.readVertices(t, b, p << 1), null != (A = this.getValue(t, "color", null)) && b.color.setFromString(A), b
                            }
                            return null
                        }, t.prototype.readVertices = function(t, i, r) {
                            var n = this.scale;
                            i.worldVerticesLength = r;
                            var a = t.vertices;
                            if (r != a.length) {
                                var s = new Array,
                                    o = new Array;
                                for (f = 0, c = a.length; f < c;) {
                                    var u = a[f++];
                                    o.push(u);
                                    for (var h = f + 4 * u; f < h; f += 4) o.push(a[f]), s.push(a[f + 1] * n), s.push(a[f + 2] * n), s.push(a[f + 3])
                                }
                                i.bones = o, i.vertices = e.Utils.toFloatArray(s)
                            } else {
                                var l = e.Utils.toFloatArray(a);
                                if (1 != n)
                                    for (var f = 0, c = a.length; f < c; f++) l[f] *= n;
                                i.vertices = l
                            }
                        }, t.prototype.readAnimation = function(t, i, r) {
                            var n = this.scale,
                                a = new Array,
                                s = 0;
                            if (t.slots)
                                for (var o in t.slots) {
                                    var u = t.slots[o];
                                    if (-1 == (J = r.findSlotIndex(o))) throw new Error("Slot not found: " + o);
                                    for (var h in u) {
                                        var l = u[h];
                                        if ("attachment" == h) {
                                            (y = new e.AttachmentTimeline(l.length)).slotIndex = J;
                                            for (var f = 0, c = 0; c < l.length; c++) {
                                                var d = l[c];
                                                y.setFrame(f++, this.getValue(d, "time", 0), d.name)
                                            }
                                            a.push(y), s = Math.max(s, y.frames[y.getFrameCount() - 1])
                                        } else if ("color" == h) {
                                            (y = new e.ColorTimeline(l.length)).slotIndex = J;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                var p = new e.Color;
                                                p.setFromString(d.color || "ffffffff"), y.setFrame(f, this.getValue(d, "time", 0), p.r, p.g, p.b, p.a), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.ColorTimeline.ENTRIES])
                                        } else {
                                            if ("twoColor" != h) throw new Error("Invalid timeline type for a slot: " + h + " (" + o + ")");
                                            (y = new e.TwoColorTimeline(l.length)).slotIndex = J;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                var v = new e.Color,
                                                    m = new e.Color;
                                                v.setFromString(d.light), m.setFromString(d.dark), y.setFrame(f, this.getValue(d, "time", 0), v.r, v.g, v.b, v.a, m.r, m.g, m.b), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.TwoColorTimeline.ENTRIES])
                                        }
                                    }
                                }
                            if (t.bones)
                                for (var _ in t.bones) {
                                    var b = t.bones[_],
                                        g = r.findBoneIndex(_);
                                    if (-1 == g) throw new Error("Bone not found: " + _);
                                    for (var h in b) {
                                        l = b[h];
                                        if ("rotate" === h) {
                                            (y = new e.RotateTimeline(l.length)).boneIndex = g;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                y.setFrame(f, this.getValue(d, "time", 0), this.getValue(d, "angle", 0)), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.RotateTimeline.ENTRIES])
                                        } else {
                                            if ("translate" !== h && "scale" !== h && "shear" !== h) throw new Error("Invalid timeline type for a bone: " + h + " (" + _ + ")");
                                            var y = null,
                                                A = 1,
                                                w = 0;
                                            "scale" === h ? (y = new e.ScaleTimeline(l.length), w = 1) : "shear" === h ? y = new e.ShearTimeline(l.length) : (y = new e.TranslateTimeline(l.length), A = n), y.boneIndex = g;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                var x = this.getValue(d, "x", w),
                                                    k = this.getValue(d, "y", w);
                                                y.setFrame(f, this.getValue(d, "time", 0), x * A, k * A), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.TranslateTimeline.ENTRIES])
                                        }
                                    }
                                }
                            if (t.ik)
                                for (var T in t.ik) {
                                    var E = t.ik[T],
                                        S = r.findIkConstraint(T);
                                    (y = new e.IkConstraintTimeline(E.length)).ikConstraintIndex = r.ikConstraints.indexOf(S);
                                    for (f = 0, c = 0; c < E.length; c++) {
                                        d = E[c];
                                        y.setFrame(f, this.getValue(d, "time", 0), this.getValue(d, "mix", 1), this.getValue(d, "softness", 0) * n, this.getValue(d, "bendPositive", !0) ? 1 : -1, this.getValue(d, "compress", !1), this.getValue(d, "stretch", !1)), this.readCurve(d, y, f), f++
                                    }
                                    a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.IkConstraintTimeline.ENTRIES])
                                }
                            if (t.transform)
                                for (var T in t.transform) {
                                    E = t.transform[T], S = r.findTransformConstraint(T);
                                    (y = new e.TransformConstraintTimeline(E.length)).transformConstraintIndex = r.transformConstraints.indexOf(S);
                                    for (f = 0, c = 0; c < E.length; c++) {
                                        d = E[c];
                                        y.setFrame(f, this.getValue(d, "time", 0), this.getValue(d, "rotateMix", 1), this.getValue(d, "translateMix", 1), this.getValue(d, "scaleMix", 1), this.getValue(d, "shearMix", 1)), this.readCurve(d, y, f), f++
                                    }
                                    a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.TransformConstraintTimeline.ENTRIES])
                                }
                            if (t.path)
                                for (var T in t.path) {
                                    E = t.path[T];
                                    var P = r.findPathConstraintIndex(T);
                                    if (-1 == P) throw new Error("Path constraint not found: " + T);
                                    var I = r.pathConstraints[P];
                                    for (var h in E) {
                                        l = E[h];
                                        if ("position" === h || "spacing" === h) {
                                            y = null, A = 1;
                                            "spacing" === h ? (y = new e.PathConstraintSpacingTimeline(l.length), I.spacingMode != e.SpacingMode.Length && I.spacingMode != e.SpacingMode.Fixed || (A = n)) : (y = new e.PathConstraintPositionTimeline(l.length), I.positionMode == e.PositionMode.Fixed && (A = n)), y.pathConstraintIndex = P;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                y.setFrame(f, this.getValue(d, "time", 0), this.getValue(d, h, 0) * A), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.PathConstraintPositionTimeline.ENTRIES])
                                        } else if ("mix" === h) {
                                            (y = new e.PathConstraintMixTimeline(l.length)).pathConstraintIndex = P;
                                            for (f = 0, c = 0; c < l.length; c++) {
                                                d = l[c];
                                                y.setFrame(f, this.getValue(d, "time", 0), this.getValue(d, "rotateMix", 1), this.getValue(d, "translateMix", 1)), this.readCurve(d, y, f), f++
                                            }
                                            a.push(y), s = Math.max(s, y.frames[(y.getFrameCount() - 1) * e.PathConstraintMixTimeline.ENTRIES])
                                        }
                                    }
                                }
                            if (t.deform)
                                for (var M in t.deform) {
                                    var C = t.deform[M],
                                        O = r.findSkin(M);
                                    if (null != O)
                                        for (var o in C) {
                                            u = C[o];
                                            if (-1 == (J = r.findSlotIndex(o))) throw new Error("Slot not found: " + u.name);
                                            for (var h in u) {
                                                l = u[h];
                                                var R = O.getAttachment(J, h);
                                                if (null == R) throw new Error("Deform attachment not found: " + l.name);
                                                var D = null != R.bones,
                                                    F = R.vertices,
                                                    B = D ? F.length / 3 * 2 : F.length;
                                                (y = new e.DeformTimeline(l.length)).slotIndex = J, y.attachment = R;
                                                f = 0;
                                                for (var N = 0; N < l.length; N++) {
                                                    d = l[N];
                                                    var L = void 0,
                                                        U = this.getValue(d, "vertices", null);
                                                    if (null == U) L = D ? e.Utils.newFloatArray(B) : F;
                                                    else {
                                                        L = e.Utils.newFloatArray(B);
                                                        var V = this.getValue(d, "offset", 0);
                                                        if (e.Utils.arrayCopy(U, 0, L, V, U.length), 1 != n)
                                                            for (var X = (c = V) + U.length; c < X; c++) L[c] *= n;
                                                        if (!D)
                                                            for (c = 0; c < B; c++) L[c] += F[c]
                                                    }
                                                    y.setFrame(f, this.getValue(d, "time", 0), L), this.readCurve(d, y, f), f++
                                                }
                                                a.push(y), s = Math.max(s, y.frames[y.getFrameCount() - 1])
                                            }
                                        } else if (e.FAIL_ON_NON_EXISTING_SKIN) throw new Error("Skin not found: " + M)
                                }
                            var j = t.drawOrder;
                            if (null == j && (j = t.draworder), null != j) {
                                y = new e.DrawOrderTimeline(j.length);
                                var G = r.slots.length;
                                for (f = 0, N = 0; N < j.length; N++) {
                                    var $ = j[N],
                                        H = null,
                                        W = this.getValue($, "offsets", null);
                                    if (null != W) {
                                        H = e.Utils.newArray(G, -1);
                                        var Y = e.Utils.newArray(G - W.length, 0),
                                            z = 0,
                                            q = 0;
                                        for (c = 0; c < W.length; c++) {
                                            var J, Q = W[c];
                                            if (-1 == (J = r.findSlotIndex(Q.slot))) throw new Error("Slot not found: " + Q.slot);
                                            for (; z != J;) Y[q++] = z++;
                                            H[z + Q.offset] = z++
                                        }
                                        for (; z < G;) Y[q++] = z++;
                                        for (c = G - 1; c >= 0; c--) - 1 == H[c] && (H[c] = Y[--q])
                                    }
                                    y.setFrame(f++, this.getValue($, "time", 0), H)
                                }
                                a.push(y), s = Math.max(s, y.frames[y.getFrameCount() - 1])
                            }
                            if (t.events) {
                                for (y = new e.EventTimeline(t.events.length), f = 0, c = 0; c < t.events.length; c++) {
                                    var Z = t.events[c],
                                        K = r.findEvent(Z.name);
                                    if (null == K) throw new Error("Event not found: " + Z.name);
                                    var ee = new e.Event(e.Utils.toSinglePrecision(this.getValue(Z, "time", 0)), K);
                                    ee.intValue = this.getValue(Z, "int", K.intValue), ee.floatValue = this.getValue(Z, "float", K.floatValue), ee.stringValue = this.getValue(Z, "string", K.stringValue), null != ee.data.audioPath && (ee.volume = this.getValue(Z, "volume", 1), ee.balance = this.getValue(Z, "balance", 0)), y.setFrame(f++, ee)
                                }
                                a.push(y), s = Math.max(s, y.frames[y.getFrameCount() - 1])
                            }
                            if (isNaN(s)) throw new Error("Error while parsing animation, duration is NaN");
                            r.animations.push(new e.Animation(i, a, s))
                        }, t.prototype.readCurve = function(e, t, i) {
                            if (e.hasOwnProperty("curve"))
                                if ("stepped" === e.curve) t.setStepped(i);
                                else {
                                    var r = e.curve;
                                    t.setCurve(i, r, this.getValue(e, "c2", 0), this.getValue(e, "c3", 1), this.getValue(e, "c4", 1))
                                }
                        }, t.prototype.getValue = function(e, t, i) {
                            return void 0 !== e[t] ? e[t] : i
                        }, t.blendModeFromString = function(t) {
                            if ("normal" == (t = t.toLowerCase())) return e.BlendMode.Normal;
                            if ("additive" == t) return e.BlendMode.Additive;
                            if ("multiply" == t) return e.BlendMode.Multiply;
                            if ("screen" == t) return e.BlendMode.Screen;
                            throw new Error("Unknown blend mode: " + t)
                        }, t.positionModeFromString = function(t) {
                            if ("fixed" == (t = t.toLowerCase())) return e.PositionMode.Fixed;
                            if ("percent" == t) return e.PositionMode.Percent;
                            throw new Error("Unknown position mode: " + t)
                        }, t.spacingModeFromString = function(t) {
                            if ("length" == (t = t.toLowerCase())) return e.SpacingMode.Length;
                            if ("fixed" == t) return e.SpacingMode.Fixed;
                            if ("percent" == t) return e.SpacingMode.Percent;
                            throw new Error("Unknown position mode: " + t)
                        }, t.rotateModeFromString = function(t) {
                            if ("tangent" == (t = t.toLowerCase())) return e.RotateMode.Tangent;
                            if ("chain" == t) return e.RotateMode.Chain;
                            if ("chainscale" == t) return e.RotateMode.ChainScale;
                            throw new Error("Unknown rotate mode: " + t)
                        }, t.transformModeFromString = function(t) {
                            if ("normal" == (t = t.toLowerCase())) return e.TransformMode.Normal;
                            if ("onlytranslation" == t) return e.TransformMode.OnlyTranslation;
                            if ("norotationorreflection" == t) return e.TransformMode.NoRotationOrReflection;
                            if ("noscale" == t) return e.TransformMode.NoScale;
                            if ("noscaleorreflection" == t) return e.TransformMode.NoScaleOrReflection;
                            throw new Error("Unknown transform mode: " + t)
                        }, t
                    }();
                    e.SkeletonJson = t;
                    var i = function(e, t, i, r, n) {
                        this.mesh = e, this.skin = t, this.slotIndex = i, this.parent = r, this.inheritDeform = n
                    }
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e, t, i) {
                        this.slotIndex = e, this.name = t, this.attachment = i
                    };
                    e.SkinEntry = t;
                    var i = function() {
                        function i(e) {
                            if (this.attachments = new Array, this.bones = Array(), this.constraints = new Array, null == e) throw new Error("name cannot be null.");
                            this.name = e
                        }
                        return i.prototype.setAttachment = function(e, t, i) {
                            if (null == i) throw new Error("attachment cannot be null.");
                            var r = this.attachments;
                            e >= r.length && (r.length = e + 1), r[e] || (r[e] = {}), r[e][t] = i
                        }, i.prototype.addSkin = function(e) {
                            for (var t = 0; t < e.bones.length; t++) {
                                for (var i = e.bones[t], r = !1, n = 0; n < this.bones.length; n++)
                                    if (this.bones[n] == i) {
                                        r = !0;
                                        break
                                    }
                                r || this.bones.push(i)
                            }
                            for (t = 0; t < e.constraints.length; t++) {
                                var a = e.constraints[t];
                                for (r = !1, n = 0; n < this.constraints.length; n++)
                                    if (this.constraints[n] == a) {
                                        r = !0;
                                        break
                                    }
                                r || this.constraints.push(a)
                            }
                            var s = e.getAttachments();
                            for (t = 0; t < s.length; t++) {
                                var o = s[t];
                                this.setAttachment(o.slotIndex, o.name, o.attachment)
                            }
                        }, i.prototype.copySkin = function(t) {
                            for (var i = 0; i < t.bones.length; i++) {
                                for (var r = t.bones[i], n = !1, a = 0; a < this.bones.length; a++)
                                    if (this.bones[a] == r) {
                                        n = !0;
                                        break
                                    }
                                n || this.bones.push(r)
                            }
                            for (i = 0; i < t.constraints.length; i++) {
                                var s = t.constraints[i];
                                for (n = !1, a = 0; a < this.constraints.length; a++)
                                    if (this.constraints[a] == s) {
                                        n = !0;
                                        break
                                    }
                                n || this.constraints.push(s)
                            }
                            var o = t.getAttachments();
                            for (i = 0; i < o.length; i++) {
                                var u = o[i];
                                null != u.attachment && (u.attachment instanceof e.MeshAttachment ? (u.attachment = u.attachment.newLinkedMesh(), this.setAttachment(u.slotIndex, u.name, u.attachment)) : (u.attachment = u.attachment.copy(), this.setAttachment(u.slotIndex, u.name, u.attachment)))
                            }
                        }, i.prototype.getAttachment = function(e, t) {
                            var i = this.attachments[e];
                            return i ? i[t] : null
                        }, i.prototype.removeAttachment = function(e, t) {
                            var i = this.attachments[e];
                            i && (i[t] = null)
                        }, i.prototype.getAttachments = function() {
                            for (var e = new Array, i = 0; i < this.attachments.length; i++) {
                                var r = this.attachments[i];
                                if (r)
                                    for (var n in r) {
                                        var a = r[n];
                                        a && e.push(new t(i, n, a))
                                    }
                            }
                            return e
                        }, i.prototype.getAttachmentsForSlot = function(e, i) {
                            var r = this.attachments[e];
                            if (r)
                                for (var n in r) {
                                    var a = r[n];
                                    a && i.push(new t(e, n, a))
                                }
                        }, i.prototype.clear = function() {
                            this.attachments.length = 0, this.bones.length = 0, this.constraints.length = 0
                        }, i.prototype.attachAll = function(e, t) {
                            for (var i = 0, r = 0; r < e.slots.length; r++) {
                                var n = e.slots[r],
                                    a = n.getAttachment();
                                if (a && i < t.attachments.length) {
                                    var s = t.attachments[i];
                                    for (var o in s) {
                                        if (a == s[o]) {
                                            var u = this.getAttachment(i, o);
                                            null != u && n.setAttachment(u);
                                            break
                                        }
                                    }
                                }
                                i++
                            }
                        }, i
                    }();
                    e.Skin = i
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(t, i) {
                            if (this.deform = new Array, null == t) throw new Error("data cannot be null.");
                            if (null == i) throw new Error("bone cannot be null.");
                            this.data = t, this.bone = i, this.color = new e.Color, this.darkColor = null == t.darkColor ? null : new e.Color, this.setToSetupPose(), this.blendMode = this.data.blendMode
                        }
                        return t.prototype.getAttachment = function() {
                            return this.attachment
                        }, t.prototype.setAttachment = function(e) {
                            this.attachment != e && (this.attachment = e, this.attachmentTime = this.bone.skeleton.time, this.deform.length = 0)
                        }, t.prototype.setAttachmentTime = function(e) {
                            this.attachmentTime = this.bone.skeleton.time - e
                        }, t.prototype.getAttachmentTime = function() {
                            return this.bone.skeleton.time - this.attachmentTime
                        }, t.prototype.setToSetupPose = function() {
                            this.color.setFromColor(this.data.color), null != this.darkColor && this.darkColor.setFromColor(this.data.darkColor), null == this.data.attachmentName ? this.attachment = null : (this.attachment = null, this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)))
                        }, t
                    }();
                    e.Slot = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t, i, r) {
                        if (this.color = new e.Color(1, 1, 1, 1), t < 0) throw new Error("index must be >= 0.");
                        if (null == i) throw new Error("name cannot be null.");
                        if (null == r) throw new Error("boneData cannot be null.");
                        this.index = t, this.name = i, this.boneData = r
                    };
                    e.SlotData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(t) {
                ! function(t) {
                    var i, r, n = function() {
                        function e(e) {
                            this._image = e
                        }
                        return e.prototype.getImage = function() {
                            return this._image
                        }, e.filterFromString = function(e) {
                            switch (e.toLowerCase()) {
                                case "nearest":
                                    return i.Nearest;
                                case "linear":
                                    return i.Linear;
                                case "mipmap":
                                    return i.MipMap;
                                case "mipmapnearestnearest":
                                    return i.MipMapNearestNearest;
                                case "mipmaplinearnearest":
                                    return i.MipMapLinearNearest;
                                case "mipmapnearestlinear":
                                    return i.MipMapNearestLinear;
                                case "mipmaplinearlinear":
                                    return i.MipMapLinearLinear;
                                default:
                                    throw new Error("Unknown texture filter " + e)
                            }
                        }, e.wrapFromString = function(e) {
                            switch (e.toLowerCase()) {
                                case "mirroredtepeat":
                                    return r.MirroredRepeat;
                                case "clamptoedge":
                                    return r.ClampToEdge;
                                case "repeat":
                                    return r.Repeat;
                                default:
                                    throw new Error("Unknown texture wrap " + e)
                            }
                        }, e
                    }();
                    t.Texture = n,
                        function(e) {
                            e[e.Nearest = 9728] = "Nearest", e[e.Linear = 9729] = "Linear", e[e.MipMap = 9987] = "MipMap", e[e.MipMapNearestNearest = 9984] = "MipMapNearestNearest", e[e.MipMapLinearNearest = 9985] = "MipMapLinearNearest", e[e.MipMapNearestLinear = 9986] = "MipMapNearestLinear", e[e.MipMapLinearLinear = 9987] = "MipMapLinearLinear"
                        }(i = t.TextureFilter || (t.TextureFilter = {})),
                        function(e) {
                            e[e.MirroredRepeat = 33648] = "MirroredRepeat", e[e.ClampToEdge = 33071] = "ClampToEdge", e[e.Repeat = 10497] = "Repeat"
                        }(r = t.TextureWrap || (t.TextureWrap = {}));
                    var a = function() {
                        function t() {
                            this.size = null
                        }
                        return Object.defineProperty(t.prototype, "width", {
                            get: function() {
                                var t = this.texture;
                                return "3" == e.VERSION[0] ? t.crop.width : t.trim ? t.trim.width : t.orig.width
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "height", {
                            get: function() {
                                var t = this.texture;
                                return "3" == e.VERSION[0] ? t.crop.height : t.trim ? t.trim.height : t.orig.height
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "u", {
                            get: function() {
                                return this.texture._uvs.x0
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "v", {
                            get: function() {
                                return this.texture._uvs.y0
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "u2", {
                            get: function() {
                                return this.texture._uvs.x2
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "v2", {
                            get: function() {
                                return this.texture._uvs.y2
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "offsetX", {
                            get: function() {
                                var e = this.texture;
                                return e.trim ? e.trim.x : 0
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "offsetY", {
                            get: function() {
                                return this.spineOffsetY
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "pixiOffsetY", {
                            get: function() {
                                var e = this.texture;
                                return e.trim ? e.trim.y : 0
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "spineOffsetY", {
                            get: function() {
                                var e = this.texture;
                                return this.originalHeight - this.height - (e.trim ? e.trim.y : 0)
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "originalWidth", {
                            get: function() {
                                var t = this.texture;
                                return "3" == e.VERSION[0] ? t.trim ? t.trim.width : t.crop.width : t.orig.width
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "originalHeight", {
                            get: function() {
                                var t = this.texture;
                                return "3" == e.VERSION[0] ? t.trim ? t.trim.height : t.crop.height : t.orig.height
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "x", {
                            get: function() {
                                return this.texture.frame.x
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "y", {
                            get: function() {
                                return this.texture.frame.y
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(t.prototype, "rotate", {
                            get: function() {
                                return 0 !== this.texture.rotate
                            },
                            enumerable: !0,
                            configurable: !0
                        }), t
                    }();
                    t.TextureRegion = a
                }(t.core || (t.core = {}))
            }(r || (r = {})),
            function(t) {
                ! function(t) {
                    var i = function() {
                        function i(e, t, i) {
                            this.pages = new Array, this.regions = new Array, e && this.addSpineAtlas(e, t, i)
                        }
                        return i.prototype.addTexture = function(e, i) {
                            for (var r = this.pages, n = null, o = 0; o < r.length; o++)
                                if (r[o].baseTexture === i.baseTexture) {
                                    n = r[o];
                                    break
                                }
                            if (null === n) {
                                (n = new a).name = "texturePage";
                                var u = i.baseTexture;
                                n.width = u.realWidth, n.height = u.realHeight, n.baseTexture = u, n.minFilter = n.magFilter = t.TextureFilter.Nearest, n.uWrap = t.TextureWrap.ClampToEdge, n.vWrap = t.TextureWrap.ClampToEdge, r.push(n)
                            }
                            var h = new s;
                            return h.name = e, h.page = n, h.texture = i, h.index = -1, this.regions.push(h), h
                        }, i.prototype.addTextureHash = function(e, t) {
                            for (var i in e) e.hasOwnProperty(i) && this.addTexture(t && -1 !== i.indexOf(".") ? i.substr(0, i.lastIndexOf(".")) : i, e[i])
                        }, i.prototype.addSpineAtlas = function(e, t, i) {
                            return this.load(e, t, i)
                        }, i.prototype.load = function(i, n, o) {
                            var u = this;
                            if (null == n) throw new Error("textureLoader cannot be null.");
                            var h = new r(i),
                                l = new Array(4),
                                f = null,
                                c = function() {
                                    for (;;) {
                                        var i = h.readLine();
                                        if (null == i) return o && o(u);
                                        if (0 == (i = i.trim()).length) f = null;
                                        else {
                                            if (!f) {
                                                (f = new a).name = i, 2 == h.readTuple(l) && (f.width = parseInt(l[0]), f.height = parseInt(l[1]), h.readTuple(l)), h.readTuple(l), f.minFilter = t.Texture.filterFromString(l[0]), f.magFilter = t.Texture.filterFromString(l[1]);
                                                var r = h.readValue();
                                                f.uWrap = t.TextureWrap.ClampToEdge, f.vWrap = t.TextureWrap.ClampToEdge, "x" == r ? f.uWrap = t.TextureWrap.Repeat : "y" == r ? f.vWrap = t.TextureWrap.Repeat : "xy" == r && (f.uWrap = f.vWrap = t.TextureWrap.Repeat), n(i, function(e) {
                                                    if (null === e) return u.pages.splice(u.pages.indexOf(f), 1), o && o(null);
                                                    f.baseTexture = e, e.valid || e.setSize(f.width, f.height), u.pages.push(f), f.setFilters(), f.width && f.height || (f.width = e.realWidth, f.height = e.realHeight, !f.width || f.height), c()
                                                }), u.pages.push(f);
                                                break
                                            }
                                            var d = new s;
                                            d.name = i, d.page = f;
                                            var p = h.readValue(),
                                                v = 0;
                                            v = "true" == p.toLocaleLowerCase() ? 6 : "false" == p.toLocaleLowerCase() ? 0 : (720 - parseFloat(p)) % 360 / 45, h.readTuple(l);
                                            var m = parseInt(l[0]),
                                                _ = parseInt(l[1]);
                                            h.readTuple(l);
                                            var b = parseInt(l[0]),
                                                g = parseInt(l[1]),
                                                y = f.baseTexture.resolution;
                                            m /= y, _ /= y, b /= y, g /= y;
                                            var A = v % 4 != 0,
                                                w = new e.Rectangle(m, _, A ? g : b, A ? b : g);
                                            4 == h.readTuple(l) && 4 == h.readTuple(l) && h.readTuple(l);
                                            var x = parseInt(l[0]) / y,
                                                k = parseInt(l[1]) / y;
                                            h.readTuple(l);
                                            var T = parseInt(l[0]) / y,
                                                E = parseInt(l[1]) / y,
                                                S = new e.Rectangle(0, 0, x, k),
                                                P = new e.Rectangle(T, k - g - E, b, g);
                                            if ("3" != e.VERSION[0]) d.texture = new e.Texture(d.page.baseTexture, w, S, P, v);
                                            else {
                                                var I = new e.Rectangle(m, _, b, g),
                                                    M = I.clone();
                                                P.width = x, P.height = k, d.texture = new e.Texture(d.page.baseTexture, I, M, P, v)
                                            }
                                            d.index = parseInt(h.readValue()), d.texture.updateUvs(), u.regions.push(d)
                                        }
                                    }
                                };
                            c()
                        }, i.prototype.findRegion = function(e) {
                            for (var t = 0; t < this.regions.length; t++)
                                if (this.regions[t].name == e) return this.regions[t];
                            return null
                        }, i.prototype.dispose = function() {
                            for (var e = 0; e < this.pages.length; e++) this.pages[e].baseTexture.dispose()
                        }, i
                    }();
                    t.TextureAtlas = i;
                    var r = function() {
                            function e(e) {
                                this.index = 0, this.lines = e.split(/\r\n|\r|\n/)
                            }
                            return e.prototype.readLine = function() {
                                return this.index >= this.lines.length ? null : this.lines[this.index++]
                            }, e.prototype.readValue = function() {
                                var e = this.readLine(),
                                    t = e.indexOf(":");
                                if (-1 == t) throw new Error("Invalid line: " + e);
                                return e.substring(t + 1).trim()
                            }, e.prototype.readTuple = function(e) {
                                var t = this.readLine(),
                                    i = t.indexOf(":");
                                if (-1 == i) throw new Error("Invalid line: " + t);
                                for (var r = 0, n = i + 1; r < 3; r++) {
                                    var a = t.indexOf(",", n);
                                    if (-1 == a) break;
                                    e[r] = t.substr(n, a - n).trim(), n = a + 1
                                }
                                return e[r] = t.substring(n).trim(), r + 1
                            }, e
                        }(),
                        a = function() {
                            function i() {}
                            return i.prototype.setFilters = function() {
                                var i = this.baseTexture,
                                    r = this.minFilter;
                                r == t.TextureFilter.Linear ? i.scaleMode = e.SCALE_MODES.LINEAR : this.minFilter == t.TextureFilter.Nearest ? i.scaleMode = e.SCALE_MODES.NEAREST : (i.mipmap = e.MIPMAP_MODES.POW2, r == t.TextureFilter.MipMapNearestNearest ? i.scaleMode = e.SCALE_MODES.NEAREST : i.scaleMode = e.SCALE_MODES.LINEAR)
                            }, i
                        }();
                    t.TextureAtlasPage = a;
                    var s = function(e) {
                        function t() {
                            return null !== e && e.apply(this, arguments) || this
                        }
                        return n(t, e), t
                    }(t.TextureRegion);
                    t.TextureAtlasRegion = s
                }(t.core || (t.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(t, i) {
                            if (this.rotateMix = 0, this.translateMix = 0, this.scaleMix = 0, this.shearMix = 0, this.temp = new e.Vector2, this.active = !1, null == t) throw new Error("data cannot be null.");
                            if (null == i) throw new Error("skeleton cannot be null.");
                            this.data = t, this.rotateMix = t.rotateMix, this.translateMix = t.translateMix, this.scaleMix = t.scaleMix, this.shearMix = t.shearMix, this.bones = new Array;
                            for (var r = 0; r < t.bones.length; r++) this.bones.push(i.findBone(t.bones[r].name));
                            this.target = i.findBone(t.target.name)
                        }
                        return t.prototype.isActive = function() {
                            return this.active
                        }, t.prototype.apply = function() {
                            this.update()
                        }, t.prototype.update = function() {
                            this.data.local ? this.data.relative ? this.applyRelativeLocal() : this.applyAbsoluteLocal() : this.data.relative ? this.applyRelativeWorld() : this.applyAbsoluteWorld()
                        }, t.prototype.applyAbsoluteWorld = function() {
                            for (var t = this.rotateMix, i = this.translateMix, r = this.scaleMix, n = this.shearMix, a = this.target, s = a.matrix, o = s.a, u = s.c, h = s.b, l = s.d, f = o * l - u * h > 0 ? e.MathUtils.degRad : -e.MathUtils.degRad, c = this.data.offsetRotation * f, d = this.data.offsetShearY * f, p = this.bones, v = 0, m = p.length; v < m; v++) {
                                var _ = p[v],
                                    b = !1,
                                    g = _.matrix;
                                if (0 != t) {
                                    var y = g.a,
                                        A = g.c,
                                        w = g.b,
                                        x = g.d;
                                    (I = Math.atan2(h, o) - Math.atan2(w, y) + c) > e.MathUtils.PI ? I -= e.MathUtils.PI2 : I < -e.MathUtils.PI && (I += e.MathUtils.PI2), I *= t;
                                    var k = Math.cos(I),
                                        T = Math.sin(I);
                                    g.a = k * y - T * w, g.c = k * A - T * x, g.b = T * y + k * w, g.d = T * A + k * x, b = !0
                                }
                                if (0 != i) {
                                    var E = this.temp;
                                    a.localToWorld(E.set(this.data.offsetX, this.data.offsetY)), g.tx += (E.x - g.tx) * i, g.ty += (E.y - g.ty) * i, b = !0
                                }
                                if (r > 0) {
                                    var S = Math.sqrt(g.a * g.a + g.b * g.b),
                                        P = Math.sqrt(o * o + h * h);
                                    S > 1e-5 && (S = (S + (P - S + this.data.offsetScaleX) * r) / S), g.a *= S, g.b *= S, S = Math.sqrt(g.c * g.c + g.d * g.d), P = Math.sqrt(u * u + l * l), S > 1e-5 && (S = (S + (P - S + this.data.offsetScaleY) * r) / S), g.c *= S, g.d *= S, b = !0
                                }
                                if (n > 0) {
                                    A = g.c, x = g.d;
                                    var I, M = Math.atan2(x, A);
                                    (I = Math.atan2(l, u) - Math.atan2(h, o) - (M - Math.atan2(g.b, g.a))) > e.MathUtils.PI ? I -= e.MathUtils.PI2 : I < -e.MathUtils.PI && (I += e.MathUtils.PI2), I = M + (I + d) * n;
                                    S = Math.sqrt(A * A + x * x);
                                    g.c = Math.cos(I) * S, g.d = Math.sin(I) * S, b = !0
                                }
                                b && (_.appliedValid = !1)
                            }
                        }, t.prototype.applyRelativeWorld = function() {
                            for (var t = this.rotateMix, i = this.translateMix, r = this.scaleMix, n = this.shearMix, a = this.target, s = a.matrix, o = s.a, u = s.c, h = s.b, l = s.d, f = o * l - u * h > 0 ? e.MathUtils.degRad : -e.MathUtils.degRad, c = this.data.offsetRotation * f, d = this.data.offsetShearY * f, p = this.bones, v = 0, m = p.length; v < m; v++) {
                                var _ = p[v],
                                    b = !1,
                                    g = _.matrix;
                                if (0 != t) {
                                    var y = g.a,
                                        A = g.c,
                                        w = g.b,
                                        x = g.d;
                                    (P = Math.atan2(h, o) + c) > e.MathUtils.PI ? P -= e.MathUtils.PI2 : P < -e.MathUtils.PI && (P += e.MathUtils.PI2), P *= t;
                                    var k = Math.cos(P),
                                        T = Math.sin(P);
                                    g.a = k * y - T * w, g.c = k * A - T * x, g.b = T * y + k * w, g.d = T * A + k * x, b = !0
                                }
                                if (0 != i) {
                                    var E = this.temp;
                                    a.localToWorld(E.set(this.data.offsetX, this.data.offsetY)), g.tx += E.x * i, g.ty += E.y * i, b = !0
                                }
                                if (r > 0) {
                                    var S = (Math.sqrt(o * o + h * h) - 1 + this.data.offsetScaleX) * r + 1;
                                    g.a *= S, g.b *= S, S = (Math.sqrt(u * u + l * l) - 1 + this.data.offsetScaleY) * r + 1, g.c *= S, g.d *= S, b = !0
                                }
                                if (n > 0) {
                                    var P;
                                    (P = Math.atan2(l, u) - Math.atan2(h, o)) > e.MathUtils.PI ? P -= e.MathUtils.PI2 : P < -e.MathUtils.PI && (P += e.MathUtils.PI2);
                                    A = g.c, x = g.d;
                                    P = Math.atan2(x, A) + (P - e.MathUtils.PI / 2 + d) * n;
                                    S = Math.sqrt(A * A + x * x);
                                    g.c = Math.cos(P) * S, g.d = Math.sin(P) * S, b = !0
                                }
                                b && (_.appliedValid = !1)
                            }
                        }, t.prototype.applyAbsoluteLocal = function() {
                            var e = this.rotateMix,
                                t = this.translateMix,
                                i = this.scaleMix,
                                r = this.shearMix,
                                n = this.target;
                            n.appliedValid || n.updateAppliedTransform();
                            for (var a = this.bones, s = 0, o = a.length; s < o; s++) {
                                var u = a[s];
                                u.appliedValid || u.updateAppliedTransform();
                                var h = u.arotation;
                                if (0 != e) {
                                    var l = n.arotation - h + this.data.offsetRotation;
                                    h += (l -= 360 * (16384 - (16384.499999999996 - l / 360 | 0))) * e
                                }
                                var f = u.ax,
                                    c = u.ay;
                                0 != t && (f += (n.ax - f + this.data.offsetX) * t, c += (n.ay - c + this.data.offsetY) * t);
                                var d = u.ascaleX,
                                    p = u.ascaleY;
                                i > 0 && (d > 1e-5 && (d = (d + (n.ascaleX - d + this.data.offsetScaleX) * i) / d), p > 1e-5 && (p = (p + (n.ascaleY - p + this.data.offsetScaleY) * i) / p));
                                var v = u.ashearY;
                                if (r > 0) {
                                    l = n.ashearY - v + this.data.offsetShearY;
                                    l -= 360 * (16384 - (16384.499999999996 - l / 360 | 0)), u.shearY += l * r
                                }
                                u.updateWorldTransformWith(f, c, h, d, p, u.ashearX, v)
                            }
                        }, t.prototype.applyRelativeLocal = function() {
                            var e = this.rotateMix,
                                t = this.translateMix,
                                i = this.scaleMix,
                                r = this.shearMix,
                                n = this.target;
                            n.appliedValid || n.updateAppliedTransform();
                            for (var a = this.bones, s = 0, o = a.length; s < o; s++) {
                                var u = a[s];
                                u.appliedValid || u.updateAppliedTransform();
                                var h = u.arotation;
                                0 != e && (h += (n.arotation + this.data.offsetRotation) * e);
                                var l = u.ax,
                                    f = u.ay;
                                0 != t && (l += (n.ax + this.data.offsetX) * t, f += (n.ay + this.data.offsetY) * t);
                                var c = u.ascaleX,
                                    d = u.ascaleY;
                                i > 0 && (c > 1e-5 && (c *= (n.ascaleX - 1 + this.data.offsetScaleX) * i + 1), d > 1e-5 && (d *= (n.ascaleY - 1 + this.data.offsetScaleY) * i + 1));
                                var p = u.ashearY;
                                r > 0 && (p += (n.ashearY + this.data.offsetShearY) * r), u.updateWorldTransformWith(l, f, h, c, d, u.ashearX, p)
                            }
                        }, t
                    }();
                    e.TransformConstraint = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e) {
                        function t(t) {
                            var i = e.call(this, t, 0, !1) || this;
                            return i.bones = new Array, i.rotateMix = 0, i.translateMix = 0, i.scaleMix = 0, i.shearMix = 0, i.offsetRotation = 0, i.offsetX = 0, i.offsetY = 0, i.offsetScaleX = 0, i.offsetScaleY = 0, i.offsetShearY = 0, i.relative = !1, i.local = !1, i
                        }
                        return n(t, e), t
                    }(e.ConstraintData);
                    e.TransformConstraintData = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t() {
                            this.convexPolygons = new Array, this.convexPolygonsIndices = new Array, this.indicesArray = new Array, this.isConcaveArray = new Array, this.triangles = new Array, this.polygonPool = new e.Pool(function() {
                                return new Array
                            }), this.polygonIndicesPool = new e.Pool(function() {
                                return new Array
                            })
                        }
                        return t.prototype.triangulate = function(e) {
                            var i = e,
                                r = e.length >> 1,
                                n = this.indicesArray;
                            n.length = 0;
                            for (var a = 0; a < r; a++) n[a] = a;
                            var s = this.isConcaveArray;
                            s.length = 0;
                            a = 0;
                            for (var o = r; a < o; ++a) s[a] = t.isConcave(a, r, i, n);
                            var u = this.triangles;
                            for (u.length = 0; r > 3;) {
                                for (var h = r - 1, l = (a = 0, 1);;) {
                                    e: if (!s[a]) {
                                        for (var f = n[h] << 1, c = n[a] << 1, d = n[l] << 1, p = i[f], v = i[f + 1], m = i[c], _ = i[c + 1], b = i[d], g = i[d + 1], y = (l + 1) % r; y != h; y = (y + 1) % r)
                                            if (s[y]) {
                                                var A = n[y] << 1,
                                                    w = i[A],
                                                    x = i[A + 1];
                                                if (t.positiveArea(b, g, p, v, w, x) && t.positiveArea(p, v, m, _, w, x) && t.positiveArea(m, _, b, g, w, x)) break e
                                            }
                                        break
                                    }if (0 == l) {
                                        do {
                                            if (!s[a]) break;
                                            a--
                                        } while (a > 0);
                                        break
                                    }
                                    h = a,
                                    a = l,
                                    l = (l + 1) % r
                                }
                                u.push(n[(r + a - 1) % r]), u.push(n[a]), u.push(n[(a + 1) % r]), n.splice(a, 1), s.splice(a, 1);
                                var k = (--r + a - 1) % r,
                                    T = a == r ? 0 : a;
                                s[k] = t.isConcave(k, r, i, n), s[T] = t.isConcave(T, r, i, n)
                            }
                            return 3 == r && (u.push(n[2]), u.push(n[0]), u.push(n[1])), u
                        }, t.prototype.decompose = function(e, i) {
                            var r = e,
                                n = this.convexPolygons;
                            this.polygonPool.freeAll(n), n.length = 0;
                            var a = this.convexPolygonsIndices;
                            this.polygonIndicesPool.freeAll(a), a.length = 0;
                            var s = this.polygonIndicesPool.obtain();
                            s.length = 0;
                            var o = this.polygonPool.obtain();
                            o.length = 0;
                            for (var u = -1, h = 0, l = 0, f = i.length; l < f; l += 3) {
                                var c = i[l] << 1,
                                    d = i[l + 1] << 1,
                                    p = i[l + 2] << 1,
                                    v = r[c],
                                    m = r[c + 1],
                                    _ = r[d],
                                    b = r[d + 1],
                                    g = r[p],
                                    y = r[p + 1],
                                    A = !1;
                                if (u == c) {
                                    var w = o.length - 4,
                                        x = t.winding(o[w], o[w + 1], o[w + 2], o[w + 3], g, y),
                                        k = t.winding(g, y, o[0], o[1], o[2], o[3]);
                                    x == h && k == h && (o.push(g), o.push(y), s.push(p), A = !0)
                                }
                                A || (o.length > 0 ? (n.push(o), a.push(s)) : (this.polygonPool.free(o), this.polygonIndicesPool.free(s)), (o = this.polygonPool.obtain()).length = 0, o.push(v), o.push(m), o.push(_), o.push(b), o.push(g), o.push(y), (s = this.polygonIndicesPool.obtain()).length = 0, s.push(c), s.push(d), s.push(p), h = t.winding(v, m, _, b, g, y), u = c)
                            }
                            o.length > 0 && (n.push(o), a.push(s));
                            for (l = 0, f = n.length; l < f; l++)
                                if (0 != (s = a[l]).length)
                                    for (var T = s[0], E = s[s.length - 1], S = (o = n[l])[w = o.length - 4], P = o[w + 1], I = o[w + 2], M = o[w + 3], C = o[0], O = o[1], R = o[2], D = o[3], F = t.winding(S, P, I, M, C, O), B = 0; B < f; B++)
                                        if (B != l) {
                                            var N = a[B];
                                            if (3 == N.length) {
                                                var L = N[0],
                                                    U = N[1],
                                                    V = N[2],
                                                    X = n[B];
                                                g = X[X.length - 2], y = X[X.length - 1];
                                                if (L == T && U == E) {
                                                    x = t.winding(S, P, I, M, g, y), k = t.winding(g, y, C, O, R, D);
                                                    x == F && k == F && (X.length = 0, N.length = 0, o.push(g), o.push(y), s.push(V), S = I, P = M, I = g, M = y, B = 0)
                                                }
                                            }
                                        }
                            for (l = n.length - 1; l >= 0; l--) 0 == (o = n[l]).length && (n.splice(l, 1), this.polygonPool.free(o), s = a[l], a.splice(l, 1), this.polygonIndicesPool.free(s));
                            return n
                        }, t.isConcave = function(e, t, i, r) {
                            var n = r[(t + e - 1) % t] << 1,
                                a = r[e] << 1,
                                s = r[(e + 1) % t] << 1;
                            return !this.positiveArea(i[n], i[n + 1], i[a], i[a + 1], i[s], i[s + 1])
                        }, t.positiveArea = function(e, t, i, r, n, a) {
                            return e * (a - r) + i * (t - a) + n * (r - t) >= 0
                        }, t.winding = function(e, t, i, r, n, a) {
                            var s = i - e,
                                o = r - t;
                            return n * o - a * s + s * t - e * o >= 0 ? 1 : -1
                        }, t
                    }();
                    e.Triangulator = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function e() {
                            this.array = new Array
                        }
                        return e.prototype.add = function(e) {
                            var t = this.contains(e);
                            return this.array[0 | e] = 0 | e, !t
                        }, e.prototype.contains = function(e) {
                            return null != this.array[0 | e]
                        }, e.prototype.remove = function(e) {
                            this.array[0 | e] = void 0
                        }, e.prototype.clear = function() {
                            this.array.length = 0
                        }, e
                    }();
                    e.IntSet = t;
                    var i = function() {
                        function e(e, t, i, r) {
                            void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), this.r = e, this.g = t, this.b = i, this.a = r
                        }
                        return e.prototype.set = function(e, t, i, r) {
                            return this.r = e, this.g = t, this.b = i, this.a = r, this.clamp(), this
                        }, e.prototype.setFromColor = function(e) {
                            return this.r = e.r, this.g = e.g, this.b = e.b, this.a = e.a, this
                        }, e.prototype.setFromString = function(e) {
                            return e = "#" == e.charAt(0) ? e.substr(1) : e, this.r = parseInt(e.substr(0, 2), 16) / 255, this.g = parseInt(e.substr(2, 2), 16) / 255, this.b = parseInt(e.substr(4, 2), 16) / 255, this.a = (8 != e.length ? 255 : parseInt(e.substr(6, 2), 16)) / 255, this
                        }, e.prototype.add = function(e, t, i, r) {
                            return this.r += e, this.g += t, this.b += i, this.a += r, this.clamp(), this
                        }, e.prototype.clamp = function() {
                            return this.r < 0 ? this.r = 0 : this.r > 1 && (this.r = 1), this.g < 0 ? this.g = 0 : this.g > 1 && (this.g = 1), this.b < 0 ? this.b = 0 : this.b > 1 && (this.b = 1), this.a < 0 ? this.a = 0 : this.a > 1 && (this.a = 1), this
                        }, e.rgba8888ToColor = function(e, t) {
                            e.r = ((4278190080 & t) >>> 24) / 255, e.g = ((16711680 & t) >>> 16) / 255, e.b = ((65280 & t) >>> 8) / 255, e.a = (255 & t) / 255
                        }, e.rgb888ToColor = function(e, t) {
                            e.r = ((16711680 & t) >>> 16) / 255, e.g = ((65280 & t) >>> 8) / 255, e.b = (255 & t) / 255
                        }, e.WHITE = new e(1, 1, 1, 1), e.RED = new e(1, 0, 0, 1), e.GREEN = new e(0, 1, 0, 1), e.BLUE = new e(0, 0, 1, 1), e.MAGENTA = new e(1, 0, 1, 1), e
                    }();
                    e.Color = i;
                    var r = function() {
                        function e() {}
                        return e.clamp = function(e, t, i) {
                            return e < t ? t : e > i ? i : e
                        }, e.cosDeg = function(t) {
                            return Math.cos(t * e.degRad)
                        }, e.sinDeg = function(t) {
                            return Math.sin(t * e.degRad)
                        }, e.signum = function(e) {
                            return e > 0 ? 1 : e < 0 ? -1 : 0
                        }, e.toInt = function(e) {
                            return e > 0 ? Math.floor(e) : Math.ceil(e)
                        }, e.cbrt = function(e) {
                            var t = Math.pow(Math.abs(e), 1 / 3);
                            return e < 0 ? -t : t
                        }, e.randomTriangular = function(t, i) {
                            return e.randomTriangularWith(t, i, .5 * (t + i))
                        }, e.randomTriangularWith = function(e, t, i) {
                            var r = Math.random(),
                                n = t - e;
                            return r <= (i - e) / n ? e + Math.sqrt(r * n * (i - e)) : t - Math.sqrt((1 - r) * n * (t - i))
                        }, e.PI = 3.1415927, e.PI2 = 2 * e.PI, e.radiansToDegrees = 180 / e.PI, e.radDeg = e.radiansToDegrees, e.degreesToRadians = e.PI / 180, e.degRad = e.degreesToRadians, e
                    }();
                    e.MathUtils = r;
                    var a = function() {
                        function e() {}
                        return e.prototype.apply = function(e, t, i) {
                            return e + (t - e) * this.applyInternal(i)
                        }, e
                    }();
                    e.Interpolation = a;
                    var s = function(e) {
                        function t(t) {
                            var i = e.call(this) || this;
                            return i.power = 2, i.power = t, i
                        }
                        return n(t, e), t.prototype.applyInternal = function(e) {
                            return e <= .5 ? Math.pow(2 * e, this.power) / 2 : Math.pow(2 * (e - 1), this.power) / (this.power % 2 == 0 ? -2 : 2) + 1
                        }, t
                    }(a);
                    e.Pow = s;
                    var o = function(e) {
                        function t(t) {
                            return e.call(this, t) || this
                        }
                        return n(t, e), t.prototype.applyInternal = function(e) {
                            return Math.pow(e - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1
                        }, t
                    }(s);
                    e.PowOut = o;
                    var u = function() {
                        function e() {}
                        return e.arrayCopy = function(e, t, i, r, n) {
                            for (var a = t, s = r; a < t + n; a++, s++) i[s] = e[a]
                        }, e.setArraySize = function(e, t, i) {
                            void 0 === i && (i = 0);
                            var r = e.length;
                            if (r == t) return e;
                            if (e.length = t, r < t)
                                for (var n = r; n < t; n++) e[n] = i;
                            return e
                        }, e.ensureArrayCapacity = function(t, i, r) {
                            return void 0 === r && (r = 0), t.length >= i ? t : e.setArraySize(t, i, r)
                        }, e.newArray = function(e, t) {
                            for (var i = new Array(e), r = 0; r < e; r++) i[r] = t;
                            return i
                        }, e.newFloatArray = function(t) {
                            if (e.SUPPORTS_TYPED_ARRAYS) return new Float32Array(t);
                            for (var i = new Array(t), r = 0; r < i.length; r++) i[r] = 0;
                            return i
                        }, e.newShortArray = function(t) {
                            if (e.SUPPORTS_TYPED_ARRAYS) return new Int16Array(t);
                            for (var i = new Array(t), r = 0; r < i.length; r++) i[r] = 0;
                            return i
                        }, e.toFloatArray = function(t) {
                            return e.SUPPORTS_TYPED_ARRAYS ? new Float32Array(t) : t
                        }, e.toSinglePrecision = function(t) {
                            return e.SUPPORTS_TYPED_ARRAYS ? Math.fround(t) : t
                        }, e.webkit602BugfixHelper = function(e, t) {}, e.contains = function(e, t, i) {
                            void 0 === i && (i = !0);
                            for (var r = 0; r < e.length; r++)
                                if (e[r] == t) return !0;
                            return !1
                        }, e.SUPPORTS_TYPED_ARRAYS = "undefined" != typeof Float32Array, e
                    }();
                    e.Utils = u;
                    var h = function() {
                        function e() {}
                        return e.logBones = function(e) {
                            for (var t = 0; t < e.bones.length; t++) e.bones[t].matrix
                        }, e
                    }();
                    e.DebugUtils = h;
                    var l = function() {
                        function e(e) {
                            this.items = new Array, this.instantiator = e
                        }
                        return e.prototype.obtain = function() {
                            return this.items.length > 0 ? this.items.pop() : this.instantiator()
                        }, e.prototype.free = function(e) {
                            e.reset && e.reset(), this.items.push(e)
                        }, e.prototype.freeAll = function(e) {
                            for (var t = 0; t < e.length; t++) e[t].reset && e[t].reset(), this.items[t] = e[t]
                        }, e.prototype.clear = function() {
                            this.items.length = 0
                        }, e
                    }();
                    e.Pool = l;
                    var f = function() {
                        function e(e, t) {
                            void 0 === e && (e = 0), void 0 === t && (t = 0), this.x = e, this.y = t
                        }
                        return e.prototype.set = function(e, t) {
                            return this.x = e, this.y = t, this
                        }, e.prototype.length = function() {
                            var e = this.x,
                                t = this.y;
                            return Math.sqrt(e * e + t * t)
                        }, e.prototype.normalize = function() {
                            var e = this.length();
                            return 0 != e && (this.x /= e, this.y /= e), this
                        }, e
                    }();
                    e.Vector2 = f;
                    var c = function() {
                        function e() {
                            this.maxDelta = .064, this.framesPerSecond = 0, this.delta = 0, this.totalTime = 0, this.lastTime = Date.now() / 1e3, this.frameCount = 0, this.frameTime = 0
                        }
                        return e.prototype.update = function() {
                            var e = Date.now() / 1e3;
                            this.delta = e - this.lastTime, this.frameTime += this.delta, this.totalTime += this.delta, this.delta > this.maxDelta && (this.delta = this.maxDelta), this.lastTime = e, this.frameCount++, this.frameTime > 1 && (this.framesPerSecond = this.frameCount / this.frameTime, this.frameTime = 0, this.frameCount = 0)
                        }, e
                    }();
                    e.TimeKeeper = c;
                    var d = function() {
                        function e(e) {
                            void 0 === e && (e = 32), this.addedValues = 0, this.lastValue = 0, this.mean = 0, this.dirty = !0, this.values = new Array(e)
                        }
                        return e.prototype.hasEnoughData = function() {
                            return this.addedValues >= this.values.length
                        }, e.prototype.addValue = function(e) {
                            this.addedValues < this.values.length && this.addedValues++, this.values[this.lastValue++] = e, this.lastValue > this.values.length - 1 && (this.lastValue = 0), this.dirty = !0
                        }, e.prototype.getMean = function() {
                            if (this.hasEnoughData()) {
                                if (this.dirty) {
                                    for (var e = 0, t = 0; t < this.values.length; t++) e += this.values[t];
                                    this.mean = e / this.values.length, this.dirty = !1
                                }
                                return this.mean
                            }
                            return 0
                        }, e
                    }();
                    e.WindowedMean = d
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(e) {
                        if (null == e) throw new Error("name cannot be null.");
                        this.name = e
                    };
                    e.Attachment = t;
                    var i = function(t) {
                        function i(e) {
                            var r = t.call(this, e) || this;
                            return r.id = (65535 & i.nextID++) << 11, r.worldVerticesLength = 0, r.deformAttachment = r, r
                        }
                        return n(i, t), i.prototype.computeWorldVerticesOld = function(e, t) {
                            this.computeWorldVertices(e, 0, this.worldVerticesLength, t, 0, 2)
                        }, i.prototype.computeWorldVertices = function(e, t, i, r, n, a) {
                            i = n + (i >> 1) * a;
                            var s = e.bone.skeleton,
                                o = e.deform,
                                u = this.vertices,
                                h = this.bones;
                            if (null != h) {
                                for (var l = 0, f = 0, c = 0; c < t; c += 2) {
                                    l += (m = h[l]) + 1, f += m
                                }
                                var d = s.bones;
                                if (0 == o.length)
                                    for (P = n, k = 3 * f; P < i; P += a) {
                                        var p = 0,
                                            v = 0,
                                            m = h[l++];
                                        for (m += l; l < m; l++, k += 3) {
                                            y = d[h[l]].matrix, I = u[k], M = u[k + 1];
                                            var _ = u[k + 2];
                                            p += (I * y.a + M * y.c + y.tx) * _, v += (I * y.b + M * y.d + y.ty) * _
                                        }
                                        r[P] = p, r[P + 1] = v
                                    } else
                                        for (var b = o, g = (P = n, k = 3 * f, f << 1); P < i; P += a) {
                                            p = 0, v = 0, m = h[l++];
                                            for (m += l; l < m; l++, k += 3, g += 2) {
                                                y = d[h[l]].matrix, I = u[k] + b[g], M = u[k + 1] + b[g + 1], _ = u[k + 2];
                                                p += (I * y.a + M * y.c + y.tx) * _, v += (I * y.b + M * y.d + y.ty) * _
                                            }
                                            r[P] = p, r[P + 1] = v
                                        }
                            } else {
                                o.length > 0 && (u = o);
                                for (var y, A = (y = e.bone.matrix).tx, w = y.ty, x = y.a, k = y.c, T = y.b, E = y.d, S = t, P = n; P < i; S += 2, P += a) {
                                    var I = u[S],
                                        M = u[S + 1];
                                    r[P] = I * x + M * k + A, r[P + 1] = I * T + M * E + w
                                }
                            }
                        }, i.prototype.copyTo = function(t) {
                            null != this.bones ? (t.bones = new Array(this.bones.length), e.Utils.arrayCopy(this.bones, 0, t.bones, 0, this.bones.length)) : t.bones = null, null != this.vertices ? (t.vertices = e.Utils.newFloatArray(this.vertices.length), e.Utils.arrayCopy(this.vertices, 0, t.vertices, 0, this.vertices.length)) : t.vertices = null, t.worldVerticesLength = this.worldVerticesLength, t.deformAttachment = this.deformAttachment
                        }, i.nextID = 0, i
                    }(t);
                    e.VertexAttachment = i
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    ! function(e) {
                        e[e.Region = 0] = "Region", e[e.BoundingBox = 1] = "BoundingBox", e[e.Mesh = 2] = "Mesh", e[e.LinkedMesh = 3] = "LinkedMesh", e[e.Path = 4] = "Path", e[e.Point = 5] = "Point", e[e.Clipping = 6] = "Clipping"
                    }(e.AttachmentType || (e.AttachmentType = {}))
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.color = new e.Color(1, 1, 1, 1), r
                        }
                        return n(i, t), i.prototype.copy = function() {
                            var e = new i(name);
                            return this.copyTo(e), e.color.setFromColor(this.color), e
                        }, i
                    }(e.VertexAttachment);
                    e.BoundingBoxAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.color = new e.Color(.2275, .2275, .8078, 1), r
                        }
                        return n(i, t), i.prototype.copy = function() {
                            var e = new i(name);
                            return this.copyTo(e), e.endSlot = this.endSlot, e.color.setFromColor(this.color), e
                        }, i
                    }(e.VertexAttachment);
                    e.ClippingAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.color = new e.Color(1, 1, 1, 1), r.tempColor = new e.Color(0, 0, 0, 0), r
                        }
                        return n(i, t), i.prototype.getParentMesh = function() {
                            return this.parentMesh
                        }, i.prototype.setParentMesh = function(e) {
                            this.parentMesh = e, null != e && (this.bones = e.bones, this.vertices = e.vertices, this.worldVerticesLength = e.worldVerticesLength, this.regionUVs = e.regionUVs, this.triangles = e.triangles, this.hullLength = e.hullLength, this.worldVerticesLength = e.worldVerticesLength)
                        }, i.prototype.copy = function() {
                            if (null != this.parentMesh) return this.newLinkedMesh();
                            var t = new i(this.name);
                            return t.region = this.region, t.path = this.path, t.color.setFromColor(this.color), this.copyTo(t), t.regionUVs = new Float32Array(this.regionUVs.length), e.Utils.arrayCopy(this.regionUVs, 0, t.regionUVs, 0, this.regionUVs.length), t.uvs = new Array(this.uvs.length), e.Utils.arrayCopy(this.uvs, 0, t.uvs, 0, this.uvs.length), t.triangles = new Array(this.triangles.length), e.Utils.arrayCopy(this.triangles, 0, t.triangles, 0, this.triangles.length), t.hullLength = this.hullLength, null != this.edges && (t.edges = new Array(this.edges.length), e.Utils.arrayCopy(this.edges, 0, t.edges, 0, this.edges.length)), t.width = this.width, t.height = this.height, t
                        }, i.prototype.newLinkedMesh = function() {
                            var e = new i(this.name);
                            return e.region = this.region, e.path = this.path, e.color.setFromColor(this.color), e.deformAttachment = this.deformAttachment, e.setParentMesh(null != this.parentMesh ? this.parentMesh : this), e
                        }, i
                    }(e.VertexAttachment);
                    e.MeshAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.closed = !1, r.constantSpeed = !1, r.color = new e.Color(1, 1, 1, 1), r
                        }
                        return n(i, t), i.prototype.copy = function() {
                            var t = new i(name);
                            return this.copyTo(t), t.lengths = new Array(this.lengths.length), e.Utils.arrayCopy(this.lengths, 0, t.lengths, 0, this.lengths.length), t.closed = closed, t.constantSpeed = this.constantSpeed, t.color.setFromColor(this.color), t
                        }, i
                    }(e.VertexAttachment);
                    e.PathAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.color = new e.Color(.38, .94, 0, 1), r
                        }
                        return n(i, t), i.prototype.computeWorldPosition = function(e, t) {
                            var i = e.matrix;
                            return t.x = this.x * i.a + this.y * i.c + e.worldX, t.y = this.x * i.b + this.y * i.d + e.worldY, t
                        }, i.prototype.computeWorldRotation = function(t) {
                            var i = t.matrix,
                                r = e.MathUtils.cosDeg(this.rotation),
                                n = e.MathUtils.sinDeg(this.rotation),
                                a = r * i.a + n * i.c,
                                s = r * i.b + n * i.d;
                            return Math.atan2(s, a) * e.MathUtils.radDeg
                        }, i.prototype.copy = function() {
                            var e = new i(name);
                            return e.x = this.x, e.y = this.y, e.rotation = this.rotation, e.color.setFromColor(this.color), e
                        }, i
                    }(e.VertexAttachment);
                    e.PointAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function(t) {
                        function i(i) {
                            var r = t.call(this, i) || this;
                            return r.x = 0, r.y = 0, r.scaleX = 1, r.scaleY = 1, r.rotation = 0, r.width = 0, r.height = 0, r.color = new e.Color(1, 1, 1, 1), r.offset = e.Utils.newFloatArray(8), r.uvs = e.Utils.newFloatArray(8), r.tempColor = new e.Color(1, 1, 1, 1), r
                        }
                        return n(i, t), i.prototype.updateOffset = function() {
                            var e = this.width / this.region.originalWidth * this.scaleX,
                                t = this.height / this.region.originalHeight * this.scaleY,
                                r = -this.width / 2 * this.scaleX + this.region.offsetX * e,
                                n = -this.height / 2 * this.scaleY + this.region.offsetY * t,
                                a = r + this.region.width * e,
                                s = n + this.region.height * t,
                                o = this.rotation * Math.PI / 180,
                                u = Math.cos(o),
                                h = Math.sin(o),
                                l = r * u + this.x,
                                f = r * h,
                                c = n * u + this.y,
                                d = n * h,
                                p = a * u + this.x,
                                v = a * h,
                                m = s * u + this.y,
                                _ = s * h,
                                b = this.offset;
                            b[i.OX1] = l - d, b[i.OY1] = c + f, b[i.OX2] = l - _, b[i.OY2] = m + f, b[i.OX3] = p - _, b[i.OY3] = m + v, b[i.OX4] = p - d, b[i.OY4] = c + v
                        }, i.prototype.setRegion = function(e) {
                            this.region = e;
                            var t = this.uvs;
                            e.rotate ? (t[2] = e.u, t[3] = e.v2, t[4] = e.u, t[5] = e.v, t[6] = e.u2, t[7] = e.v, t[0] = e.u2, t[1] = e.v2) : (t[0] = e.u, t[1] = e.v2, t[2] = e.u, t[3] = e.v, t[4] = e.u2, t[5] = e.v, t[6] = e.u2, t[7] = e.v2)
                        }, i.prototype.computeWorldVertices = function(e, t, r, n) {
                            var a = this.offset,
                                s = e.matrix,
                                o = s.tx,
                                u = s.ty,
                                h = s.a,
                                l = s.c,
                                f = s.b,
                                c = s.d,
                                d = 0,
                                p = 0;
                            d = a[i.OX1], p = a[i.OY1], t[r] = d * h + p * l + o, t[r + 1] = d * f + p * c + u, r += n, d = a[i.OX2], p = a[i.OY2], t[r] = d * h + p * l + o, t[r + 1] = d * f + p * c + u, r += n, d = a[i.OX3], p = a[i.OY3], t[r] = d * h + p * l + o, t[r + 1] = d * f + p * c + u, r += n, d = a[i.OX4], p = a[i.OY4], t[r] = d * h + p * l + o, t[r + 1] = d * f + p * c + u
                        }, i.prototype.copy = function() {
                            var t = new i(name);
                            return t.region = this.region, t.rendererObject = this.rendererObject, t.path = this.path, t.x = this.x, t.y = this.y, t.scaleX = this.scaleX, t.scaleY = this.scaleY, t.rotation = this.rotation, t.width = this.width, t.height = this.height, e.Utils.arrayCopy(this.uvs, 0, t.uvs, 0, 8), e.Utils.arrayCopy(this.offset, 0, t.offset, 0, 8), t.color.setFromColor(this.color), t
                        }, i.OX1 = 0, i.OY1 = 1, i.OX2 = 2, i.OY2 = 3, i.OX3 = 4, i.OY3 = 5, i.OX4 = 6, i.OY4 = 7, i.X1 = 0, i.Y1 = 1, i.C1R = 2, i.C1G = 3, i.C1B = 4, i.C1A = 5, i.U1 = 6, i.V1 = 7, i.X2 = 8, i.Y2 = 9, i.C2R = 10, i.C2G = 11, i.C2B = 12, i.C2A = 13, i.U2 = 14, i.V2 = 15, i.X3 = 16, i.Y3 = 17, i.C3R = 18, i.C3G = 19, i.C3B = 20, i.C3A = 21, i.U3 = 22, i.V3 = 23, i.X4 = 24, i.Y4 = 25, i.C4R = 26, i.C4G = 27, i.C4B = 28, i.C4A = 29, i.U4 = 30, i.V4 = 31, i
                    }(e.Attachment);
                    e.RegionAttachment = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e, t) {
                            this.jitterX = 0, this.jitterY = 0, this.jitterX = e, this.jitterY = t
                        }
                        return t.prototype.begin = function(e) {}, t.prototype.transform = function(t, i, r, n) {
                            t.x += e.MathUtils.randomTriangular(-this.jitterX, this.jitterY), t.y += e.MathUtils.randomTriangular(-this.jitterX, this.jitterY)
                        }, t.prototype.end = function() {}, t
                    }();
                    e.JitterEffect = t
                }(e.core || (e.core = {}))
            }(r || (r = {})),
            function(e) {
                ! function(e) {
                    var t = function() {
                        function t(e) {
                            this.centerX = 0, this.centerY = 0, this.radius = 0, this.angle = 0, this.worldX = 0, this.worldY = 0, this.radius = e
                        }
                        return t.prototype.begin = function(e) {
                            this.worldX = e.x + this.centerX, this.worldY = e.y + this.centerY
                        }, t.prototype.transform = function(i, r, n, a) {
                            var s = this.angle * e.MathUtils.degreesToRadians,
                                o = i.x - this.worldX,
                                u = i.y - this.worldY,
                                h = Math.sqrt(o * o + u * u);
                            if (h < this.radius) {
                                var l = t.interpolation.apply(0, s, (this.radius - h) / this.radius),
                                    f = Math.cos(l),
                                    c = Math.sin(l);
                                i.x = f * o - c * u + this.worldX, i.y = c * o + f * u + this.worldY
                            }
                        }, t.prototype.end = function() {}, t.interpolation = new e.PowOut(2), t
                    }();
                    e.SwirlEffect = t
                }(e.core || (e.core = {}))
            }(r || (r = {})), Math.fround || (Math.fround = Math.fround = (i = new Float32Array(1), function(e) {
                    return i[0] = e, i[0]
                })),
                function(t) {
                    t.core.Bone.yDown = !0;
                    var i = [0, 0, 0],
                        r = function(e) {
                            function t() {
                                var t = null !== e && e.apply(this, arguments) || this;
                                return t.region = null, t.attachment = null, t
                            }
                            return n(t, e), t
                        }(e.Sprite);
                    t.SpineSprite = r;
                    var a = e.GraphicsGeometry.prototype;
                    if (!a.invalidate) {
                        var s = [];
                        a.invalidate = function() {
                            var e = this.graphicsData;
                            s.push(0), this.graphicsData = s, this.clear(), this.graphicsData = e
                        }
                    }
                    var o = function(e) {
                        function t(t, i, r, n, a) {
                            var s = e.call(this, t, i, r, n, a) || this;
                            return s.region = null, s.attachment = null, s
                        }
                        return n(t, e), t
                    }(e.SimpleMesh);
                    t.SpineMesh = o;
                    var u = function(a) {
                        function s(e) {
                            var i = a.call(this) || this;
                            if (!e) throw new Error("The spineData param is required.");
                            if ("string" == typeof e) throw new Error('spineData param cant be string. Please use spine.Spine.fromAtlas("YOUR_RESOURCE_NAME") from now on.');
                            i.spineData = e, i.skeleton = new t.core.Skeleton(e), i.skeleton.updateWorldTransform(), i.stateData = new t.core.AnimationStateData(e), i.state = new t.core.AnimationState(i.stateData), i.slotContainers = [], i.tempClipContainers = [];
                            for (var r = 0, n = i.skeleton.slots.length; r < n; r++) {
                                var s = i.skeleton.slots[r],
                                    o = s.getAttachment(),
                                    u = i.newContainer();
                                if (i.slotContainers.push(u), i.addChild(u), i.tempClipContainers.push(null), o instanceof t.core.RegionAttachment) {
                                    var h = o.region.name,
                                        l = i.createSprite(s, o, h);
                                    s.currentSprite = l, s.currentSpriteName = h, u.addChild(l)
                                } else if (o instanceof t.core.MeshAttachment) {
                                    var f = i.createMesh(s, o);
                                    s.currentMesh = f, s.currentMeshName = o.name, u.addChild(f)
                                } else {
                                    if (!(o instanceof t.core.ClippingAttachment)) continue;
                                    i.createGraphics(s, o), u.addChild(s.clippingContainer), u.addChild(s.currentGraphics)
                                }
                            }
                            return i.tintRgb = new Float32Array([1, 1, 1]), i.autoUpdate = !0, i.visible = !0, i
                        }
                        return n(s, a), Object.defineProperty(s.prototype, "autoUpdate", {
                            get: function() {
                                return this._autoUpdate
                            },
                            set: function(t) {
                                t !== this._autoUpdate && (this._autoUpdate = t, this.updateTransform = t ? s.prototype.autoUpdateTransform : e.Container.prototype.updateTransform)
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(s.prototype, "visible", {
                            get: function() {
                                return this._visible
                            },
                            set: function(e) {
                                e !== this._visible && (this._visible = e, e && (this.lastTime = 0))
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(s.prototype, "tint", {
                            get: function() {
                                return e.utils.rgb2hex(this.tintRgb)
                            },
                            set: function(t) {
                                this.tintRgb = e.utils.hex2rgb(t, this.tintRgb)
                            },
                            enumerable: !0,
                            configurable: !0
                        }), Object.defineProperty(s.prototype, "delayLimit", {
                            get: function() {
                                return (void 0 !== this.localDelayLimit ? this.localDelayLimit : s.globalDelayLimit) || Number.MAX_VALUE
                            },
                            enumerable: !0,
                            configurable: !0
                        }), s.prototype.update = function(r) {
                            var n = this.delayLimit;
                            if (r > n && (r = n), this.state.update(r), this.state.apply(this.skeleton), this.skeleton) {
                                this.skeleton.updateWorldTransform();
                                var a = this.skeleton.slots,
                                    s = this.color,
                                    o = null,
                                    u = null;
                                s ? (o = s.light, u = s.dark) : o = this.tintRgb;
                                for (var h = 0, l = a.length; h < l; h++) {
                                    var f = (P = a[h]).getAttachment(),
                                        c = this.slotContainers[h];
                                    if (f) {
                                        var d = null,
                                            p = f.color;
                                        if (f instanceof t.core.RegionAttachment) {
                                            var v = f.region;
                                            if (v) {
                                                P.currentMesh && (P.currentMesh.visible = !1, P.currentMesh = null, P.currentMeshName = void 0);
                                                var m = v;
                                                if (P.currentSpriteName && P.currentSpriteName === m.name) P.currentSpriteName !== m.name || P.hackRegion || this.setSpriteRegion(f, P.currentSprite, v);
                                                else {
                                                    var _ = m.name;
                                                    if (P.currentSprite && (P.currentSprite.visible = !1), P.sprites = P.sprites || {}, void 0 !== P.sprites[_]) P.sprites[_].visible = !0;
                                                    else {
                                                        var b = this.createSprite(P, f, _);
                                                        c.addChild(b)
                                                    }
                                                    P.currentSprite = P.sprites[_], P.currentSpriteName = _
                                                }
                                            }(g = c.transform).setFromMatrix(P.bone.matrix), P.currentSprite.color ? d = P.currentSprite.color : (i[0] = o[0] * P.color.r * p.r, i[1] = o[1] * P.color.g * p.g, i[2] = o[2] * P.color.b * p.b, P.currentSprite.tint = e.utils.rgb2hex(i)), P.currentSprite.blendMode = P.blendMode
                                        } else if (f instanceof t.core.MeshAttachment) {
                                            var g;
                                            if (P.currentSprite) P.currentSprite.visible = !1, P.currentSprite = null, P.currentSpriteName = void 0, (g = new e.Transform)._parentID = -1, g._worldID = c.transform._worldID, c.transform = g;
                                            if (!P.currentMeshName || P.currentMeshName !== f.name) {
                                                var y = f.name;
                                                if (P.currentMesh && (P.currentMesh.visible = !1), P.meshes = P.meshes || {}, void 0 !== P.meshes[y]) P.meshes[y].visible = !0;
                                                else {
                                                    var A = this.createMesh(P, f);
                                                    c.addChild(A)
                                                }
                                                P.currentMesh = P.meshes[y], P.currentMeshName = y
                                            }
                                            f.computeWorldVerticesOld(P, P.currentMesh.vertices), P.currentMesh.color ? d = P.currentMesh.color : (i[0] = o[0] * P.color.r * p.r, i[1] = o[1] * P.color.g * p.g, i[2] = o[2] * P.color.b * p.b, P.currentMesh.tint = e.utils.rgb2hex(i)), P.currentMesh.blendMode = P.blendMode
                                        } else {
                                            if (!(f instanceof t.core.ClippingAttachment)) {
                                                c.visible = !1;
                                                continue
                                            }
                                            P.currentGraphics || (this.createGraphics(P, f), c.addChild(P.clippingContainer), c.addChild(P.currentGraphics)), this.updateGraphics(P, f)
                                        }
                                        if (c.visible = !0, d) {
                                            var w = P.color.r * p.r,
                                                x = P.color.g * p.g,
                                                k = P.color.b * p.b;
                                            d.setLight(o[0] * w + u[0] * (1 - w), o[1] * x + u[1] * (1 - x), o[2] * k + u[2] * (1 - k)), P.darkColor ? (w = P.darkColor.r, x = P.darkColor.g, k = P.darkColor.b) : (w = 0, x = 0, k = 0), d.setDark(o[0] * w + u[0] * (1 - w), o[1] * x + u[1] * (1 - x), o[2] * k + u[2] * (1 - k))
                                        }
                                        c.alpha = P.color.a
                                    } else c.visible = !1
                                }
                                var T = this.skeleton.drawOrder,
                                    E = null,
                                    S = null;
                                for (h = 0, l = T.length; h < l; h++) {
                                    var P = a[T[h].data.index];
                                    c = this.slotContainers[T[h].data.index];
                                    if (S || null !== c.parent && c.parent !== this && (c.parent.removeChild(c), c.parent = this), P.currentGraphics && P.getAttachment()) S = P.clippingContainer, E = P.getAttachment(), S.children.length = 0, this.children[h] = c, E.endSlot == P.data && (E.endSlot = null);
                                    else if (S) {
                                        var I = this.tempClipContainers[h];
                                        I || ((I = this.tempClipContainers[h] = this.newContainer()).visible = !1), this.children[h] = I, c.parent = null, S.addChild(c), E.endSlot == P.data && (S.renderable = !0, S = null, E = null)
                                    } else this.children[h] = c
                                }
                            }
                        }, s.prototype.setSpriteRegion = function(e, i, r) {
                            i.attachment === e && i.region === r || (i.region = r, i.attachment = e, i.texture = r.texture, i.rotation = e.rotation * t.core.MathUtils.degRad, i.position.x = e.x, i.position.y = e.y, i.alpha = e.color.a, r.size ? (i.scale.x = r.size.width / r.originalWidth, i.scale.y = -r.size.height / r.originalHeight) : (i.scale.x = e.scaleX * e.width / r.originalWidth, i.scale.y = -e.scaleY * e.height / r.originalHeight))
                        }, s.prototype.setMeshRegion = function(e, t, i) {
                            t.attachment === e && t.region === i || (t.region = i, t.attachment = e, t.texture = i.texture, i.texture.updateUvs(), t.uvBuffer.update(e.regionUVs))
                        }, s.prototype.autoUpdateTransform = function() {
                            if (s.globalAutoUpdate) {
                                this.lastTime = this.lastTime || Date.now();
                                var t = .001 * (Date.now() - this.lastTime);
                                this.lastTime = Date.now(), this.update(t)
                            } else this.lastTime = 0;
                            e.Container.prototype.updateTransform.call(this)
                        }, s.prototype.createSprite = function(e, t, i) {
                            var r = t.region;
                            e.hackAttachment === t && (r = e.hackRegion);
                            var n = r.texture,
                                a = this.newSprite(n);
                            return a.anchor.set(.5), this.setSpriteRegion(t, a, t.region), e.sprites = e.sprites || {}, e.sprites[i] = a, a
                        }, s.prototype.createMesh = function(t, i) {
                            var r = i.region;
                            t.hackAttachment === i && (r = t.hackRegion, t.hackAttachment = null, t.hackRegion = null);
                            var n = this.newMesh(r.texture, new Float32Array(i.regionUVs.length), i.regionUVs, new Uint16Array(i.triangles), e.DRAW_MODES.TRIANGLES);
                            return n.canvasPadding && (n.canvasPadding = 1.5), n.alpha = i.color.a, n.region = i.region, this.setMeshRegion(i, n, r), t.meshes = t.meshes || {}, t.meshes[i.name] = n, n
                        }, s.prototype.createGraphics = function(t, i) {
                            var r = this.newGraphics(),
                                n = new e.Polygon([]);
                            return r.clear(), r.beginFill(16777215, 1), r.drawPolygon(n), r.renderable = !1, t.currentGraphics = r, t.clippingContainer = this.newContainer(), t.clippingContainer.mask = t.currentGraphics, r
                        }, s.prototype.updateGraphics = function(e, t) {
                            var i = e.currentGraphics.geometry,
                                r = i.graphicsData[0].shape.points,
                                n = t.worldVerticesLength;
                            r.length = n, t.computeWorldVertices(e, 0, n, r, 0, 2), i.invalidate()
                        }, s.prototype.hackTextureBySlotIndex = function(e, i, r) {
                            void 0 === i && (i = null), void 0 === r && (r = null);
                            var n = this.skeleton.slots[e];
                            if (!n) return !1;
                            var a = n.getAttachment(),
                                s = a.region;
                            return i ? ((s = new t.core.TextureRegion).texture = i, s.size = r, n.hackRegion = s, n.hackAttachment = a) : (n.hackRegion = null, n.hackAttachment = null), n.currentSprite && n.currentSprite.region != s ? (this.setSpriteRegion(a, n.currentSprite, s), n.currentSprite.region = s) : n.currentMesh && n.currentMesh.region != s && this.setMeshRegion(a, n.currentMesh, s), !0
                        }, s.prototype.hackTextureBySlotName = function(e, t, i) {
                            void 0 === t && (t = null), void 0 === i && (i = null);
                            var r = this.skeleton.findSlotIndex(e);
                            return -1 != r && this.hackTextureBySlotIndex(r, t, i)
                        }, s.prototype.newContainer = function() {
                            return new e.Container
                        }, s.prototype.newSprite = function(e) {
                            return new r(e)
                        }, s.prototype.newGraphics = function() {
                            return new e.Graphics
                        }, s.prototype.newMesh = function(e, t, i, r, n) {
                            return new o(e, t, i, r, n)
                        }, s.prototype.transformHack = function() {
                            return 1
                        }, s.prototype.hackAttachmentGroups = function(e, t, i) {
                            if (e) {
                                for (var r = [], n = [], a = 0, s = this.skeleton.slots.length; a < s; a++) {
                                    var o = this.skeleton.slots[a],
                                        u = o.currentSpriteName || o.currentMeshName || "",
                                        h = o.currentSprite || o.currentMesh;
                                    u.endsWith(e) ? (h.parentGroup = t, n.push(h)) : i && h && (h.parentGroup = i, r.push(h))
                                }
                                return [r, n]
                            }
                        }, s.prototype.destroy = function(e) {
                            for (var t = 0, i = this.skeleton.slots.length; t < i; t++) {
                                var r = this.skeleton.slots[t];
                                for (var n in r.meshes) r.meshes[n].destroy(e);
                                for (var s in r.meshes = null, r.sprites) r.sprites[s].destroy(e);
                                r.sprites = null
                            }
                            for (t = 0, i = this.slotContainers.length; t < i; t++) this.slotContainers[t].destroy(e);
                            this.spineData = null, this.skeleton = null, this.slotContainers = null, this.stateData = null, this.state = null, this.tempClipContainers = null, a.prototype.destroy.call(this, e)
                        }, s.globalAutoUpdate = !0, s.globalDelayLimit = 0, s.clippingPolygon = [], s
                    }(e.Container);
                    t.Spine = u
                }(r || (r = {})),
                function(t) {
                    e.spine = t;
                    var i = e.Texture.prototype;
                    i._updateUvs || (i._updateUvs = i.updateUvs)
                }(r || (r = {})),
                function(t) {
                    e.LoaderResource.setExtensionXhrType("skel", e.LoaderResource.XHR_RESPONSE_TYPE.BUFFER);
                    var i = function() {
                        function i() {}
                        return i.use = function(i, a) {
                            if (!i.data) return a();
                            var s = function(t) {
                                    return t.type === e.LoaderResource.TYPE.JSON
                                }(i) && i.data.bones,
                                o = function(t) {
                                    return t.xhrType === e.LoaderResource.XHR_RESPONSE_TYPE.BUFFER
                                }(i) && ("skel" === i.extension || i.metadata.spineMetadata);
                            if (!s && !o) return a();
                            var u = null,
                                h = i.data;
                            s ? u = new t.core.SkeletonJson(null) : (u = new t.core.SkeletonBinary(null), i.data instanceof ArrayBuffer && (h = new Uint8Array(i.data)));
                            var l = i.metadata || {},
                                f = l ? i.metadata.spineSkeletonScale : null;
                            f && (u.scale = f);
                            var c = l ? i.metadata.spineAtlas : null;
                            if (!1 === c) return a();
                            if (c && c.pages) return u.attachmentLoader = new t.core.AtlasAttachmentLoader(c), i.spineData = u.readSkeletonData(h), i.spineAtlas = c, a();
                            var d = l.spineAtlasSuffix || ".atlas",
                                p = i.url,
                                v = p.indexOf("?");
                            v > 0 && (p = p.substr(0, v)), p = p.substr(0, p.lastIndexOf(".")) + d, i.metadata && i.metadata.spineAtlasFile && (p = i.metadata.spineAtlasFile), p = p.replace(this.baseUrl, "");
                            var m = {
                                    crossOrigin: i.crossOrigin,
                                    xhrType: e.LoaderResource.XHR_RESPONSE_TYPE.TEXT,
                                    metadata: l.spineMetadata || null,
                                    parentResource: i
                                },
                                _ = {
                                    crossOrigin: i.crossOrigin,
                                    metadata: l.imageMetadata || null,
                                    parentResource: i
                                },
                                b = i.url.substr(0, i.url.lastIndexOf("/") + 1);
                            b = b.replace(this.baseUrl, "");
                            var g = l.imageNamePrefix || i.name + "_atlas_page_",
                                y = l.images ? n(l.images) : l.image ? n({
                                    default: l.image
                                }) : l.imageLoader ? l.imageLoader(this, g, b, _) : r(this, g, b, _),
                                A = function(e) {
                                    new t.core.TextureAtlas(e, y, function(e) {
                                        e && (u.attachmentLoader = new t.core.AtlasAttachmentLoader(e), i.spineData = u.readSkeletonData(h), i.spineAtlas = e), a()
                                    })
                                };
                            i.metadata && i.metadata.atlasRawData ? A(i.metadata.atlasRawData) : this.add(i.name + "_atlas", p, m, function(e) {
                                e.error ? a() : A(e.data)
                            })
                        }, i
                    }();

                    function r(e, t, i, r) {
                        return i && i.lastIndexOf("/") !== i.length - 1 && (i += "/"),
                            function(n, a) {
                                var s = t + n,
                                    o = i + n,
                                    u = e.resources[s];
                                if (u) {
                                    function h() {
                                        a(u.texture.baseTexture)
                                    }
                                    u.texture ? h() : u.onAfterMiddleware.add(h)
                                } else e.add(s, o, r, function(e) {
                                    e.error ? a(null) : a(e.texture.baseTexture)
                                })
                            }
                    }

                    function n(e) {
                        return function(t, i) {
                            var r = e[t] || e.default;
                            r && r.baseTexture ? i(r.baseTexture) : i(r)
                        }
                    }
                    t.AtlasParser = i, t.imageLoaderAdapter = r, t.syncImageLoaderAdapter = function(t, i) {
                        return t && t.lastIndexOf("/") !== t.length - 1 && (t += "/"),
                            function(t, r) {
                                r(e.BaseTexture.from(t, i))
                            }
                    }, t.staticImageLoader = n, e.Loader && e.Loader.registerPlugin(i)
                }(r || (r = {}))
        }).call(this, i(3))
    }, , , function(e, t, i) {
        "use strict";
        e.exports = function(e, t) {
            t = t || {};
            for (var i = {
                    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 = i.parser[t.strictMode ? "strict" : "loose"].exec(e), n = {}, a = 14; a--;) n[i.key[a]] = r[a] || "";
            return n[i.q.name] = {}, n[i.key[12]].replace(i.q.parser, function(e, t, r) {
                t && (n[i.q.name][t] = r)
            }), n
        }
    }, function(e, t, i) {
        (function(e) {
            var r = Object.getOwnPropertyDescriptors || function(e) {
                    for (var t = Object.keys(e), i = {}, r = 0; r < t.length; r++) i[t[r]] = Object.getOwnPropertyDescriptor(e, t[r]);
                    return i
                },
                n = /%[sdj%]/g;
            t.format = function(e) {
                if (!_(e)) {
                    for (var t = [], i = 0; i < arguments.length; i++) t.push(o(arguments[i]));
                    return t.join(" ")
                }
                i = 1;
                for (var r = arguments, a = r.length, s = String(e).replace(n, function(e) {
                        if ("%%" === e) return "%";
                        if (i >= a) return e;
                        switch (e) {
                            case "%s":
                                return String(r[i++]);
                            case "%d":
                                return Number(r[i++]);
                            case "%j":
                                try {
                                    return JSON.stringify(r[i++])
                                } catch (e) {
                                    return "[Circular]"
                                }
                            default:
                                return e
                        }
                    }), u = r[i]; i < a; u = r[++i]) v(u) || !y(u) ? s += " " + u : s += " " + o(u);
                return s
            }, t.deprecate = function(i, r) {
                if (void 0 !== e && !0 === e.noDeprecation) return i;
                if (void 0 === e) return function() {
                    return t.deprecate(i, r).apply(this, arguments)
                };
                var n = !1;
                return function() {
                    if (!n) {
                        if (e.throwDeprecation) throw new Error(r);
                        e.traceDeprecation, n = !0
                    }
                    return i.apply(this, arguments)
                }
            };
            var a, s = {};

            function o(e, i) {
                var r = {
                    seen: [],
                    stylize: h
                };
                return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), p(i) ? r.showHidden = i : i && t._extend(r, i), b(r.showHidden) && (r.showHidden = !1), b(r.depth) && (r.depth = 2), b(r.colors) && (r.colors = !1), b(r.customInspect) && (r.customInspect = !0), r.colors && (r.stylize = u), l(r, e, r.depth)
            }

            function u(e, t) {
                var i = o.styles[t];
                return i ? "[" + o.colors[i][0] + "m" + e + "[" + o.colors[i][1] + "m" : e
            }

            function h(e, t) {
                return e
            }

            function l(e, i, r) {
                if (e.customInspect && i && x(i.inspect) && i.inspect !== t.inspect && (!i.constructor || i.constructor.prototype !== i)) {
                    var n = i.inspect(r, e);
                    return _(n) || (n = l(e, n, r)), n
                }
                var a = function(e, t) {
                    if (b(t)) return e.stylize("undefined", "undefined");
                    if (_(t)) {
                        var i = "'" + JSON.stringify(t).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
                        return e.stylize(i, "string")
                    }
                    if (m(t)) return e.stylize("" + t, "number");
                    if (p(t)) return e.stylize("" + t, "boolean");
                    if (v(t)) return e.stylize("null", "null")
                }(e, i);
                if (a) return a;
                var s = Object.keys(i),
                    o = function(e) {
                        var t = {};
                        return e.forEach(function(e, i) {
                            t[e] = !0
                        }), t
                    }(s);
                if (e.showHidden && (s = Object.getOwnPropertyNames(i)), w(i) && (s.indexOf("message") >= 0 || s.indexOf("description") >= 0)) return f(i);
                if (0 === s.length) {
                    if (x(i)) {
                        var u = i.name ? ": " + i.name : "";
                        return e.stylize("[Function" + u + "]", "special")
                    }
                    if (g(i)) return e.stylize(RegExp.prototype.toString.call(i), "regexp");
                    if (A(i)) return e.stylize(Date.prototype.toString.call(i), "date");
                    if (w(i)) return f(i)
                }
                var h, y = "",
                    k = !1,
                    E = ["{", "}"];
                (d(i) && (k = !0, E = ["[", "]"]), x(i)) && (y = " [Function" + (i.name ? ": " + i.name : "") + "]");
                return g(i) && (y = " " + RegExp.prototype.toString.call(i)), A(i) && (y = " " + Date.prototype.toUTCString.call(i)), w(i) && (y = " " + f(i)), 0 !== s.length || k && 0 != i.length ? r < 0 ? g(i) ? e.stylize(RegExp.prototype.toString.call(i), "regexp") : e.stylize("[Object]", "special") : (e.seen.push(i), h = k ? function(e, t, i, r, n) {
                    for (var a = [], s = 0, o = t.length; s < o; ++s) T(t, String(s)) ? a.push(c(e, t, i, r, String(s), !0)) : a.push("");
                    return n.forEach(function(n) {
                        n.match(/^\d+$/) || a.push(c(e, t, i, r, n, !0))
                    }), a
                }(e, i, r, o, s) : s.map(function(t) {
                    return c(e, i, r, o, t, k)
                }), e.seen.pop(), function(e, t, i) {
                    if (e.reduce(function(e, t) {
                            return 0, t.indexOf("\n") >= 0 && 0, e + t.replace(/\u001b\[\d\d?m/g, "").length + 1
                        }, 0) > 60) return i[0] + ("" === t ? "" : t + "\n ") + " " + e.join(",\n  ") + " " + i[1];
                    return i[0] + t + " " + e.join(", ") + " " + i[1]
                }(h, y, E)) : E[0] + y + E[1]
            }

            function f(e) {
                return "[" + Error.prototype.toString.call(e) + "]"
            }

            function c(e, t, i, r, n, a) {
                var s, o, u;
                if ((u = Object.getOwnPropertyDescriptor(t, n) || {
                        value: t[n]
                    }).get ? o = u.set ? e.stylize("[Getter/Setter]", "special") : e.stylize("[Getter]", "special") : u.set && (o = e.stylize("[Setter]", "special")), T(r, n) || (s = "[" + n + "]"), o || (e.seen.indexOf(u.value) < 0 ? (o = v(i) ? l(e, u.value, null) : l(e, u.value, i - 1)).indexOf("\n") > -1 && (o = a ? o.split("\n").map(function(e) {
                        return "  " + e
                    }).join("\n").substr(2) : "\n" + o.split("\n").map(function(e) {
                        return "   " + e
                    }).join("\n")) : o = e.stylize("[Circular]", "special")), b(s)) {
                    if (a && n.match(/^\d+$/)) return o;
                    (s = JSON.stringify("" + n)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (s = s.substr(1, s.length - 2), s = e.stylize(s, "name")) : (s = s.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), s = e.stylize(s, "string"))
                }
                return s + ": " + o
            }

            function d(e) {
                return Array.isArray(e)
            }

            function p(e) {
                return "boolean" == typeof e
            }

            function v(e) {
                return null === e
            }

            function m(e) {
                return "number" == typeof e
            }

            function _(e) {
                return "string" == typeof e
            }

            function b(e) {
                return void 0 === e
            }

            function g(e) {
                return y(e) && "[object RegExp]" === k(e)
            }

            function y(e) {
                return "object" == typeof e && null !== e
            }

            function A(e) {
                return y(e) && "[object Date]" === k(e)
            }

            function w(e) {
                return y(e) && ("[object Error]" === k(e) || e instanceof Error)
            }

            function x(e) {
                return "function" == typeof e
            }

            function k(e) {
                return Object.prototype.toString.call(e)
            }
            t.debuglog = function(i) {
                if (b(a) && (a = e.env.NODE_DEBUG || ""), i = i.toUpperCase(), !s[i])
                    if (new RegExp("\\b" + i + "\\b", "i").test(a)) {
                        e.pid;
                        s[i] = function() {
                            t.format.apply(t, arguments)
                        }
                    } else s[i] = function() {};
                return s[i]
            }, t.inspect = o, o.colors = {
                bold: [1, 22],
                italic: [3, 23],
                underline: [4, 24],
                inverse: [7, 27],
                white: [37, 39],
                grey: [90, 39],
                black: [30, 39],
                blue: [34, 39],
                cyan: [36, 39],
                green: [32, 39],
                magenta: [35, 39],
                red: [31, 39],
                yellow: [33, 39]
            }, o.styles = {
                special: "cyan",
                number: "yellow",
                boolean: "yellow",
                undefined: "grey",
                null: "bold",
                string: "green",
                date: "magenta",
                regexp: "red"
            }, t.isArray = d, t.isBoolean = p, t.isNull = v, t.isNullOrUndefined = function(e) {
                return null == e
            }, t.isNumber = m, t.isString = _, t.isSymbol = function(e) {
                return "symbol" == typeof e
            }, t.isUndefined = b, t.isRegExp = g, t.isObject = y, t.isDate = A, t.isError = w, t.isFunction = x, t.isPrimitive = function(e) {
                return null === e || "boolean" == typeof e || "number" == typeof e || "string" == typeof e || "symbol" == typeof e || void 0 === e
            }, t.isBuffer = i(211);

            function T(e, t) {
                return Object.prototype.hasOwnProperty.call(e, t)
            }
            t.log = function() {}, t.inherits = i(212), t._extend = function(e, t) {
                if (!t || !y(t)) return e;
                for (var i = Object.keys(t), r = i.length; r--;) e[i[r]] = t[i[r]];
                return e
            };
            var E = "undefined" != typeof Symbol ? Symbol("util.promisify.custom") : void 0;

            function S(e, t) {
                if (!e) {
                    var i = new Error("Promise was rejected with a falsy value");
                    i.reason = e, e = i
                }
                return t(e)
            }
            t.promisify = function(e) {
                if ("function" != typeof e) throw new TypeError('The "original" argument must be of type Function');
                if (E && e[E]) {
                    var t;
                    if ("function" != typeof(t = e[E])) throw new TypeError('The "util.promisify.custom" argument must be of type Function');
                    return Object.defineProperty(t, E, {
                        value: t,
                        enumerable: !1,
                        writable: !1,
                        configurable: !0
                    }), t
                }

                function t() {
                    for (var t, i, r = new Promise(function(e, r) {
                            t = e, i = r
                        }), n = [], a = 0; a < arguments.length; a++) n.push(arguments[a]);
                    n.push(function(e, r) {
                        e ? i(e) : t(r)
                    });
                    try {
                        e.apply(this, n)
                    } catch (e) {
                        i(e)
                    }
                    return r
                }
                return Object.setPrototypeOf(t, Object.getPrototypeOf(e)), E && Object.defineProperty(t, E, {
                    value: t,
                    enumerable: !1,
                    writable: !1,
                    configurable: !0
                }), Object.defineProperties(t, r(e))
            }, t.promisify.custom = E, t.callbackify = function(t) {
                if ("function" != typeof t) throw new TypeError('The "original" argument must be of type Function');

                function i() {
                    for (var i = [], r = 0; r < arguments.length; r++) i.push(arguments[r]);
                    var n = i.pop();
                    if ("function" != typeof n) throw new TypeError("The last argument must be of type Function");
                    var a = this,
                        s = function() {
                            return n.apply(a, arguments)
                        };
                    t.apply(this, i).then(function(t) {
                        e.nextTick(s, null, t)
                    }, function(t) {
                        e.nextTick(S, t, s)
                    })
                }
                return Object.setPrototypeOf(i, Object.getPrototypeOf(t)), Object.defineProperties(i, r(t)), i
            }
        }).call(this, i(119))
    }, function(e, t, i) {
        "use strict";
        i.d(t, "a", function() {
            return n
        });
        var r = i(4);
        /*!
         * VERSION: 2.1.3
         * DATE: 2019-05-17
         * UPDATES AND DOCS AT: http://greensock.com
         *
         * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
         * This work is subject to the terms at http://greensock.com/standard-license or for
         * Club GreenSock members, the software agreement that was issued with your membership.
         * 
         * @author: Jack Doyle, jack@greensock.com
         **/
        r.g._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function() {
            var e = function(e) {
                    var t, i = [],
                        r = e.length;
                    for (t = 0; t !== r; i.push(e[t++]));
                    return i
                },
                t = function(e, t, i) {
                    var r, n, a = e.cycle;
                    for (r in a) n = a[r], e[r] = "function" == typeof n ? n(i, t[i], t) : n[i % n.length];
                    delete e.cycle
                },
                i = function(e) {
                    if ("function" == typeof e) return e;
                    var t = "object" == typeof e ? e : {
                            each: e
                        },
                        i = t.ease,
                        r = t.from || 0,
                        n = t.base || 0,
                        a = {},
                        s = isNaN(r),
                        o = t.axis,
                        u = {
                            center: .5,
                            end: 1
                        }[r] || 0;
                    return function(e, h, l) {
                        var f, c, d, p, v, m, _, b, g, y = (l || t).length,
                            A = a[y];
                        if (!A) {
                            if (!(g = "auto" === t.grid ? 0 : (t.grid || [1 / 0])[0])) {
                                for (_ = -1 / 0; _ < (_ = l[g++].getBoundingClientRect().left) && g < y;);
                                g--
                            }
                            for (A = a[y] = [], f = s ? Math.min(g, y) * u - .5 : r % g, c = s ? y * u / g - .5 : r / g | 0, _ = 0, b = 1 / 0, m = 0; m < y; m++) d = m % g - f, p = c - (m / g | 0), A[m] = v = o ? Math.abs("y" === o ? p : d) : Math.sqrt(d * d + p * p), v > _ && (_ = v), v < b && (b = v);
                            A.max = _ - b, A.min = b, A.v = y = t.amount || t.each * (g > y ? y - 1 : o ? "y" === o ? y / g : g : Math.max(g, y / g)) || 0, A.b = y < 0 ? n - y : n
                        }
                        return y = (A[e] - A.min) / A.max, A.b + (i ? i.getRatio(y) : y) * A.v
                    }
                },
                n = function(e, t, i) {
                    r.h.call(this, e, t, i), this._cycle = 0, this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._repeat && this._uncache(!0), this.render = n.prototype.render
                },
                a = r.h._internals,
                s = a.isSelector,
                o = a.isArray,
                u = n.prototype = r.h.to({}, .1, {}),
                h = [];
            n.version = "2.1.3", u.constructor = n, u.kill()._gc = !1, n.killTweensOf = n.killDelayedCallsTo = r.h.killTweensOf, n.getTweensOf = r.h.getTweensOf, n.lagSmoothing = r.h.lagSmoothing, n.ticker = r.h.ticker, n.render = r.h.render, n.distribute = i, u.invalidate = function() {
                return this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), r.h.prototype.invalidate.call(this)
            }, u.updateTo = function(e, t) {
                var i, n = this.ratio,
                    a = this.vars.immediateRender || e.immediateRender;
                for (i in t && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay)), e) this.vars[i] = e[i];
                if (this._initted || a)
                    if (t) this._initted = !1, a && this.render(0, !0, !0);
                    else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && r.h._onPluginEvent("_onDisable", this), this._time / this._duration > .998) {
                    var s = this._totalTime;
                    this.render(0, !0, !1), this._initted = !1, this.render(s, !0, !1)
                } else if (this._initted = !1, this._init(), this._time > 0 || a)
                    for (var o, u = 1 / (1 - n), h = this._firstPT; h;) o = h.s + h.c, h.c *= u, h.s = o - h.c, h = h._next;
                return this
            }, u.render = function(e, t, i) {
                this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
                var n, s, o, u, h, l, f, c, d, p = this._dirty ? this.totalDuration() : this._totalDuration,
                    v = this._time,
                    m = this._totalTime,
                    _ = this._cycle,
                    b = this._duration,
                    g = this._rawPrevTime;
                if (e >= p - 1e-8 && e >= 0 ? (this._totalTime = p, this._cycle = this._repeat, this._yoyo && 0 != (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = b, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (n = !0, s = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 === b && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (e = 0), (g < 0 || e <= 0 && e >= -1e-8 || 1e-8 === g && "isPause" !== this.data) && g !== e && (i = !0, g > 1e-8 && (s = "onReverseComplete")), this._rawPrevTime = c = !t || e || g === e ? e : 1e-8)) : e < 1e-8 ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== m || 0 === b && g > 0) && (s = "onReverseComplete", n = this._reversed), e > -1e-8 ? e = 0 : e < 0 && (this._active = !1, 0 === b && (this._initted || !this.vars.lazy || i) && (g >= 0 && (i = !0), this._rawPrevTime = c = !t || e || g === e ? e : 1e-8)), this._initted || (i = !0)) : (this._totalTime = this._time = e, 0 !== this._repeat && (u = b + this._repeatDelay, this._cycle = this._totalTime / u >> 0, 0 !== this._cycle && this._cycle === this._totalTime / u && m <= e && this._cycle--, this._time = this._totalTime - this._cycle * u, this._yoyo && 0 != (1 & this._cycle) && (this._time = b - this._time, (d = this._yoyoEase || this.vars.yoyoEase) && (this._yoyoEase || (!0 !== d || this._initted ? this._yoyoEase = d = !0 === d ? this._ease : d instanceof r.b ? d : r.b.map[d] : (d = this.vars.ease, this._yoyoEase = d = d ? d instanceof r.b ? d : "function" == typeof d ? new r.b(d, this.vars.easeParams) : r.b.map[d] || r.h.defaultEase : r.h.defaultEase)), this.ratio = d ? 1 - d.getRatio((b - this._time) / b) : 0)), this._time > b ? this._time = b : this._time < 0 && (this._time = 0)), this._easeType && !d ? (h = this._time / b, (1 === (l = this._easeType) || 3 === l && h >= .5) && (h = 1 - h), 3 === l && (h *= 2), 1 === (f = this._easePower) ? h *= h : 2 === f ? h *= h * h : 3 === f ? h *= h * h * h : 4 === f && (h *= h * h * h * h), this.ratio = 1 === l ? 1 - h : 2 === l ? h : this._time / b < .5 ? h / 2 : 1 - h / 2) : d || (this.ratio = this._ease.getRatio(this._time / b))), v !== this._time || i || _ !== this._cycle) {
                    if (!this._initted) {
                        if (this._init(), !this._initted || this._gc) return;
                        if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = v, this._totalTime = m, this._rawPrevTime = g, this._cycle = _, a.lazyTweens.push(this), void(this._lazy = [e, t]);
                        !this._time || n || d ? n && this._ease._calcEnd && !d && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / b)
                    }
                    for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== v && e >= 0 && (this._active = !0), 0 === m && (2 === this._initted && e > 0 && this._init(), this._startAt && (e >= 0 ? this._startAt.render(e, !0, i) : s || (s = "_dummyGS")), this.vars.onStart && (0 === this._totalTime && 0 !== b || t || this._callback("onStart"))), o = this._firstPT; o;) o.f ? o.t[o.p](o.c * this.ratio + o.s) : o.t[o.p] = o.c * this.ratio + o.s, o = o._next;
                    this._onUpdate && (e < 0 && this._startAt && this._startTime && this._startAt.render(e, !0, i), t || (this._totalTime !== m || s) && this._callback("onUpdate")), this._cycle !== _ && (t || this._gc || this.vars.onRepeat && this._callback("onRepeat")), s && (this._gc && !i || (e < 0 && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(e, !0, i), n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[s] && this._callback(s), 0 === b && 1e-8 === this._rawPrevTime && 1e-8 !== c && (this._rawPrevTime = 0)))
                } else m !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate"))
            }, n.to = function(e, t, i) {
                return new n(e, t, i)
            }, n.from = function(e, t, i) {
                return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new n(e, t, i)
            }, n.fromTo = function(e, t, i, r) {
                return r.startAt = i, r.immediateRender = 0 != r.immediateRender && 0 != i.immediateRender, new n(e, t, r)
            }, n.staggerTo = n.allTo = function(a, u, l, f, c, d, p) {
                var v, m, _, b, g = [],
                    y = i(l.stagger || f),
                    A = l.cycle,
                    w = (l.startAt || h).cycle;
                for (o(a) || ("string" == typeof a && (a = r.h.selector(a) || a), s(a) && (a = e(a))), v = (a = a || []).length - 1, _ = 0; _ <= v; _++) {
                    for (b in m = {}, l) m[b] = l[b];
                    if (A && (t(m, a, _), null != m.duration && (u = m.duration, delete m.duration)), w) {
                        for (b in w = m.startAt = {}, l.startAt) w[b] = l.startAt[b];
                        t(m.startAt, a, _)
                    }
                    m.delay = y(_, a[_], a) + (m.delay || 0), _ === v && c && (m.onComplete = function() {
                        l.onComplete && l.onComplete.apply(l.onCompleteScope || this, arguments), c.apply(p || l.callbackScope || this, d || h)
                    }), g[_] = new n(a[_], u, m)
                }
                return g
            }, n.staggerFrom = n.allFrom = function(e, t, i, r, a, s, o) {
                return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, n.staggerTo(e, t, i, r, a, s, o)
            }, n.staggerFromTo = n.allFromTo = function(e, t, i, r, a, s, o, u) {
                return r.startAt = i, r.immediateRender = 0 != r.immediateRender && 0 != i.immediateRender, n.staggerTo(e, t, r, a, s, o, u)
            }, n.delayedCall = function(e, t, i, r, a) {
                return new n(t, 0, {
                    delay: e,
                    onComplete: t,
                    onCompleteParams: i,
                    callbackScope: r,
                    onReverseComplete: t,
                    onReverseCompleteParams: i,
                    immediateRender: !1,
                    useFrames: a,
                    overwrite: 0
                })
            }, n.set = function(e, t) {
                return new n(e, 0, t)
            }, n.isTweening = function(e) {
                return r.h.getTweensOf(e, !0).length > 0
            };
            var l = function(e, t) {
                    for (var i = [], n = 0, a = e._first; a;) a instanceof r.h ? i[n++] = a : (t && (i[n++] = a), n = (i = i.concat(l(a, t))).length), a = a._next;
                    return i
                },
                f = n.getAllTweens = function(e) {
                    return l(r.a._rootTimeline, e).concat(l(r.a._rootFramesTimeline, e))
                };
            n.killAll = function(e, t, i, n) {
                null == t && (t = !0), null == i && (i = !0);
                var a, s, o, u = f(0 != n),
                    h = u.length,
                    l = t && i && n;
                for (o = 0; o < h; o++) s = u[o], (l || s instanceof r.e || (a = s.target === s.vars.onComplete) && i || t && !a) && (e ? s.totalTime(s._reversed ? 0 : s.totalDuration()) : s._enabled(!1, !1))
            }, n.killChildTweensOf = function(t, i) {
                if (null != t) {
                    var u, h, l, f, c, d = a.tweenLookup;
                    if ("string" == typeof t && (t = r.h.selector(t) || t), s(t) && (t = e(t)), o(t))
                        for (f = t.length; --f > -1;) n.killChildTweensOf(t[f], i);
                    else {
                        for (l in u = [], d)
                            for (h = d[l].target.parentNode; h;) h === t && (u = u.concat(d[l].tweens)), h = h.parentNode;
                        for (c = u.length, f = 0; f < c; f++) i && u[f].totalTime(u[f].totalDuration()), u[f]._enabled(!1, !1)
                    }
                }
            };
            var c = function(e, t, i, n) {
                t = !1 !== t, i = !1 !== i;
                for (var a, s, o = f(n = !1 !== n), u = t && i && n, h = o.length; --h > -1;) s = o[h], (u || s instanceof r.e || (a = s.target === s.vars.onComplete) && i || t && !a) && s.paused(e)
            };
            return n.pauseAll = function(e, t, i) {
                c(!0, e, t, i)
            }, n.resumeAll = function(e, t, i) {
                c(!1, e, t, i)
            }, n.globalTimeScale = function(e) {
                var t = r.a._rootTimeline,
                    i = r.h.ticker.time;
                return arguments.length ? (e = e || 1e-8, t._startTime = i - (i - t._startTime) * t._timeScale / e, t = r.a._rootFramesTimeline, i = r.h.ticker.frame, t._startTime = i - (i - t._startTime) * t._timeScale / e, t._timeScale = r.a._rootTimeline._timeScale = e, e) : t._timeScale
            }, u.progress = function(e, t) {
                return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this.duration() ? this._time / this._duration : this.ratio
            }, u.totalProgress = function(e, t) {
                return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration()
            }, u.time = function(e, t) {
                if (!arguments.length) return this._time;
                this._dirty && this.totalDuration();
                var i = this._duration,
                    r = this._cycle,
                    n = r * (i + this._repeatDelay);
                return e > i && (e = i), this.totalTime(this._yoyo && 1 & r ? i - e + n : this._repeat ? e + n : e, t)
            }, u.duration = function(e) {
                return arguments.length ? r.a.prototype.duration.call(this, e) : this._duration
            }, u.totalDuration = function(e) {
                return arguments.length ? -1 === this._repeat ? this : this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
            }, u.repeat = function(e) {
                return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
            }, u.repeatDelay = function(e) {
                return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
            }, u.yoyo = function(e) {
                return arguments.length ? (this._yoyo = e, this) : this._yoyo
            }, n
        }, !0);
        var n = r.i.TweenMax
    }, , , , function(e, t, i) {
        "use strict";
        var r = Object.prototype.hasOwnProperty,
            n = "~";

        function a() {}

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

        function o(e, t, i, r, a) {
            if ("function" != typeof i) throw new TypeError("The listener must be a function");
            var o = new s(i, r || e, a),
                u = n ? n + t : t;
            return e._events[u] ? e._events[u].fn ? e._events[u] = [e._events[u], o] : e._events[u].push(o) : (e._events[u] = o, e._eventsCount++), e
        }

        function u(e, t) {
            0 == --e._eventsCount ? e._events = new a : delete e._events[t]
        }

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

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

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

        function a(e, t) {
            if (!e) return e;
            t || (t = e);
            var i, r = e;
            do {
                if (i = !1, r.steiner || !b(r, r.next) && 0 !== _(r.prev, r, r.next)) r = r.next;
                else {
                    if (x(r), (r = t = r.prev) === r.next) break;
                    i = !0
                }
            } while (i || r !== t);
            return t
        }

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

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

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

        function h(e, t, i) {
            var r = e;
            do {
                var n = r.prev,
                    a = r.next.next;
                !b(n, a) && g(n, r, r.next, a) && y(n, a) && y(a, n) && (t.push(n.i / i), t.push(r.i / i), t.push(a.i / i), x(r), x(r.next), r = e = a), r = r.next
            } while (r !== e);
            return r
        }

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

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

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

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

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

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

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

        function _(e, t, i) {
            return (t.y - e.y) * (i.x - t.x) - (t.x - e.x) * (i.y - t.y)
        }

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

        function g(e, t, i, r) {
            return !!(b(e, t) && b(i, r) || b(e, r) && b(i, t)) || _(e, t, i) > 0 != _(e, t, r) > 0 && _(i, r, e) > 0 != _(i, r, t) > 0
        }

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

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

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

        function x(e) {
            e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ), e.nextZ && (e.nextZ.prevZ = e.prevZ)
        }

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

        function T(e, t, i, r) {
            for (var n = 0, a = t, s = i - r; a < i; a += r) n += (e[s] - e[a]) * (e[a + 1] + e[s + 1]), s = a;
            return n
        }
        e.exports = r, e.exports.default = r, r.deviation = function(e, t, i, r) {
            var n = t && t.length,
                a = n ? t[0] * i : e.length,
                s = Math.abs(T(e, 0, a, i));
            if (n)
                for (var o = 0, u = t.length; o < u; o++) {
                    var h = t[o] * i,
                        l = o < u - 1 ? t[o + 1] * i : e.length;
                    s -= Math.abs(T(e, h, l, i))
                }
            var f = 0;
            for (o = 0; o < r.length; o += 3) {
                var c = r[o] * i,
                    d = r[o + 1] * i,
                    p = r[o + 2] * i;
                f += Math.abs((e[c] - e[p]) * (e[d + 1] - e[c + 1]) - (e[c] - e[d]) * (e[p + 1] - e[c + 1]))
            }
            return 0 === s && 0 === f ? 0 : Math.abs((f - s) / s)
        }, r.flatten = function(e) {
            for (var t = e[0][0].length, i = {
                    vertices: [],
                    holes: [],
                    dimensions: t
                }, r = 0, n = 0; n < e.length; n++) {
                for (var a = 0; a < e[n].length; a++)
                    for (var s = 0; s < t; s++) i.vertices.push(e[n][a][s]);
                n > 0 && (r += e[n - 1].length, i.holes.push(r))
            }
            return i
        }
    }, , , , , , , , , , , , , , , , function(e, t, i) {
        (function(r, n) {
            var a;
            ! function(r) {
                var s = r.Promise,
                    o = s && "resolve" in s && "reject" in s && "all" in s && "race" in s && function() {
                        var e;
                        return new s(function(t) {
                            e = t
                        }), "function" == typeof e
                    }();
                t ? (t.Promise = o ? s : S, t.Polyfill = S) : void 0 === (a = function() {
                    return o ? s : S
                }.call(t, i, t, e)) || (e.exports = a);
                var u = "pending",
                    h = "sealed",
                    l = "fulfilled",
                    f = "rejected",
                    c = function() {};

                function d(e) {
                    return "[object Array]" === Object.prototype.toString.call(e)
                }
                var p, v = void 0 !== n ? n : setTimeout,
                    m = [];

                function _() {
                    for (var e = 0; e < m.length; e++) m[e][0](m[e][1]);
                    m = [], p = !1
                }

                function b(e, t) {
                    m.push([e, t]), p || (p = !0, v(_, 0))
                }

                function g(e) {
                    var t = e.owner,
                        i = t.state_,
                        r = t.data_,
                        n = e[i],
                        a = e.then;
                    if ("function" == typeof n) {
                        i = l;
                        try {
                            r = n(r)
                        } catch (e) {
                            x(a, e)
                        }
                    }
                    y(a, r) || (i === l && A(a, r), i === f && x(a, r))
                }

                function y(e, t) {
                    var i;
                    try {
                        if (e === t) throw new TypeError("A promises callback cannot return that same promise.");
                        if (t && ("function" == typeof t || "object" == typeof t)) {
                            var r = t.then;
                            if ("function" == typeof r) return r.call(t, function(r) {
                                i || (i = !0, t !== r ? A(e, r) : w(e, r))
                            }, function(t) {
                                i || (i = !0, x(e, t))
                            }), !0
                        }
                    } catch (t) {
                        return i || x(e, t), !0
                    }
                    return !1
                }

                function A(e, t) {
                    e !== t && y(e, t) || w(e, t)
                }

                function w(e, t) {
                    e.state_ === u && (e.state_ = h, e.data_ = t, b(T, e))
                }

                function x(e, t) {
                    e.state_ === u && (e.state_ = h, e.data_ = t, b(E, e))
                }

                function k(e) {
                    var t = e.then_;
                    e.then_ = void 0;
                    for (var i = 0; i < t.length; i++) g(t[i])
                }

                function T(e) {
                    e.state_ = l, k(e)
                }

                function E(e) {
                    e.state_ = f, k(e)
                }

                function S(e) {
                    if ("function" != typeof e) throw new TypeError("Promise constructor takes a function argument");
                    if (this instanceof S == !1) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
                    this.then_ = [],
                        function(e, t) {
                            function i(e) {
                                x(t, e)
                            }
                            try {
                                e(function(e) {
                                    A(t, e)
                                }, i)
                            } catch (e) {
                                i(e)
                            }
                        }(e, this)
                }
                S.prototype = {
                    constructor: S,
                    state_: u,
                    then_: null,
                    data_: void 0,
                    then: function(e, t) {
                        var i = {
                            owner: this,
                            then: new this.constructor(c),
                            fulfilled: e,
                            rejected: t
                        };
                        return this.state_ === l || this.state_ === f ? b(g, i) : this.then_.push(i), i.then
                    },
                    catch: function(e) {
                        return this.then(null, e)
                    }
                }, S.all = function(e) {
                    if (!d(e)) throw new TypeError("You must pass an array to Promise.all().");
                    return new this(function(t, i) {
                        var r = [],
                            n = 0;

                        function a(e) {
                            return n++,
                                function(i) {
                                    r[e] = i, --n || t(r)
                                }
                        }
                        for (var s, o = 0; o < e.length; o++)(s = e[o]) && "function" == typeof s.then ? s.then(a(o), i) : r[o] = s;
                        n || t(r)
                    })
                }, S.race = function(e) {
                    if (!d(e)) throw new TypeError("You must pass an array to Promise.race().");
                    return new this(function(t, i) {
                        for (var r, n = 0; n < e.length; n++)(r = e[n]) && "function" == typeof r.then ? r.then(t, i) : t(r)
                    })
                }, S.resolve = function(e) {
                    return e && "object" == typeof e && e.constructor === this ? e : new this(function(t) {
                        t(e)
                    })
                }, S.reject = function(e) {
                    return new this(function(t, i) {
                        i(e)
                    })
                }
            }("undefined" != typeof window ? window : void 0 !== r ? r : "undefined" != typeof self ? self : this)
        }).call(this, i(54), i(204).setImmediate)
    }, function(e, t, i) {
        "use strict";
        /*
        object-assign
        (c) Sindre Sorhus
        @license MIT
        */
        var r = Object.getOwnPropertySymbols,
            n = Object.prototype.hasOwnProperty,
            a = Object.prototype.propertyIsEnumerable;

        function s(e) {
            if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined");
            return Object(e)
        }
        e.exports = function() {
            try {
                if (!Object.assign) return !1;
                var e = new String("abc");
                if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1;
                for (var t = {}, i = 0; i < 10; i++) t["_" + String.fromCharCode(i)] = i;
                if ("0123456789" !== Object.getOwnPropertyNames(t).map(function(e) {
                        return t[e]
                    }).join("")) return !1;
                var r = {};
                return "abcdefghijklmnopqrst".split("").forEach(function(e) {
                    r[e] = e
                }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("")
            } catch (e) {
                return !1
            }
        }() ? Object.assign : function(e, t) {
            for (var i, o, u = s(e), h = 1; h < arguments.length; h++) {
                for (var l in i = Object(arguments[h])) n.call(i, l) && (u[l] = i[l]);
                if (r) {
                    o = r(i);
                    for (var f = 0; f < o.length; f++) a.call(i, o[f]) && (u[o[f]] = i[o[f]])
                }
            }
            return u
        }
    }, , , , , , , , , , function(e, t, i) {
        ! function() {
            function t(e, t) {
                document.addEventListener ? e.addEventListener("scroll", t, !1) : e.attachEvent("scroll", t)
            }

            function i(e) {
                this.a = document.createElement("div"), this.a.setAttribute("aria-hidden", "true"), this.a.appendChild(document.createTextNode(e)), this.b = document.createElement("span"), this.c = document.createElement("span"), this.h = document.createElement("span"), this.f = document.createElement("span"), this.g = -1, this.b.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.c.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.f.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;", this.h.style.cssText = "display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;", this.b.appendChild(this.h), this.c.appendChild(this.f), this.a.appendChild(this.b), this.a.appendChild(this.c)
            }

            function r(e, t) {
                e.a.style.cssText = "max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:" + t + ";"
            }

            function n(e) {
                var t = e.a.offsetWidth,
                    i = t + 100;
                return e.f.style.width = i + "px", e.c.scrollLeft = i, e.b.scrollLeft = e.b.scrollWidth + 100, e.g !== t && (e.g = t, !0)
            }

            function a(e, i) {
                function r() {
                    var e = a;
                    n(e) && e.a.parentNode && i(e.g)
                }
                var a = e;
                t(e.b, r), t(e.c, r), n(e)
            }

            function s(e, t) {
                var i = t || {};
                this.family = e, this.style = i.style || "normal", this.weight = i.weight || "normal", this.stretch = i.stretch || "normal"
            }
            var o = null,
                u = null,
                h = null,
                l = null;

            function f() {
                return null === l && (l = !!document.fonts), l
            }

            function c() {
                if (null === h) {
                    var e = document.createElement("div");
                    try {
                        e.style.font = "condensed 100px sans-serif"
                    } catch (e) {}
                    h = "" !== e.style.font
                }
                return h
            }

            function d(e, t) {
                return [e.style, e.weight, c() ? e.stretch : "", "100px", t].join(" ")
            }
            s.prototype.load = function(e, t) {
                var n = this,
                    s = e || "BESbswy",
                    h = 0,
                    l = t || 3e3,
                    c = (new Date).getTime();
                return new Promise(function(e, t) {
                    if (f() && ! function() {
                            if (null === u)
                                if (f() && /Apple/.test(window.navigator.vendor)) {
                                    var e = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);
                                    u = !!e && 603 > parseInt(e[1], 10)
                                } else u = !1;
                            return u
                        }()) {
                        var p = new Promise(function(e, t) {
                                ! function i() {
                                    (new Date).getTime() - c >= l ? t(Error(l + "ms timeout exceeded")) : document.fonts.load(d(n, '"' + n.family + '"'), s).then(function(t) {
                                        1 <= t.length ? e() : setTimeout(i, 25)
                                    }, t)
                                }()
                            }),
                            v = new Promise(function(e, t) {
                                h = setTimeout(function() {
                                    t(Error(l + "ms timeout exceeded"))
                                }, l)
                            });
                        Promise.race([v, p]).then(function() {
                            clearTimeout(h), e(n)
                        }, t)
                    } else ! function(e) {
                        document.body ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", function t() {
                            document.removeEventListener("DOMContentLoaded", t), e()
                        }) : document.attachEvent("onreadystatechange", function t() {
                            "interactive" != document.readyState && "complete" != document.readyState || (document.detachEvent("onreadystatechange", t), e())
                        })
                    }(function() {
                        function u() {
                            var t;
                            (t = -1 != m && -1 != _ || -1 != m && -1 != b || -1 != _ && -1 != b) && ((t = m != _ && m != b && _ != b) || (null === o && (t = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), o = !!t && (536 > parseInt(t[1], 10) || 536 === parseInt(t[1], 10) && 11 >= parseInt(t[2], 10))), t = o && (m == g && _ == g && b == g || m == y && _ == y && b == y || m == A && _ == A && b == A)), t = !t), t && (w.parentNode && w.parentNode.removeChild(w), clearTimeout(h), e(n))
                        }
                        var f = new i(s),
                            p = new i(s),
                            v = new i(s),
                            m = -1,
                            _ = -1,
                            b = -1,
                            g = -1,
                            y = -1,
                            A = -1,
                            w = document.createElement("div");
                        w.dir = "ltr", r(f, d(n, "sans-serif")), r(p, d(n, "serif")), r(v, d(n, "monospace")), w.appendChild(f.a), w.appendChild(p.a), w.appendChild(v.a), document.body.appendChild(w), g = f.a.offsetWidth, y = p.a.offsetWidth, A = v.a.offsetWidth,
                            function e() {
                                if ((new Date).getTime() - c >= l) w.parentNode && w.parentNode.removeChild(w), t(Error(l + "ms timeout exceeded"));
                                else {
                                    var i = document.hidden;
                                    !0 !== i && void 0 !== i || (m = f.a.offsetWidth, _ = p.a.offsetWidth, b = v.a.offsetWidth, u()), h = setTimeout(e, 50)
                                }
                            }(), a(f, function(e) {
                                m = e, u()
                            }), r(f, d(n, '"' + n.family + '",sans-serif')), a(p, function(e) {
                                _ = e, u()
                            }), r(p, d(n, '"' + n.family + '",serif')), a(v, function(e) {
                                b = e, u()
                            }), r(v, d(n, '"' + n.family + '",monospace'))
                    })
                })
            }, e.exports = s
        }()
    }, , , , , function(e, t, i) {
        e.exports = function(e) {
            var t = {};

            function i(r) {
                if (t[r]) return t[r].exports;
                var n = t[r] = {
                    i: r,
                    l: !1,
                    exports: {}
                };
                return e[r].call(n.exports, n, n.exports, i), n.l = !0, n.exports
            }
            return i.m = e, i.c = t, i.d = function(e, t, r) {
                i.o(e, t) || Object.defineProperty(e, t, {
                    enumerable: !0,
                    get: r
                })
            }, i.r = function(e) {
                "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
                    value: "Module"
                }), Object.defineProperty(e, "__esModule", {
                    value: !0
                })
            }, i.t = function(e, t) {
                if (1 & t && (e = i(e)), 8 & t) return e;
                if (4 & t && "object" == typeof e && e && e.__esModule) return e;
                var r = Object.create(null);
                if (i.r(r), Object.defineProperty(r, "default", {
                        enumerable: !0,
                        value: e
                    }), 2 & t && "string" != typeof e)
                    for (var n in e) i.d(r, n, function(t) {
                        return e[t]
                    }.bind(null, n));
                return r
            }, i.n = function(e) {
                var t = e && e.__esModule ? function() {
                    return e.default
                } : function() {
                    return e
                };
                return i.d(t, "a", t), t
            }, i.o = function(e, t) {
                return Object.prototype.hasOwnProperty.call(e, t)
            }, i.p = "", i(i.s = 90)
        }({
            17: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r = i(18),
                    n = function() {
                        function e() {}
                        return e.getFirstMatch = function(e, t) {
                            var i = t.match(e);
                            return i && i.length > 0 && i[1] || ""
                        }, e.getSecondMatch = function(e, t) {
                            var i = t.match(e);
                            return i && i.length > 1 && i[2] || ""
                        }, e.matchAndReturnConst = function(e, t, i) {
                            if (e.test(t)) return i
                        }, e.getWindowsVersionName = function(e) {
                            switch (e) {
                                case "NT":
                                    return "NT";
                                case "XP":
                                    return "XP";
                                case "NT 5.0":
                                    return "2000";
                                case "NT 5.1":
                                    return "XP";
                                case "NT 5.2":
                                    return "2003";
                                case "NT 6.0":
                                    return "Vista";
                                case "NT 6.1":
                                    return "7";
                                case "NT 6.2":
                                    return "8";
                                case "NT 6.3":
                                    return "8.1";
                                case "NT 10.0":
                                    return "10";
                                default:
                                    return
                            }
                        }, e.getMacOSVersionName = function(e) {
                            var t = e.split(".").splice(0, 2).map(function(e) {
                                return parseInt(e, 10) || 0
                            });
                            if (t.push(0), 10 === t[0]) switch (t[1]) {
                                case 5:
                                    return "Leopard";
                                case 6:
                                    return "Snow Leopard";
                                case 7:
                                    return "Lion";
                                case 8:
                                    return "Mountain Lion";
                                case 9:
                                    return "Mavericks";
                                case 10:
                                    return "Yosemite";
                                case 11:
                                    return "El Capitan";
                                case 12:
                                    return "Sierra";
                                case 13:
                                    return "High Sierra";
                                case 14:
                                    return "Mojave";
                                case 15:
                                    return "Catalina";
                                default:
                                    return
                            }
                        }, e.getAndroidVersionName = function(e) {
                            var t = e.split(".").splice(0, 2).map(function(e) {
                                return parseInt(e, 10) || 0
                            });
                            if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? "Cupcake" : 1 === t[0] && t[1] >= 6 ? "Donut" : 2 === t[0] && t[1] < 2 ? "Eclair" : 2 === t[0] && 2 === t[1] ? "Froyo" : 2 === t[0] && t[1] > 2 ? "Gingerbread" : 3 === t[0] ? "Honeycomb" : 4 === t[0] && t[1] < 1 ? "Ice Cream Sandwich" : 4 === t[0] && t[1] < 4 ? "Jelly Bean" : 4 === t[0] && t[1] >= 4 ? "KitKat" : 5 === t[0] ? "Lollipop" : 6 === t[0] ? "Marshmallow" : 7 === t[0] ? "Nougat" : 8 === t[0] ? "Oreo" : 9 === t[0] ? "Pie" : void 0
                        }, e.getVersionPrecision = function(e) {
                            return e.split(".").length
                        }, e.compareVersions = function(t, i, r) {
                            void 0 === r && (r = !1);
                            var n = e.getVersionPrecision(t),
                                a = e.getVersionPrecision(i),
                                s = Math.max(n, a),
                                o = 0,
                                u = e.map([t, i], function(t) {
                                    var i = s - e.getVersionPrecision(t),
                                        r = t + new Array(i + 1).join(".0");
                                    return e.map(r.split("."), function(e) {
                                        return new Array(20 - e.length).join("0") + e
                                    }).reverse()
                                });
                            for (r && (o = s - Math.min(n, a)), s -= 1; s >= o;) {
                                if (u[0][s] > u[1][s]) return 1;
                                if (u[0][s] === u[1][s]) {
                                    if (s === o) return 0;
                                    s -= 1
                                } else if (u[0][s] < u[1][s]) return -1
                            }
                        }, e.map = function(e, t) {
                            var i, r = [];
                            if (Array.prototype.map) return Array.prototype.map.call(e, t);
                            for (i = 0; i < e.length; i += 1) r.push(t(e[i]));
                            return r
                        }, e.find = function(e, t) {
                            var i, r;
                            if (Array.prototype.find) return Array.prototype.find.call(e, t);
                            for (i = 0, r = e.length; i < r; i += 1) {
                                var n = e[i];
                                if (t(n, i)) return n
                            }
                        }, e.assign = function(e) {
                            for (var t, i, r = e, n = arguments.length, a = new Array(n > 1 ? n - 1 : 0), s = 1; s < n; s++) a[s - 1] = arguments[s];
                            if (Object.assign) return Object.assign.apply(Object, [e].concat(a));
                            var o = function() {
                                var e = a[t];
                                "object" == typeof e && null !== e && Object.keys(e).forEach(function(t) {
                                    r[t] = e[t]
                                })
                            };
                            for (t = 0, i = a.length; t < i; t += 1) o();
                            return e
                        }, e.getBrowserAlias = function(e) {
                            return r.BROWSER_ALIASES_MAP[e]
                        }, e.getBrowserTypeByAlias = function(e) {
                            return r.BROWSER_MAP[e] || ""
                        }, e
                    }();
                t.default = n, e.exports = t.default
            },
            18: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0, t.BROWSER_ALIASES_MAP = {
                    "Amazon Silk": "amazon_silk",
                    "Android Browser": "android",
                    Bada: "bada",
                    BlackBerry: "blackberry",
                    Chrome: "chrome",
                    Chromium: "chromium",
                    Electron: "electron",
                    Epiphany: "epiphany",
                    Firefox: "firefox",
                    Focus: "focus",
                    Generic: "generic",
                    "Google Search": "google_search",
                    Googlebot: "googlebot",
                    "Internet Explorer": "ie",
                    "K-Meleon": "k_meleon",
                    Maxthon: "maxthon",
                    "Microsoft Edge": "edge",
                    "MZ Browser": "mz",
                    "NAVER Whale Browser": "naver",
                    Opera: "opera",
                    "Opera Coast": "opera_coast",
                    PhantomJS: "phantomjs",
                    Puffin: "puffin",
                    QupZilla: "qupzilla",
                    QQ: "qq",
                    QQLite: "qqlite",
                    Safari: "safari",
                    Sailfish: "sailfish",
                    "Samsung Internet for Android": "samsung_internet",
                    SeaMonkey: "seamonkey",
                    Sleipnir: "sleipnir",
                    Swing: "swing",
                    Tizen: "tizen",
                    "UC Browser": "uc",
                    Vivaldi: "vivaldi",
                    "WebOS Browser": "webos",
                    WeChat: "wechat",
                    "Yandex Browser": "yandex",
                    Roku: "roku"
                }, t.BROWSER_MAP = {
                    amazon_silk: "Amazon Silk",
                    android: "Android Browser",
                    bada: "Bada",
                    blackberry: "BlackBerry",
                    chrome: "Chrome",
                    chromium: "Chromium",
                    electron: "Electron",
                    epiphany: "Epiphany",
                    firefox: "Firefox",
                    focus: "Focus",
                    generic: "Generic",
                    googlebot: "Googlebot",
                    google_search: "Google Search",
                    ie: "Internet Explorer",
                    k_meleon: "K-Meleon",
                    maxthon: "Maxthon",
                    edge: "Microsoft Edge",
                    mz: "MZ Browser",
                    naver: "NAVER Whale Browser",
                    opera: "Opera",
                    opera_coast: "Opera Coast",
                    phantomjs: "PhantomJS",
                    puffin: "Puffin",
                    qupzilla: "QupZilla",
                    qq: "QQ Browser",
                    qqlite: "QQ Browser Lite",
                    safari: "Safari",
                    sailfish: "Sailfish",
                    samsung_internet: "Samsung Internet for Android",
                    seamonkey: "SeaMonkey",
                    sleipnir: "Sleipnir",
                    swing: "Swing",
                    tizen: "Tizen",
                    uc: "UC Browser",
                    vivaldi: "Vivaldi",
                    webos: "WebOS Browser",
                    wechat: "WeChat",
                    yandex: "Yandex Browser"
                }, t.PLATFORMS_MAP = {
                    tablet: "tablet",
                    mobile: "mobile",
                    desktop: "desktop",
                    tv: "tv"
                }, t.OS_MAP = {
                    WindowsPhone: "Windows Phone",
                    Windows: "Windows",
                    MacOS: "macOS",
                    iOS: "iOS",
                    Android: "Android",
                    WebOS: "WebOS",
                    BlackBerry: "BlackBerry",
                    Bada: "Bada",
                    Tizen: "Tizen",
                    Linux: "Linux",
                    ChromeOS: "Chrome OS",
                    PlayStation4: "PlayStation 4",
                    Roku: "Roku"
                }, t.ENGINE_MAP = {
                    EdgeHTML: "EdgeHTML",
                    Blink: "Blink",
                    Trident: "Trident",
                    Presto: "Presto",
                    Gecko: "Gecko",
                    WebKit: "WebKit"
                }
            },
            90: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r, n = (r = i(91)) && r.__esModule ? r : {
                        default: r
                    },
                    a = i(18);

                function s(e, t) {
                    for (var i = 0; i < t.length; i++) {
                        var r = t[i];
                        r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
                    }
                }
                var o = function() {
                    function e() {}
                    var t, i;
                    return e.getParser = function(e, t) {
                        if (void 0 === t && (t = !1), "string" != typeof e) throw new Error("UserAgent should be a string");
                        return new n.default(e, t)
                    }, e.parse = function(e) {
                        return new n.default(e).getResult()
                    }, t = e, (i = [{
                        key: "BROWSER_MAP",
                        get: function() {
                            return a.BROWSER_MAP
                        }
                    }, {
                        key: "ENGINE_MAP",
                        get: function() {
                            return a.ENGINE_MAP
                        }
                    }, {
                        key: "OS_MAP",
                        get: function() {
                            return a.OS_MAP
                        }
                    }, {
                        key: "PLATFORMS_MAP",
                        get: function() {
                            return a.PLATFORMS_MAP
                        }
                    }]) && s(t, i), e
                }();
                t.default = o, e.exports = t.default
            },
            91: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r = u(i(92)),
                    n = u(i(93)),
                    a = u(i(94)),
                    s = u(i(95)),
                    o = u(i(17));

                function u(e) {
                    return e && e.__esModule ? e : {
                        default: e
                    }
                }
                var h = function() {
                    function e(e, t) {
                        if (void 0 === t && (t = !1), null == e || "" === e) throw new Error("UserAgent parameter can't be empty");
                        this._ua = e, this.parsedResult = {}, !0 !== t && this.parse()
                    }
                    var t = e.prototype;
                    return t.getUA = function() {
                        return this._ua
                    }, t.test = function(e) {
                        return e.test(this._ua)
                    }, t.parseBrowser = function() {
                        var e = this;
                        this.parsedResult.browser = {};
                        var t = o.default.find(r.default, function(t) {
                            if ("function" == typeof t.test) return t.test(e);
                            if (t.test instanceof Array) return t.test.some(function(t) {
                                return e.test(t)
                            });
                            throw new Error("Browser's test function is not valid")
                        });
                        return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser
                    }, t.getBrowser = function() {
                        return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser()
                    }, t.getBrowserName = function(e) {
                        return e ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || ""
                    }, t.getBrowserVersion = function() {
                        return this.getBrowser().version
                    }, t.getOS = function() {
                        return this.parsedResult.os ? this.parsedResult.os : this.parseOS()
                    }, t.parseOS = function() {
                        var e = this;
                        this.parsedResult.os = {};
                        var t = o.default.find(n.default, function(t) {
                            if ("function" == typeof t.test) return t.test(e);
                            if (t.test instanceof Array) return t.test.some(function(t) {
                                return e.test(t)
                            });
                            throw new Error("Browser's test function is not valid")
                        });
                        return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os
                    }, t.getOSName = function(e) {
                        var t = this.getOS().name;
                        return e ? String(t).toLowerCase() || "" : t || ""
                    }, t.getOSVersion = function() {
                        return this.getOS().version
                    }, t.getPlatform = function() {
                        return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform()
                    }, t.getPlatformType = function(e) {
                        void 0 === e && (e = !1);
                        var t = this.getPlatform().type;
                        return e ? String(t).toLowerCase() || "" : t || ""
                    }, t.parsePlatform = function() {
                        var e = this;
                        this.parsedResult.platform = {};
                        var t = o.default.find(a.default, function(t) {
                            if ("function" == typeof t.test) return t.test(e);
                            if (t.test instanceof Array) return t.test.some(function(t) {
                                return e.test(t)
                            });
                            throw new Error("Browser's test function is not valid")
                        });
                        return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform
                    }, t.getEngine = function() {
                        return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine()
                    }, t.getEngineName = function(e) {
                        return e ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || ""
                    }, t.parseEngine = function() {
                        var e = this;
                        this.parsedResult.engine = {};
                        var t = o.default.find(s.default, function(t) {
                            if ("function" == typeof t.test) return t.test(e);
                            if (t.test instanceof Array) return t.test.some(function(t) {
                                return e.test(t)
                            });
                            throw new Error("Browser's test function is not valid")
                        });
                        return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine
                    }, t.parse = function() {
                        return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this
                    }, t.getResult = function() {
                        return o.default.assign({}, this.parsedResult)
                    }, t.satisfies = function(e) {
                        var t = this,
                            i = {},
                            r = 0,
                            n = {},
                            a = 0;
                        if (Object.keys(e).forEach(function(t) {
                                var s = e[t];
                                "string" == typeof s ? (n[t] = s, a += 1) : "object" == typeof s && (i[t] = s, r += 1)
                            }), r > 0) {
                            var s = Object.keys(i),
                                u = o.default.find(s, function(e) {
                                    return t.isOS(e)
                                });
                            if (u) {
                                var h = this.satisfies(i[u]);
                                if (void 0 !== h) return h
                            }
                            var l = o.default.find(s, function(e) {
                                return t.isPlatform(e)
                            });
                            if (l) {
                                var f = this.satisfies(i[l]);
                                if (void 0 !== f) return f
                            }
                        }
                        if (a > 0) {
                            var c = Object.keys(n),
                                d = o.default.find(c, function(e) {
                                    return t.isBrowser(e, !0)
                                });
                            if (void 0 !== d) return this.compareVersion(n[d])
                        }
                    }, t.isBrowser = function(e, t) {
                        void 0 === t && (t = !1);
                        var i = this.getBrowserName().toLowerCase(),
                            r = e.toLowerCase(),
                            n = o.default.getBrowserTypeByAlias(r);
                        return t && n && (r = n.toLowerCase()), r === i
                    }, t.compareVersion = function(e) {
                        var t = [0],
                            i = e,
                            r = !1,
                            n = this.getBrowserVersion();
                        if ("string" == typeof n) return ">" === e[0] || "<" === e[0] ? (i = e.substr(1), "=" === e[1] ? (r = !0, i = e.substr(2)) : t = [], ">" === e[0] ? t.push(1) : t.push(-1)) : "=" === e[0] ? i = e.substr(1) : "~" === e[0] && (r = !0, i = e.substr(1)), t.indexOf(o.default.compareVersions(n, i, r)) > -1
                    }, t.isOS = function(e) {
                        return this.getOSName(!0) === String(e).toLowerCase()
                    }, t.isPlatform = function(e) {
                        return this.getPlatformType(!0) === String(e).toLowerCase()
                    }, t.isEngine = function(e) {
                        return this.getEngineName(!0) === String(e).toLowerCase()
                    }, t.is = function(e) {
                        return this.isBrowser(e) || this.isOS(e) || this.isPlatform(e)
                    }, t.some = function(e) {
                        var t = this;
                        return void 0 === e && (e = []), e.some(function(e) {
                            return t.is(e)
                        })
                    }, e
                }();
                t.default = h, e.exports = t.default
            },
            92: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r, n = (r = i(17)) && r.__esModule ? r : {
                        default: r
                    },
                    a = /version\/(\d+(\.?_?\d+)+)/i,
                    s = [{
                        test: [/googlebot/i],
                        describe: function(e) {
                            var t = {
                                    name: "Googlebot"
                                },
                                i = n.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/opera/i],
                        describe: function(e) {
                            var t = {
                                    name: "Opera"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/opr\/|opios/i],
                        describe: function(e) {
                            var t = {
                                    name: "Opera"
                                },
                                i = n.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/SamsungBrowser/i],
                        describe: function(e) {
                            var t = {
                                    name: "Samsung Internet for Android"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/Whale/i],
                        describe: function(e) {
                            var t = {
                                    name: "NAVER Whale Browser"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/MZBrowser/i],
                        describe: function(e) {
                            var t = {
                                    name: "MZ Browser"
                                },
                                i = n.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/focus/i],
                        describe: function(e) {
                            var t = {
                                    name: "Focus"
                                },
                                i = n.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/swing/i],
                        describe: function(e) {
                            var t = {
                                    name: "Swing"
                                },
                                i = n.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/coast/i],
                        describe: function(e) {
                            var t = {
                                    name: "Opera Coast"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/yabrowser/i],
                        describe: function(e) {
                            var t = {
                                    name: "Yandex Browser"
                                },
                                i = n.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/ucbrowser/i],
                        describe: function(e) {
                            var t = {
                                    name: "UC Browser"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/Maxthon|mxios/i],
                        describe: function(e) {
                            var t = {
                                    name: "Maxthon"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/epiphany/i],
                        describe: function(e) {
                            var t = {
                                    name: "Epiphany"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/puffin/i],
                        describe: function(e) {
                            var t = {
                                    name: "Puffin"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/sleipnir/i],
                        describe: function(e) {
                            var t = {
                                    name: "Sleipnir"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/k-meleon/i],
                        describe: function(e) {
                            var t = {
                                    name: "K-Meleon"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/micromessenger/i],
                        describe: function(e) {
                            var t = {
                                    name: "WeChat"
                                },
                                i = n.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/qqbrowser/i],
                        describe: function(e) {
                            var t = {
                                    name: /qqbrowserlite/i.test(e) ? "QQ Browser Lite" : "QQ Browser"
                                },
                                i = n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/msie|trident/i],
                        describe: function(e) {
                            var t = {
                                    name: "Internet Explorer"
                                },
                                i = n.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/\sedg\//i],
                        describe: function(e) {
                            var t = {
                                    name: "Microsoft Edge"
                                },
                                i = n.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/edg([ea]|ios)/i],
                        describe: function(e) {
                            var t = {
                                    name: "Microsoft Edge"
                                },
                                i = n.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/vivaldi/i],
                        describe: function(e) {
                            var t = {
                                    name: "Vivaldi"
                                },
                                i = n.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/seamonkey/i],
                        describe: function(e) {
                            var t = {
                                    name: "SeaMonkey"
                                },
                                i = n.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/sailfish/i],
                        describe: function(e) {
                            var t = {
                                    name: "Sailfish"
                                },
                                i = n.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/silk/i],
                        describe: function(e) {
                            var t = {
                                    name: "Amazon Silk"
                                },
                                i = n.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/phantom/i],
                        describe: function(e) {
                            var t = {
                                    name: "PhantomJS"
                                },
                                i = n.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/slimerjs/i],
                        describe: function(e) {
                            var t = {
                                    name: "SlimerJS"
                                },
                                i = n.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
                        describe: function(e) {
                            var t = {
                                    name: "BlackBerry"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/(web|hpw)[o0]s/i],
                        describe: function(e) {
                            var t = {
                                    name: "WebOS Browser"
                                },
                                i = n.default.getFirstMatch(a, e) || n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/bada/i],
                        describe: function(e) {
                            var t = {
                                    name: "Bada"
                                },
                                i = n.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/tizen/i],
                        describe: function(e) {
                            var t = {
                                    name: "Tizen"
                                },
                                i = n.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/qupzilla/i],
                        describe: function(e) {
                            var t = {
                                    name: "QupZilla"
                                },
                                i = n.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/firefox|iceweasel|fxios/i],
                        describe: function(e) {
                            var t = {
                                    name: "Firefox"
                                },
                                i = n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/electron/i],
                        describe: function(e) {
                            var t = {
                                    name: "Electron"
                                },
                                i = n.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/chromium/i],
                        describe: function(e) {
                            var t = {
                                    name: "Chromium"
                                },
                                i = n.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e) || n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/chrome|crios|crmo/i],
                        describe: function(e) {
                            var t = {
                                    name: "Chrome"
                                },
                                i = n.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/GSA/i],
                        describe: function(e) {
                            var t = {
                                    name: "Google Search"
                                },
                                i = n.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: function(e) {
                            var t = !e.test(/like android/i),
                                i = e.test(/android/i);
                            return t && i
                        },
                        describe: function(e) {
                            var t = {
                                    name: "Android Browser"
                                },
                                i = n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/playstation 4/i],
                        describe: function(e) {
                            var t = {
                                    name: "PlayStation 4"
                                },
                                i = n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/safari|applewebkit/i],
                        describe: function(e) {
                            var t = {
                                    name: "Safari"
                                },
                                i = n.default.getFirstMatch(a, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/.*/i],
                        describe: function(e) {
                            var t = -1 !== e.search("\\(") ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /;
                            return {
                                name: n.default.getFirstMatch(t, e),
                                version: n.default.getSecondMatch(t, e)
                            }
                        }
                    }];
                t.default = s, e.exports = t.default
            },
            93: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r, n = (r = i(17)) && r.__esModule ? r : {
                        default: r
                    },
                    a = i(18),
                    s = [{
                        test: [/Roku\/DVP/],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e);
                            return {
                                name: a.OS_MAP.Roku,
                                version: t
                            }
                        }
                    }, {
                        test: [/windows phone/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e);
                            return {
                                name: a.OS_MAP.WindowsPhone,
                                version: t
                            }
                        }
                    }, {
                        test: [/windows /i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e),
                                i = n.default.getWindowsVersionName(t);
                            return {
                                name: a.OS_MAP.Windows,
                                version: t,
                                versionName: i
                            }
                        }
                    }, {
                        test: [/Macintosh(.*?) FxiOS(.*?) Version\//],
                        describe: function(e) {
                            var t = n.default.getSecondMatch(/(Version\/)(\d[\d.]+)/, e);
                            return {
                                name: a.OS_MAP.iOS,
                                version: t
                            }
                        }
                    }, {
                        test: [/macintosh/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e).replace(/[_\s]/g, "."),
                                i = n.default.getMacOSVersionName(t),
                                r = {
                                    name: a.OS_MAP.MacOS,
                                    version: t
                                };
                            return i && (r.versionName = i), r
                        }
                    }, {
                        test: [/(ipod|iphone|ipad)/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e).replace(/[_\s]/g, ".");
                            return {
                                name: a.OS_MAP.iOS,
                                version: t
                            }
                        }
                    }, {
                        test: function(e) {
                            var t = !e.test(/like android/i),
                                i = e.test(/android/i);
                            return t && i
                        },
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e),
                                i = n.default.getAndroidVersionName(t),
                                r = {
                                    name: a.OS_MAP.Android,
                                    version: t
                                };
                            return i && (r.versionName = i), r
                        }
                    }, {
                        test: [/(web|hpw)[o0]s/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e),
                                i = {
                                    name: a.OS_MAP.WebOS
                                };
                            return t && t.length && (i.version = t), i
                        }
                    }, {
                        test: [/blackberry|\bbb\d+/i, /rim\stablet/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e) || n.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e) || n.default.getFirstMatch(/\bbb(\d+)/i, e);
                            return {
                                name: a.OS_MAP.BlackBerry,
                                version: t
                            }
                        }
                    }, {
                        test: [/bada/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e);
                            return {
                                name: a.OS_MAP.Bada,
                                version: t
                            }
                        }
                    }, {
                        test: [/tizen/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e);
                            return {
                                name: a.OS_MAP.Tizen,
                                version: t
                            }
                        }
                    }, {
                        test: [/linux/i],
                        describe: function() {
                            return {
                                name: a.OS_MAP.Linux
                            }
                        }
                    }, {
                        test: [/CrOS/],
                        describe: function() {
                            return {
                                name: a.OS_MAP.ChromeOS
                            }
                        }
                    }, {
                        test: [/PlayStation 4/],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e);
                            return {
                                name: a.OS_MAP.PlayStation4,
                                version: t
                            }
                        }
                    }];
                t.default = s, e.exports = t.default
            },
            94: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r, n = (r = i(17)) && r.__esModule ? r : {
                        default: r
                    },
                    a = i(18),
                    s = [{
                        test: [/googlebot/i],
                        describe: function() {
                            return {
                                type: "bot",
                                vendor: "Google"
                            }
                        }
                    }, {
                        test: [/huawei/i],
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/(can-l01)/i, e) && "Nova",
                                i = {
                                    type: a.PLATFORMS_MAP.mobile,
                                    vendor: "Huawei"
                                };
                            return t && (i.model = t), i
                        }
                    }, {
                        test: [/nexus\s*(?:7|8|9|10).*/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet,
                                vendor: "Nexus"
                            }
                        }
                    }, {
                        test: [/ipad/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet,
                                vendor: "Apple",
                                model: "iPad"
                            }
                        }
                    }, {
                        test: [/Macintosh(.*?) FxiOS(.*?) Version\//],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet,
                                vendor: "Apple",
                                model: "iPad"
                            }
                        }
                    }, {
                        test: [/kftt build/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet,
                                vendor: "Amazon",
                                model: "Kindle Fire HD 7"
                            }
                        }
                    }, {
                        test: [/silk/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet,
                                vendor: "Amazon"
                            }
                        }
                    }, {
                        test: [/tablet(?! pc)/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet
                            }
                        }
                    }, {
                        test: function(e) {
                            var t = e.test(/ipod|iphone/i),
                                i = e.test(/like (ipod|iphone)/i);
                            return t && !i
                        },
                        describe: function(e) {
                            var t = n.default.getFirstMatch(/(ipod|iphone)/i, e);
                            return {
                                type: a.PLATFORMS_MAP.mobile,
                                vendor: "Apple",
                                model: t
                            }
                        }
                    }, {
                        test: [/nexus\s*[0-6].*/i, /galaxy nexus/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile,
                                vendor: "Nexus"
                            }
                        }
                    }, {
                        test: [/[^-]mobi/i],
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile
                            }
                        }
                    }, {
                        test: function(e) {
                            return "blackberry" === e.getBrowserName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile,
                                vendor: "BlackBerry"
                            }
                        }
                    }, {
                        test: function(e) {
                            return "bada" === e.getBrowserName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile
                            }
                        }
                    }, {
                        test: function(e) {
                            return "windows phone" === e.getBrowserName()
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile,
                                vendor: "Microsoft"
                            }
                        }
                    }, {
                        test: function(e) {
                            var t = Number(String(e.getOSVersion()).split(".")[0]);
                            return "android" === e.getOSName(!0) && t >= 3
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tablet
                            }
                        }
                    }, {
                        test: function(e) {
                            return "android" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.mobile
                            }
                        }
                    }, {
                        test: function(e) {
                            return "macos" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.desktop,
                                vendor: "Apple"
                            }
                        }
                    }, {
                        test: function(e) {
                            return "windows" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.desktop
                            }
                        }
                    }, {
                        test: function(e) {
                            return "linux" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.desktop
                            }
                        }
                    }, {
                        test: function(e) {
                            return "playstation 4" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tv
                            }
                        }
                    }, {
                        test: function(e) {
                            return "roku" === e.getOSName(!0)
                        },
                        describe: function() {
                            return {
                                type: a.PLATFORMS_MAP.tv
                            }
                        }
                    }];
                t.default = s, e.exports = t.default
            },
            95: function(e, t, i) {
                "use strict";
                t.__esModule = !0, t.default = void 0;
                var r, n = (r = i(17)) && r.__esModule ? r : {
                        default: r
                    },
                    a = i(18),
                    s = [{
                        test: function(e) {
                            return "microsoft edge" === e.getBrowserName(!0)
                        },
                        describe: function(e) {
                            if (/\sedg\//i.test(e)) return {
                                name: a.ENGINE_MAP.Blink
                            };
                            var t = n.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e);
                            return {
                                name: a.ENGINE_MAP.EdgeHTML,
                                version: t
                            }
                        }
                    }, {
                        test: [/trident/i],
                        describe: function(e) {
                            var t = {
                                    name: a.ENGINE_MAP.Trident
                                },
                                i = n.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: function(e) {
                            return e.test(/presto/i)
                        },
                        describe: function(e) {
                            var t = {
                                    name: a.ENGINE_MAP.Presto
                                },
                                i = n.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: function(e) {
                            var t = e.test(/gecko/i),
                                i = e.test(/like gecko/i);
                            return t && !i
                        },
                        describe: function(e) {
                            var t = {
                                    name: a.ENGINE_MAP.Gecko
                                },
                                i = n.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }, {
                        test: [/(apple)?webkit\/537\.36/i],
                        describe: function() {
                            return {
                                name: a.ENGINE_MAP.Blink
                            }
                        }
                    }, {
                        test: [/(apple)?webkit/i],
                        describe: function(e) {
                            var t = {
                                    name: a.ENGINE_MAP.WebKit
                                },
                                i = n.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e);
                            return i && (t.version = i), t
                        }
                    }];
                t.default = s, e.exports = t.default
            }
        })
    }, function(e, t, i) {
        var r = i(214),
            n = i(215),
            a = i(216),
            s = i(217),
            o = i(218),
            u = i(219),
            h = i(220);
        h.alea = r, h.xor128 = n, h.xorwow = a, h.xorshift7 = s, h.xor4096 = o, h.tychei = u, e.exports = h
    }, , , , , function(e, t, i) {
        "use strict";
        var r, n = "object" == typeof Reflect ? Reflect : null,
            a = n && "function" == typeof n.apply ? n.apply : function(e, t, i) {
                return Function.prototype.apply.call(e, t, i)
            };
        r = n && "function" == typeof n.ownKeys ? n.ownKeys : Object.getOwnPropertySymbols ? function(e) {
            return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))
        } : function(e) {
            return Object.getOwnPropertyNames(e)
        };
        var s = Number.isNaN || function(e) {
            return e != e
        };

        function o() {
            o.init.call(this)
        }
        e.exports = o, o.EventEmitter = o, o.prototype._events = void 0, o.prototype._eventsCount = 0, o.prototype._maxListeners = void 0;
        var u = 10;

        function h(e) {
            return void 0 === e._maxListeners ? o.defaultMaxListeners : e._maxListeners
        }

        function l(e, t, i, r) {
            var n, a, s;
            if ("function" != typeof i) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof i);
            if (void 0 === (a = e._events) ? (a = e._events = Object.create(null), e._eventsCount = 0) : (void 0 !== a.newListener && (e.emit("newListener", t, i.listener ? i.listener : i), a = e._events), s = a[t]), void 0 === s) s = a[t] = i, ++e._eventsCount;
            else if ("function" == typeof s ? s = a[t] = r ? [i, s] : [s, i] : r ? s.unshift(i) : s.push(i), (n = h(e)) > 0 && s.length > n && !s.warned) {
                s.warned = !0;
                var o = new Error("Possible EventEmitter memory leak detected. " + s.length + " " + String(t) + " listeners added. Use emitter.setMaxListeners() to increase limit");
                o.name = "MaxListenersExceededWarning", o.emitter = e, o.type = t, o.count = s.length, console && console.warn
            }
            return e
        }

        function f() {
            for (var e = [], t = 0; t < arguments.length; t++) e.push(arguments[t]);
            this.fired || (this.target.removeListener(this.type, this.wrapFn), this.fired = !0, a(this.listener, this.target, e))
        }

        function c(e, t, i) {
            var r = {
                    fired: !1,
                    wrapFn: void 0,
                    target: e,
                    type: t,
                    listener: i
                },
                n = f.bind(r);
            return n.listener = i, r.wrapFn = n, n
        }

        function d(e, t, i) {
            var r = e._events;
            if (void 0 === r) return [];
            var n = r[t];
            return void 0 === n ? [] : "function" == typeof n ? i ? [n.listener || n] : [n] : i ? function(e) {
                for (var t = new Array(e.length), i = 0; i < t.length; ++i) t[i] = e[i].listener || e[i];
                return t
            }(n) : v(n, n.length)
        }

        function p(e) {
            var t = this._events;
            if (void 0 !== t) {
                var i = t[e];
                if ("function" == typeof i) return 1;
                if (void 0 !== i) return i.length
            }
            return 0
        }

        function v(e, t) {
            for (var i = new Array(t), r = 0; r < t; ++r) i[r] = e[r];
            return i
        }
        Object.defineProperty(o, "defaultMaxListeners", {
            enumerable: !0,
            get: function() {
                return u
            },
            set: function(e) {
                if ("number" != typeof e || e < 0 || s(e)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + ".");
                u = e
            }
        }), o.init = function() {
            void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0
        }, o.prototype.setMaxListeners = function(e) {
            if ("number" != typeof e || e < 0 || s(e)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e + ".");
            return this._maxListeners = e, this
        }, o.prototype.getMaxListeners = function() {
            return h(this)
        }, o.prototype.emit = function(e) {
            for (var t = [], i = 1; i < arguments.length; i++) t.push(arguments[i]);
            var r = "error" === e,
                n = this._events;
            if (void 0 !== n) r = r && void 0 === n.error;
            else if (!r) return !1;
            if (r) {
                var s;
                if (t.length > 0 && (s = t[0]), s instanceof Error) throw s;
                var o = new Error("Unhandled error." + (s ? " (" + s.message + ")" : ""));
                throw o.context = s, o
            }
            var u = n[e];
            if (void 0 === u) return !1;
            if ("function" == typeof u) a(u, this, t);
            else {
                var h = u.length,
                    l = v(u, h);
                for (i = 0; i < h; ++i) a(l[i], this, t)
            }
            return !0
        }, o.prototype.addListener = function(e, t) {
            return l(this, e, t, !1)
        }, o.prototype.on = o.prototype.addListener, o.prototype.prependListener = function(e, t) {
            return l(this, e, t, !0)
        }, o.prototype.once = function(e, t) {
            if ("function" != typeof t) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t);
            return this.on(e, c(this, e, t)), this
        }, o.prototype.prependOnceListener = function(e, t) {
            if ("function" != typeof t) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t);
            return this.prependListener(e, c(this, e, t)), this
        }, o.prototype.removeListener = function(e, t) {
            var i, r, n, a, s;
            if ("function" != typeof t) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t);
            if (void 0 === (r = this._events)) return this;
            if (void 0 === (i = r[e])) return this;
            if (i === t || i.listener === t) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete r[e], r.removeListener && this.emit("removeListener", e, i.listener || t));
            else if ("function" != typeof i) {
                for (n = -1, a = i.length - 1; a >= 0; a--)
                    if (i[a] === t || i[a].listener === t) {
                        s = i[a].listener, n = a;
                        break
                    }
                if (n < 0) return this;
                0 === n ? i.shift() : function(e, t) {
                    for (; t + 1 < e.length; t++) e[t] = e[t + 1];
                    e.pop()
                }(i, n), 1 === i.length && (r[e] = i[0]), void 0 !== r.removeListener && this.emit("removeListener", e, s || t)
            }
            return this
        }, o.prototype.off = o.prototype.removeListener, o.prototype.removeAllListeners = function(e) {
            var t, i, r;
            if (void 0 === (i = this._events)) return this;
            if (void 0 === i.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== i[e] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete i[e]), this;
            if (0 === arguments.length) {
                var n, a = Object.keys(i);
                for (r = 0; r < a.length; ++r) "removeListener" !== (n = a[r]) && this.removeAllListeners(n);
                return this.removeAllListeners("removeListener"), this._events = Object.create(null), this._eventsCount = 0, this
            }
            if ("function" == typeof(t = i[e])) this.removeListener(e, t);
            else if (void 0 !== t)
                for (r = t.length - 1; r >= 0; r--) this.removeListener(e, t[r]);
            return this
        }, o.prototype.listeners = function(e) {
            return d(this, e, !0)
        }, o.prototype.rawListeners = function(e) {
            return d(this, e, !1)
        }, o.listenerCount = function(e, t) {
            return "function" == typeof e.listenerCount ? e.listenerCount(t) : p.call(e, t)
        }, o.prototype.listenerCount = p, o.prototype.eventNames = function() {
            return this._eventsCount > 0 ? r(this._events) : []
        }
    }, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, i) {
        "use strict";
        (function(e) {
            var t = i(146),
                r = i(147),
                n = i.n(r);
            /*!
             * @pixi/polyfill - v5.2.4
             * Compiled Sun, 03 May 2020 22:38:52 UTC
             *
             * @pixi/polyfill is licensed under the MIT License.
             * http://www.opensource.org/licenses/mit-license
             */
            window.Promise || (window.Promise = t.Polyfill), Object.assign || (Object.assign = n.a);
            var a = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {};
            if (Date.now && Date.prototype.getTime || (Date.now = function() {
                    return (new Date).getTime()
                }), !a.performance || !a.performance.now) {
                var s = Date.now();
                a.performance || (a.performance = {}), a.performance.now = function() {
                    return Date.now() - s
                }
            }
            for (var o = Date.now(), u = ["ms", "moz", "webkit", "o"], h = 0; h < u.length && !a.requestAnimationFrame; ++h) {
                var l = u[h];
                a.requestAnimationFrame = a[l + "RequestAnimationFrame"], a.cancelAnimationFrame = a[l + "CancelAnimationFrame"] || a[l + "CancelRequestAnimationFrame"]
            }
            a.requestAnimationFrame || (a.requestAnimationFrame = function(e) {
                if ("function" != typeof e) throw new TypeError(e + "is not a function");
                var t = Date.now(),
                    i = 16 + o - t;
                return i < 0 && (i = 0), o = t, setTimeout(function() {
                    o = Date.now(), e(performance.now())
                }, i)
            }), a.cancelAnimationFrame || (a.cancelAnimationFrame = function(e) {
                return clearTimeout(e)
            }), Math.sign || (Math.sign = function(e) {
                return 0 === (e = Number(e)) || isNaN(e) ? e : e > 0 ? 1 : -1
            }), Number.isInteger || (Number.isInteger = function(e) {
                return "number" == typeof e && isFinite(e) && Math.floor(e) === e
            }), window.ArrayBuffer || (window.ArrayBuffer = Array), window.Float32Array || (window.Float32Array = Array), window.Uint32Array || (window.Uint32Array = Array), window.Uint16Array || (window.Uint16Array = Array), window.Uint8Array || (window.Uint8Array = Array), window.Int32Array || (window.Int32Array = Array)
        }).call(this, i(54))
    }, function(e, t, i) {
        (function(e) {
            var r = void 0 !== e && e || "undefined" != typeof self && self || window,
                n = Function.prototype.apply;

            function a(e, t) {
                this._id = e, this._clearFn = t
            }
            t.setTimeout = function() {
                return new a(n.call(setTimeout, r, arguments), clearTimeout)
            }, t.setInterval = function() {
                return new a(n.call(setInterval, r, arguments), clearInterval)
            }, t.clearTimeout = t.clearInterval = function(e) {
                e && e.close()
            }, a.prototype.unref = a.prototype.ref = function() {}, a.prototype.close = function() {
                this._clearFn.call(r, this._id)
            }, t.enroll = function(e, t) {
                clearTimeout(e._idleTimeoutId), e._idleTimeout = t
            }, t.unenroll = function(e) {
                clearTimeout(e._idleTimeoutId), e._idleTimeout = -1
            }, t._unrefActive = t.active = function(e) {
                clearTimeout(e._idleTimeoutId);
                var t = e._idleTimeout;
                t >= 0 && (e._idleTimeoutId = setTimeout(function() {
                    e._onTimeout && e._onTimeout()
                }, t))
            }, i(205), t.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || this && this.setImmediate, t.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || this && this.clearImmediate
        }).call(this, i(54))
    }, function(e, t, i) {
        (function(e, t) {
            ! function(e, i) {
                "use strict";
                if (!e.setImmediate) {
                    var r, n, a, s, o, u = 1,
                        h = {},
                        l = !1,
                        f = e.document,
                        c = Object.getPrototypeOf && Object.getPrototypeOf(e);
                    c = c && c.setTimeout ? c : e, "[object process]" === {}.toString.call(e.process) ? r = function(e) {
                        t.nextTick(function() {
                            p(e)
                        })
                    } : ! function() {
                        if (e.postMessage && !e.importScripts) {
                            var t = !0,
                                i = e.onmessage;
                            return e.onmessage = function() {
                                t = !1
                            }, e.postMessage("", "*"), e.onmessage = i, t
                        }
                    }() ? e.MessageChannel ? ((a = new MessageChannel).port1.onmessage = function(e) {
                        p(e.data)
                    }, r = function(e) {
                        a.port2.postMessage(e)
                    }) : f && "onreadystatechange" in f.createElement("script") ? (n = f.documentElement, r = function(e) {
                        var t = f.createElement("script");
                        t.onreadystatechange = function() {
                            p(e), t.onreadystatechange = null, n.removeChild(t), t = null
                        }, n.appendChild(t)
                    }) : r = function(e) {
                        setTimeout(p, 0, e)
                    } : (s = "setImmediate$" + Math.random() + "$", o = function(t) {
                        t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(s) && p(+t.data.slice(s.length))
                    }, e.addEventListener ? e.addEventListener("message", o, !1) : e.attachEvent("onmessage", o), r = function(t) {
                        e.postMessage(s + t, "*")
                    }), c.setImmediate = function(e) {
                        "function" != typeof e && (e = new Function("" + e));
                        for (var t = new Array(arguments.length - 1), i = 0; i < t.length; i++) t[i] = arguments[i + 1];
                        var n = {
                            callback: e,
                            args: t
                        };
                        return h[u] = n, r(u), u++
                    }, c.clearImmediate = d
                }

                function d(e) {
                    delete h[e]
                }

                function p(e) {
                    if (l) setTimeout(p, 0, e);
                    else {
                        var t = h[e];
                        if (t) {
                            l = !0;
                            try {
                                ! function(e) {
                                    var t = e.callback,
                                        r = e.args;
                                    switch (r.length) {
                                        case 0:
                                            t();
                                            break;
                                        case 1:
                                            t(r[0]);
                                            break;
                                        case 2:
                                            t(r[0], r[1]);
                                            break;
                                        case 3:
                                            t(r[0], r[1], r[2]);
                                            break;
                                        default:
                                            t.apply(i, r)
                                    }
                                }(t)
                            } finally {
                                d(e), l = !1
                            }
                        }
                    }
                }
            }("undefined" == typeof self ? void 0 === e ? this : e : self)
        }).call(this, i(54), i(119))
    }, function(e, t, i) {
        (function(e, r) {
            var n; /*! https://mths.be/punycode v1.4.1 by @mathias */
            ! function(a) {
                t && t.nodeType, e && e.nodeType;
                var s = "object" == typeof r && r;
                s.global !== s && s.window !== s && s.self;
                var o, u = 2147483647,
                    h = 36,
                    l = 1,
                    f = 26,
                    c = 38,
                    d = 700,
                    p = 72,
                    v = 128,
                    m = "-",
                    _ = /^xn--/,
                    b = /[^\x20-\x7E]/,
                    g = /[\x2E\u3002\uFF0E\uFF61]/g,
                    y = {
                        overflow: "Overflow: input needs wider integers to process",
                        "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                        "invalid-input": "Invalid input"
                    },
                    A = h - l,
                    w = Math.floor,
                    x = String.fromCharCode;

                function k(e) {
                    throw new RangeError(y[e])
                }

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

                function E(e, t) {
                    var i = e.split("@"),
                        r = "";
                    return i.length > 1 && (r = i[0] + "@", e = i[1]), r + T((e = e.replace(g, ".")).split("."), t).join(".")
                }

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

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

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

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

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

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

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

        function a(e, t) {
            if (e.map) return e.map(t);
            for (var i = [], r = 0; r < e.length; r++) i.push(t(e[r], r));
            return i
        }
        var s = Object.keys || function(e) {
            var t = [];
            for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && t.push(i);
            return t
        }
    }, function(e, t) {
        e.exports = function(e) {
            return e && "object" == typeof e && "function" == typeof e.copy && "function" == typeof e.fill && "function" == typeof e.readUInt8
        }
    }, function(e, t) {
        "function" == typeof Object.create ? e.exports = function(e, t) {
            e.super_ = t, e.prototype = Object.create(t.prototype, {
                constructor: {
                    value: e,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            })
        } : e.exports = function(e, t) {
            e.super_ = t;
            var i = function() {};
            i.prototype = t.prototype, e.prototype = new i, e.prototype.constructor = e
        }
    }, function(e, t) {
        e.exports = function(e) {
            if (!e.webpackPolyfill) {
                var t = Object.create(e);
                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
                    }
                }), Object.defineProperty(t, "exports", {
                    enumerable: !0
                }), t.webpackPolyfill = 1
            }
            return t
        }
    }, function(e, t, i) {
        (function(e) {
            var r;
            ! function(e, n, a) {
                function s(e) {
                    var t, i = this,
                        r = (t = 4022871197, function(e) {
                            e = String(e);
                            for (var i = 0; i < e.length; i++) {
                                var r = .02519603282416938 * (t += e.charCodeAt(i));
                                r -= t = r >>> 0, t = (r *= t) >>> 0, t += 4294967296 * (r -= t)
                            }
                            return 2.3283064365386963e-10 * (t >>> 0)
                        });
                    i.next = function() {
                        var e = 2091639 * i.s0 + 2.3283064365386963e-10 * i.c;
                        return i.s0 = i.s1, i.s1 = i.s2, i.s2 = e - (i.c = 0 | e)
                    }, i.c = 1, i.s0 = r(" "), i.s1 = r(" "), i.s2 = r(" "), i.s0 -= r(e), i.s0 < 0 && (i.s0 += 1), i.s1 -= r(e), i.s1 < 0 && (i.s1 += 1), i.s2 -= r(e), i.s2 < 0 && (i.s2 += 1), r = null
                }

                function o(e, t) {
                    return t.c = e.c, t.s0 = e.s0, t.s1 = e.s1, t.s2 = e.s2, t
                }

                function u(e, t) {
                    var i = new s(e),
                        r = t && t.state,
                        n = i.next;
                    return n.int32 = function() {
                        return 4294967296 * i.next() | 0
                    }, n.double = function() {
                        return n() + 11102230246251565e-32 * (2097152 * n() | 0)
                    }, n.quick = n, r && ("object" == typeof r && o(r, i), n.state = function() {
                        return o(i, {})
                    }), n
                }
                n && n.exports ? n.exports = u : i(41) && i(66) ? void 0 === (r = function() {
                    return u
                }.call(t, i, t, n)) || (n.exports = r) : this.alea = u
            }(0, e, i(41))
        }).call(this, i(62)(e))
    }, function(e, t, i) {
        (function(e) {
            var r;
            ! function(e, n, a) {
                function s(e) {
                    var t = this,
                        i = "";
                    t.x = 0, t.y = 0, t.z = 0, t.w = 0, t.next = function() {
                        var e = t.x ^ t.x << 11;
                        return t.x = t.y, t.y = t.z, t.z = t.w, t.w ^= t.w >>> 19 ^ e ^ e >>> 8
                    }, e === (0 | e) ? t.x = e : i += e;
                    for (var r = 0; r < i.length + 64; r++) t.x ^= 0 | i.charCodeAt(r), t.next()
                }

                function o(e, t) {
                    return t.x = e.x, t.y = e.y, t.z = e.z, t.w = e.w, t
                }

                function u(e, t) {
                    var i = new s(e),
                        r = t && t.state,
                        n = function() {
                            return (i.next() >>> 0) / 4294967296
                        };
                    return n.double = function() {
                        do {
                            var e = ((i.next() >>> 11) + (i.next() >>> 0) / 4294967296) / (1 << 21)
                        } while (0 === e);
                        return e
                    }, n.int32 = i.next, n.quick = n, r && ("object" == typeof r && o(r, i), n.state = function() {
                        return o(i, {})
                    }), n
                }
                n && n.exports ? n.exports = u : i(41) && i(66) ? void 0 === (r = function() {
                    return u
                }.call(t, i, t, n)) || (n.exports = r) : this.xor128 = u
            }(0, e, i(41))
        }).call(this, i(62)(e))
    }, function(e, t, i) {
        (function(e) {
            var r;
            ! function(e, n, a) {
                function s(e) {
                    var t = this,
                        i = "";
                    t.next = function() {
                        var e = t.x ^ t.x >>> 2;
                        return t.x = t.y, t.y = t.z, t.z = t.w, t.w = t.v, (t.d = t.d + 362437 | 0) + (t.v = t.v ^ t.v << 4 ^ e ^ e << 1) | 0
                    }, t.x = 0, t.y = 0, t.z = 0, t.w = 0, t.v = 0, e === (0 | e) ? t.x = e : i += e;
                    for (var r = 0; r < i.length + 64; r++) t.x ^= 0 | i.charCodeAt(r), r == i.length && (t.d = t.x << 10 ^ t.x >>> 4), t.next()
                }

                function o(e, t) {
                    return t.x = e.x, t.y = e.y, t.z = e.z, t.w = e.w, t.v = e.v, t.d = e.d, t
                }

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

                function o(e, t) {
                    return t.x = e.x.slice(), t.i = e.i, t
                }

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

                function o(e, t) {
                    return t.i = e.i, t.w = e.w, t.X = e.X.slice(), t
                }

                function u(e, t) {
                    null == e && (e = +new Date);
                    var i = new s(e),
                        r = t && t.state,
                        n = function() {
                            return (i.next() >>> 0) / 4294967296
                        };
                    return n.double = function() {
                        do {
                            var e = ((i.next() >>> 11) + (i.next() >>> 0) / 4294967296) / (1 << 21)
                        } while (0 === e);
                        return e
                    }, n.int32 = i.next, n.quick = n, r && (r.X && o(r, i), n.state = function() {
                        return o(i, {})
                    }), n
                }
                n && n.exports ? n.exports = u : i(41) && i(66) ? void 0 === (r = function() {
                    return u
                }.call(t, i, t, n)) || (n.exports = r) : this.xor4096 = u
            }(0, e, i(41))
        }).call(this, i(62)(e))
    }, function(e, t, i) {
        (function(e) {
            var r;
            ! function(e, n, a) {
                function s(e) {
                    var t = this,
                        i = "";
                    t.next = function() {
                        var e = t.b,
                            i = t.c,
                            r = t.d,
                            n = t.a;
                        return e = e << 25 ^ e >>> 7 ^ i, i = i - r | 0, r = r << 24 ^ r >>> 8 ^ n, n = n - e | 0, t.b = e = e << 20 ^ e >>> 12 ^ i, t.c = i = i - r | 0, t.d = r << 16 ^ i >>> 16 ^ n, t.a = n - e | 0
                    }, t.a = 0, t.b = 0, t.c = -1640531527, t.d = 1367130551, e === Math.floor(e) ? (t.a = e / 4294967296 | 0, t.b = 0 | e) : i += e;
                    for (var r = 0; r < i.length + 20; r++) t.b ^= 0 | i.charCodeAt(r), t.next()
                }

                function o(e, t) {
                    return t.a = e.a, t.b = e.b, t.c = e.c, t.d = e.d, t
                }

                function u(e, t) {
                    var i = new s(e),
                        r = t && t.state,
                        n = function() {
                            return (i.next() >>> 0) / 4294967296
                        };
                    return n.double = function() {
                        do {
                            var e = ((i.next() >>> 11) + (i.next() >>> 0) / 4294967296) / (1 << 21)
                        } while (0 === e);
                        return e
                    }, n.int32 = i.next, n.quick = n, r && ("object" == typeof r && o(r, i), n.state = function() {
                        return o(i, {})
                    }), n
                }
                n && n.exports ? n.exports = u : i(41) && i(66) ? void 0 === (r = function() {
                    return u
                }.call(t, i, t, n)) || (n.exports = r) : this.tychei = u
            }(0, e, i(41))
        }).call(this, i(62)(e))
    }, function(e, t, i) {
        var r;
        ! function(n, a, s) {
            var o, u = 256,
                h = 6,
                l = "random",
                f = s.pow(u, h),
                c = s.pow(2, 52),
                d = 2 * c,
                p = u - 1;

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

            function m(e) {
                var t, i = e.length,
                    r = this,
                    n = 0,
                    a = r.i = r.j = 0,
                    s = r.S = [];
                for (i || (e = [i++]); n < u;) s[n] = n++;
                for (n = 0; n < u; n++) s[n] = s[a = p & a + e[n % i] + (t = s[n])], s[a] = t;
                (r.g = function(e) {
                    for (var t, i = 0, n = r.i, a = r.j, s = r.S; e--;) t = s[n = p & n + 1], i = i * u + s[p & (s[n] = s[a = p & a + t]) + (s[a] = t)];
                    return r.i = n, r.j = a, i
                })(u)
            }

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

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

            function g(e) {
                return String.fromCharCode.apply(0, e)
            }
            if (b(s.random(), a), e.exports) {
                e.exports = v;
                try {
                    o = i(221)
                } catch (e) {}
            } else void 0 === (r = function() {
                return v
            }.call(t, i, t, e)) || (e.exports = r)
        }("undefined" != typeof self ? self : this, [], Math)
    }]
]);