(self.webpackChunktradingview = self.webpackChunktradingview || []).push([
    [57565, 34604, 68026, 15460, 93090, 96911, 79836, 73935, 14563, 1529, 466, 36982, 15857, 64011, 44740, 17925, 9622, 76403, 47993, 807, 73715, 76242, 34698, 68981, 38140, 4033, 50214, 52946, 61959, 79882, 11228, 42098, 53197, 69463, 28788], {
        76403: (e, t, r) => {
            "use strict";

            function o(e) {
                for (var t = arguments.length, r = Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) r[o - 1] = arguments[o];
                throw Error("[Immer] minified error nr: " + e + (r.length ? " " + r.map((function(e) {
                    return "'" + e + "'"
                })).join(",") : "") + ". Find the full error at: https://bit.ly/3cXEKWf")
            }

            function n(e) {
                return !!e && !!e[Y]
            }

            function i(e) {
                return !!e && (function(e) {
                    if (!e || "object" != typeof e) return !1;
                    var t = Object.getPrototypeOf(e);
                    if (null === t) return !0;
                    var r = Object.hasOwnProperty.call(t, "constructor") && t.constructor;
                    return r === Object || "function" == typeof r && Function.toString.call(r) === K
                }(e) || Array.isArray(e) || !!e[H] || !!e.constructor[H] || h(e) || p(e))
            }

            function s(e, t, r) {
                void 0 === r && (r = !1), 0 === a(e) ? (r ? Object.keys : X)(e).forEach((function(o) {
                    r && "symbol" == typeof o || t(o, e[o], e)
                })) : e.forEach((function(r, o) {
                    return t(o, r, e)
                }))
            }

            function a(e) {
                var t = e[Y];
                return t ? t.i > 3 ? t.i - 4 : t.i : Array.isArray(e) ? 1 : h(e) ? 2 : p(e) ? 3 : 0
            }

            function l(e, t) {
                return 2 === a(e) ? e.has(t) : Object.prototype.hasOwnProperty.call(e, t)
            }

            function c(e, t) {
                return 2 === a(e) ? e.get(t) : e[t]
            }

            function u(e, t, r) {
                var o = a(e);
                2 === o ? e.set(t, r) : 3 === o ? (e.delete(t), e.add(r)) : e[t] = r
            }

            function d(e, t) {
                return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t
            }

            function h(e) {
                return V && e instanceof Map
            }

            function p(e) {
                return U && e instanceof Set
            }

            function f(e) {
                return e.o || e.t
            }

            function g(e) {
                if (Array.isArray(e)) return Array.prototype.slice.call(e);
                var t = G(e);
                delete t[Y];
                for (var r = X(t), o = 0; o < r.length; o++) {
                    var n = r[o],
                        i = t[n];
                    !1 === i.writable && (i.writable = !0, i.configurable = !0), (i.get || i.set) && (t[n] = {
                        configurable: !0,
                        writable: !0,
                        enumerable: i.enumerable,
                        value: e[n]
                    })
                }
                return Object.create(Object.getPrototypeOf(e), t)
            }

            function m(e, t) {
                return void 0 === t && (t = !1), v(e) || n(e) || !i(e) || (a(e) > 1 && (e.set = e.add = e.clear = e.delete = _), Object.freeze(e), t && s(e, (function(e, t) {
                    return m(t, !0)
                }), !0)), e
            }

            function _() {
                o(2)
            }

            function v(e) {
                return null == e || "object" != typeof e || Object.isFrozen(e)
            }

            function b(e) {
                var t = Q[e];
                return t || o(18, e), t
            }

            function y(e, t) {
                Q[e] || (Q[e] = t)
            }

            function w() {
                return j
            }

            function S(e, t) {
                t && (b("Patches"), e.u = [], e.s = [], e.v = t)
            }

            function C(e) {
                k(e), e.p.forEach(x), e.p = null
            }

            function k(e) {
                e === j && (j = e.l)
            }

            function E(e) {
                return j = {
                    p: [],
                    l: j,
                    h: e,
                    m: !0,
                    _: 0
                }
            }

            function x(e) {
                var t = e[Y];
                0 === t.i || 1 === t.i ? t.j() : t.O = !0
            }

            function T(e, t) {
                t._ = t.p.length;
                var r = t.p[0],
                    n = void 0 !== e && e !== r;
                return t.h.g || b("ES5").S(t, e, n), n ? (r[Y].P && (C(t), o(4)), i(e) && (e = A(t, e), t.l || L(t, e)), t.u && b("Patches").M(r[Y].t, e, t.u, t.s)) : e = A(t, r, []), C(t), t.u && t.v(t.u, t.s), e !== z ? e : void 0
            }

            function A(e, t, r) {
                if (v(t)) return t;
                var o = t[Y];
                if (!o) return s(t, (function(n, i) {
                    return M(e, o, t, n, i, r)
                }), !0), t;
                if (o.A !== e) return t;
                if (!o.P) return L(e, o.t, !0), o.t;
                if (!o.I) {
                    o.I = !0, o.A._--;
                    var n = 4 === o.i || 5 === o.i ? o.o = g(o.k) : o.o;
                    s(3 === o.i ? new Set(n) : n, (function(t, i) {
                        return M(e, o, n, t, i, r)
                    })), L(e, n, !1), r && e.u && b("Patches").R(o, r, e.u, e.s)
                }
                return o.o
            }

            function M(e, t, r, o, s, a) {
                if (n(s)) {
                    var c = A(e, s, a && t && 3 !== t.i && !l(t.D, o) ? a.concat(o) : void 0);
                    if (u(r, o, c), !n(c)) return;
                    e.m = !1
                }
                if (i(s) && !v(s)) {
                    if (!e.h.F && e._ < 1) return;
                    A(e, s), t && t.A.l || L(e, s)
                }
            }

            function L(e, t, r) {
                void 0 === r && (r = !1), e.h.F && e.m && m(t, r)
            }

            function P(e, t) {
                var r = e[Y];
                return (r ? f(r) : e)[t]
            }

            function F(e, t) {
                if (t in e)
                    for (var r = Object.getPrototypeOf(e); r;) {
                        var o = Object.getOwnPropertyDescriptor(r, t);
                        if (o) return o;
                        r = Object.getPrototypeOf(r)
                    }
            }

            function I(e) {
                e.P || (e.P = !0, e.l && I(e.l))
            }

            function D(e) {
                e.o || (e.o = g(e.t))
            }

            function O(e, t, r) {
                var o = h(t) ? b("MapSet").N(t, r) : p(t) ? b("MapSet").T(t, r) : e.g ? function(e, t) {
                    var r = Array.isArray(e),
                        o = {
                            i: r ? 1 : 0,
                            A: t ? t.A : w(),
                            P: !1,
                            I: !1,
                            D: {},
                            l: t,
                            t: e,
                            k: null,
                            o: null,
                            j: null,
                            C: !1
                        },
                        n = o,
                        i = J;
                    r && (n = [o], i = Z);
                    var s = Proxy.revocable(n, i),
                        a = s.revoke,
                        l = s.proxy;
                    return o.k = l, o.j = a, l
                }(t, r) : b("ES5").J(t, r);
                return (r ? r.A : w()).p.push(o), o
            }

            function R(e) {
                return n(e) || o(22, e),
                    function e(t) {
                        if (!i(t)) return t;
                        var r, o = t[Y],
                            n = a(t);
                        if (o) {
                            if (!o.P && (o.i < 4 || !b("ES5").K(o))) return o.t;
                            o.I = !0, r = B(t, n), o.I = !1
                        } else r = B(t, n);
                        return s(r, (function(t, n) {
                            o && c(o.t, t) === n || u(r, t, e(n))
                        })), 3 === n ? new Set(r) : r
                    }(e)
            }

            function B(e, t) {
                switch (t) {
                    case 2:
                        return new Map(e);
                    case 3:
                        return Array.from(e)
                }
                return g(e)
            }

            function N() {
                function e(e, t) {
                    var r = i[e];
                    return r ? r.enumerable = t : i[e] = r = {
                        configurable: !0,
                        enumerable: t,
                        get: function() {
                            var t = this[Y];
                            return J.get(t, e)
                        },
                        set: function(t) {
                            var r = this[Y];
                            J.set(r, e, t)
                        }
                    }, r
                }

                function t(e) {
                    for (var t = e.length - 1; t >= 0; t--) {
                        var n = e[t][Y];
                        if (!n.P) switch (n.i) {
                            case 5:
                                o(n) && I(n);
                                break;
                            case 4:
                                r(n) && I(n)
                        }
                    }
                }

                function r(e) {
                    for (var t = e.t, r = e.k, o = X(r), n = o.length - 1; n >= 0; n--) {
                        var i = o[n];
                        if (i !== Y) {
                            var s = t[i];
                            if (void 0 === s && !l(t, i)) return !0;
                            var a = r[i],
                                c = a && a[Y];
                            if (c ? c.t !== s : !d(a, s)) return !0
                        }
                    }
                    var u = !!t[Y];
                    return o.length !== X(t).length + (u ? 0 : 1)
                }

                function o(e) {
                    var t = e.k;
                    if (t.length !== e.t.length) return !0;
                    var r = Object.getOwnPropertyDescriptor(t, t.length - 1);
                    if (r && !r.get) return !0;
                    for (var o = 0; o < t.length; o++)
                        if (!t.hasOwnProperty(o)) return !0;
                    return !1
                }
                var i = {};
                y("ES5", {
                    J: function(t, r) {
                        var o = Array.isArray(t),
                            n = function(t, r) {
                                if (t) {
                                    for (var o = Array(r.length), n = 0; n < r.length; n++) Object.defineProperty(o, "" + n, e(n, !0));
                                    return o
                                }
                                var i = G(r);
                                delete i[Y];
                                for (var s = X(i), a = 0; a < s.length; a++) {
                                    var l = s[a];
                                    i[l] = e(l, t || !!i[l].enumerable)
                                }
                                return Object.create(Object.getPrototypeOf(r), i)
                            }(o, t),
                            i = {
                                i: o ? 5 : 4,
                                A: r ? r.A : w(),
                                P: !1,
                                I: !1,
                                D: {},
                                l: r,
                                t,
                                k: n,
                                o: null,
                                O: !1,
                                C: !1
                            };
                        return Object.defineProperty(n, Y, {
                            value: i,
                            writable: !0
                        }), n
                    },
                    S: function(e, r, i) {
                        i ? n(r) && r[Y].A === e && t(e.p) : (e.u && function e(t) {
                            if (t && "object" == typeof t) {
                                var r = t[Y];
                                if (r) {
                                    var n = r.t,
                                        i = r.k,
                                        a = r.D,
                                        c = r.i;
                                    if (4 === c) s(i, (function(t) {
                                        t !== Y && (void 0 !== n[t] || l(n, t) ? a[t] || e(i[t]) : (a[t] = !0, I(r)))
                                    })), s(n, (function(e) {
                                        void 0 !== i[e] || l(i, e) || (a[e] = !1, I(r))
                                    }));
                                    else if (5 === c) {
                                        if (o(r) && (I(r), a.length = !0), i.length < n.length)
                                            for (var u = i.length; u < n.length; u++) a[u] = !1;
                                        else
                                            for (var d = n.length; d < i.length; d++) a[d] = !0;
                                        for (var h = Math.min(i.length, n.length), p = 0; p < h; p++) i.hasOwnProperty(p) || (a[p] = !0), void 0 === a[p] && e(i[p])
                                    }
                                }
                            }
                        }(e.p[0]), t(e.p))
                    },
                    K: function(e) {
                        return 4 === e.i ? r(e) : o(e)
                    }
                })
            }
            r.d(t, {
                configureStore: () => ke,
                createAsyncThunk: () => Ie,
                createSlice: () => Te
            });
            var $, j, W = "undefined" != typeof Symbol && "symbol" == typeof Symbol("x"),
                V = "undefined" != typeof Map,
                U = "undefined" != typeof Set,
                q = "undefined" != typeof Proxy && void 0 !== Proxy.revocable && "undefined" != typeof Reflect,
                z = W ? Symbol.for("immer-nothing") : (($ = {})["immer-nothing"] = !0, $),
                H = W ? Symbol.for("immer-draftable") : "__$immer_draftable",
                Y = W ? Symbol.for("immer-state") : "__$immer_state",
                K = ("undefined" != typeof Symbol && Symbol.iterator, "" + Object.prototype.constructor),
                X = "undefined" != typeof Reflect && Reflect.ownKeys ? Reflect.ownKeys : void 0 !== Object.getOwnPropertySymbols ? function(e) {
                    return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))
                } : Object.getOwnPropertyNames,
                G = Object.getOwnPropertyDescriptors || function(e) {
                    var t = {};
                    return X(e).forEach((function(r) {
                        t[r] = Object.getOwnPropertyDescriptor(e, r)
                    })), t
                },
                Q = {},
                J = {
                    get: function(e, t) {
                        if (t === Y) return e;
                        var r = f(e);
                        if (!l(r, t)) return function(e, t, r) {
                            var o, n = F(t, r);
                            return n ? "value" in n ? n.value : null === (o = n.get) || void 0 === o ? void 0 : o.call(e.k) : void 0
                        }(e, r, t);
                        var o = r[t];
                        return e.I || !i(o) ? o : o === P(e.t, t) ? (D(e), e.o[t] = O(e.A.h, o, e)) : o
                    },
                    has: function(e, t) {
                        return t in f(e)
                    },
                    ownKeys: function(e) {
                        return Reflect.ownKeys(f(e))
                    },
                    set: function(e, t, r) {
                        var o = F(f(e), t);
                        if (null == o ? void 0 : o.set) return o.set.call(e.k, r), !0;
                        if (!e.P) {
                            var n = P(f(e), t),
                                i = null == n ? void 0 : n[Y];
                            if (i && i.t === r) return e.o[t] = r, e.D[t] = !1, !0;
                            if (d(r, n) && (void 0 !== r || l(e.t, t))) return !0;
                            D(e), I(e)
                        }
                        return e.o[t] === r && "number" != typeof r && (void 0 !== r || t in e.o) || (e.o[t] = r, e.D[t] = !0, !0)
                    },
                    deleteProperty: function(e, t) {
                        return void 0 !== P(e.t, t) || t in e.t ? (e.D[t] = !1, D(e), I(e)) : delete e.D[t], e.o && delete e.o[t], !0
                    },
                    getOwnPropertyDescriptor: function(e, t) {
                        var r = f(e),
                            o = Reflect.getOwnPropertyDescriptor(r, t);
                        return o ? {
                            writable: !0,
                            configurable: 1 !== e.i || "length" !== t,
                            enumerable: o.enumerable,
                            value: r[t]
                        } : o
                    },
                    defineProperty: function() {
                        o(11)
                    },
                    getPrototypeOf: function(e) {
                        return Object.getPrototypeOf(e.t)
                    },
                    setPrototypeOf: function() {
                        o(12)
                    }
                },
                Z = {};
            s(J, (function(e, t) {
                Z[e] = function() {
                    return arguments[0] = arguments[0][0], t.apply(this, arguments)
                }
            })), Z.deleteProperty = function(e, t) {
                return Z.set.call(this, e, t, void 0)
            }, Z.set = function(e, t, r) {
                return J.set.call(this, e[0], t, r, e[0])
            };
            var ee = new(function() {
                    function e(e) {
                        var t = this;
                        this.g = q, this.F = !0, this.produce = function(e, r, n) {
                            if ("function" == typeof e && "function" != typeof r) {
                                var s = r;
                                r = e;
                                var a = t;
                                return function(e) {
                                    var t = this;
                                    void 0 === e && (e = s);
                                    for (var o = arguments.length, n = Array(o > 1 ? o - 1 : 0), i = 1; i < o; i++) n[i - 1] = arguments[i];
                                    return a.produce(e, (function(e) {
                                        var o;
                                        return (o = r).call.apply(o, [t, e].concat(n))
                                    }))
                                }
                            }
                            var l;
                            if ("function" != typeof r && o(6), void 0 !== n && "function" != typeof n && o(7), i(e)) {
                                var c = E(t),
                                    u = O(t, e, void 0),
                                    d = !0;
                                try {
                                    l = r(u), d = !1
                                } finally {
                                    d ? C(c) : k(c)
                                }
                                return "undefined" != typeof Promise && l instanceof Promise ? l.then((function(e) {
                                    return S(c, n), T(e, c)
                                }), (function(e) {
                                    throw C(c), e
                                })) : (S(c, n), T(l, c))
                            }
                            if (!e || "object" != typeof e) {
                                if (void 0 === (l = r(e)) && (l = e), l === z && (l = void 0), t.F && m(l, !0), n) {
                                    var h = [],
                                        p = [];
                                    b("Patches").M(e, l, h, p), n(h, p)
                                }
                                return l
                            }
                            o(21, e)
                        }, this.produceWithPatches = function(e, r) {
                            if ("function" == typeof e) return function(r) {
                                for (var o = arguments.length, n = Array(o > 1 ? o - 1 : 0), i = 1; i < o; i++) n[i - 1] = arguments[i];
                                return t.produceWithPatches(r, (function(t) {
                                    return e.apply(void 0, [t].concat(n))
                                }))
                            };
                            var o, n, i = t.produce(e, r, (function(e, t) {
                                o = e, n = t
                            }));
                            return "undefined" != typeof Promise && i instanceof Promise ? i.then((function(e) {
                                return [e, o, n]
                            })) : [i, o, n]
                        }, "boolean" == typeof(null == e ? void 0 : e.useProxies) && this.setUseProxies(e.useProxies), "boolean" == typeof(null == e ? void 0 : e.autoFreeze) && this.setAutoFreeze(e.autoFreeze)
                    }
                    var t = e.prototype;
                    return t.createDraft = function(e) {
                        i(e) || o(8), n(e) && (e = R(e));
                        var t = E(this),
                            r = O(this, e, void 0);
                        return r[Y].C = !0, k(t), r
                    }, t.finishDraft = function(e, t) {
                        var r = (e && e[Y]).A;
                        return S(r, t), T(void 0, r)
                    }, t.setAutoFreeze = function(e) {
                        this.F = e
                    }, t.setUseProxies = function(e) {
                        e && !q && o(20), this.g = e
                    }, t.applyPatches = function(e, t) {
                        var r;
                        for (r = t.length - 1; r >= 0; r--) {
                            var o = t[r];
                            if (0 === o.path.length && "replace" === o.op) {
                                e = o.value;
                                break
                            }
                        }
                        r > -1 && (t = t.slice(r + 1));
                        var i = b("Patches").$;
                        return n(e) ? i(e, t) : this.produce(e, (function(e) {
                            return i(e, t)
                        }))
                    }, e
                }()),
                te = ee.produce;
            ee.produceWithPatches.bind(ee), ee.setAutoFreeze.bind(ee), ee.setUseProxies.bind(ee), ee.applyPatches.bind(ee), ee.createDraft.bind(ee), ee.finishDraft.bind(ee);
            const re = te;
            r(22222);
            var oe = r(15857);

            function ne(e) {
                return function(t) {
                    var r = t.dispatch,
                        o = t.getState;
                    return function(t) {
                        return function(n) {
                            return "function" == typeof n ? n(r, o, e) : t(n)
                        }
                    }
                }
            }
            var ie = ne();
            ie.withExtraArgument = ne;
            const se = ie;
            var ae, le = (ae = function(e, t) {
                    return (ae = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r])
                        })(e, t)
                }, function(e, t) {
                    if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");

                    function r() {
                        this.constructor = e
                    }
                    ae(e, t), e.prototype = null === t ? Object.create(t) : (r.prototype = t.prototype, new r)
                }),
                ce = function(e, t) {
                    var r, o, n, i, s = {
                        label: 0,
                        sent: function() {
                            if (1 & n[0]) throw n[1];
                            return n[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: a(0),
                        throw: a(1),
                        return: a(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function a(i) {
                        return function(a) {
                            return function(i) {
                                if (r) throw new TypeError("Generator is already executing.");
                                for (; s;) try {
                                    if (r = 1, o && (n = 2 & i[0] ? o.return : i[0] ? o.throw || ((n = o.return) && n.call(o), 0) : o.next) && !(n = n.call(o, i[1])).done) return n;
                                    switch (o = 0, n && (i = [2 & i[0], n.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            n = i;
                                            break;
                                        case 4:
                                            return s.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            s.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = s.ops.pop(), s.trys.pop();
                                            continue;
                                        default:
                                            if (!(n = s.trys, (n = n.length > 0 && n[n.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                s = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!n || i[1] > n[0] && i[1] < n[3])) {
                                                s.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && s.label < n[1]) {
                                                s.label = n[1], n = i;
                                                break
                                            }
                                            if (n && s.label < n[2]) {
                                                s.label = n[2], s.ops.push(i);
                                                break
                                            }
                                            n[2] && s.ops.pop(), s.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, s)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    r = n = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, a])
                        }
                    }
                },
                ue = function(e, t) {
                    for (var r = 0, o = t.length, n = e.length; r < o; r++, n++) e[n] = t[r];
                    return e
                },
                de = Object.defineProperty,
                he = Object.defineProperties,
                pe = Object.getOwnPropertyDescriptors,
                fe = Object.getOwnPropertySymbols,
                ge = Object.prototype.hasOwnProperty,
                me = Object.prototype.propertyIsEnumerable,
                _e = function(e, t, r) {
                    return t in e ? de(e, t, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: r
                    }) : e[t] = r
                },
                ve = function(e, t) {
                    for (var r in t || (t = {})) ge.call(t, r) && _e(e, r, t[r]);
                    if (fe)
                        for (var o = 0, n = fe(t); o < n.length; o++) {
                            r = n[o];
                            me.call(t, r) && _e(e, r, t[r])
                        }
                    return e
                },
                be = function(e, t) {
                    return he(e, pe(t))
                },
                ye = "undefined" != typeof window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {
                    if (0 !== arguments.length) return "object" == typeof arguments[0] ? oe.compose : oe.compose.apply(null, arguments)
                };
            "undefined" != typeof window && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__;

            function we(e) {
                if ("object" != typeof e || null === e) return !1;
                for (var t = e; null !== Object.getPrototypeOf(t);) t = Object.getPrototypeOf(t);
                return Object.getPrototypeOf(e) === t
            }
            var Se = function(e) {
                function t() {
                    for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o];
                    var n = e.apply(this, r) || this;
                    return Object.setPrototypeOf(n, t.prototype), n
                }
                return le(t, e), Object.defineProperty(t, Symbol.species, {
                    get: function() {
                        return t
                    },
                    enumerable: !1,
                    configurable: !0
                }), t.prototype.concat = function() {
                    for (var t = [], r = 0; r < arguments.length; r++) t[r] = arguments[r];
                    return e.prototype.concat.apply(this, t)
                }, t.prototype.prepend = function() {
                    for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
                    return 1 === e.length && Array.isArray(e[0]) ? new(t.bind.apply(t, ue([void 0], e[0].concat(this)))) : new(t.bind.apply(t, ue([void 0], e.concat(this))))
                }, t
            }(Array);

            function Ce() {
                return function(e) {
                    return function(e) {
                        void 0 === e && (e = {});
                        var t = e.thunk,
                            r = void 0 === t || t,
                            o = (e.immutableCheck, e.serializableCheck, new Se);
                        r && (! function(e) {
                            return "boolean" == typeof e
                        }(r) ? o.push(se.withExtraArgument(r.extraArgument)) : o.push(se));
                        0;
                        return o
                    }(e)
                }
            }

            function ke(e) {
                var t, r = Ce(),
                    o = e || {},
                    n = o.reducer,
                    i = void 0 === n ? void 0 : n,
                    s = o.middleware,
                    a = void 0 === s ? r() : s,
                    l = o.devTools,
                    c = void 0 === l || l,
                    u = o.preloadedState,
                    d = void 0 === u ? void 0 : u,
                    h = o.enhancers,
                    p = void 0 === h ? void 0 : h;
                if ("function" == typeof i) t = i;
                else {
                    if (!we(i)) throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');
                    t = (0, oe.combineReducers)(i)
                }
                var f = a;
                "function" == typeof f && (f = f(r));
                var g = oe.applyMiddleware.apply(void 0, f),
                    m = oe.compose;
                c && (m = ye(ve({
                    trace: !1
                }, "object" == typeof c && c)));
                var _ = [g];
                Array.isArray(p) ? _ = ue([g], p) : "function" == typeof p && (_ = p(_));
                var v = m.apply(void 0, _);
                return (0, oe.createStore)(t, d, v)
            }

            function Ee(e, t) {
                function r() {
                    for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o];
                    if (t) {
                        var n = t.apply(void 0, r);
                        if (!n) throw new Error("prepareAction did not return an object");
                        return ve(ve({
                            type: e,
                            payload: n.payload
                        }, "meta" in n && {
                            meta: n.meta
                        }), "error" in n && {
                            error: n.error
                        })
                    }
                    return {
                        type: e,
                        payload: r[0]
                    }
                }
                return r.toString = function() {
                    return "" + e
                }, r.type = e, r.match = function(t) {
                    return t.type === e
                }, r
            }

            function xe(e) {
                var t, r = {},
                    o = [],
                    n = {
                        addCase: function(e, t) {
                            var o = "string" == typeof e ? e : e.type;
                            if (o in r) throw new Error("addCase cannot be called with two reducers for the same action type");
                            return r[o] = t, n
                        },
                        addMatcher: function(e, t) {
                            return o.push({
                                matcher: e,
                                reducer: t
                            }), n
                        },
                        addDefaultCase: function(e) {
                            return t = e, n
                        }
                    };
                return e(n), [r, o, t]
            }

            function Te(e) {
                var t = e.name,
                    r = e.initialState;
                if (!t) throw new Error("`name` is a required option for createSlice");
                var o = e.reducers || {},
                    s = "function" == typeof e.extraReducers ? xe(e.extraReducers) : [e.extraReducers],
                    a = s[0],
                    l = void 0 === a ? {} : a,
                    c = s[1],
                    u = void 0 === c ? [] : c,
                    d = s[2],
                    h = void 0 === d ? void 0 : d,
                    p = Object.keys(o),
                    f = {},
                    g = {},
                    m = {};
                p.forEach((function(e) {
                    var r, n, i = o[e],
                        s = t + "/" + e;
                    "reducer" in i ? (r = i.reducer, n = i.prepare) : r = i, f[e] = r, g[s] = r, m[e] = n ? Ee(s, n) : Ee(s)
                }));
                var _ = function(e, t, r, o) {
                    void 0 === r && (r = []);
                    var s = "function" == typeof t ? xe(t) : [t, r, o],
                        a = s[0],
                        l = s[1],
                        c = s[2],
                        u = re(e, (function() {}));
                    return function(e, t) {
                        void 0 === e && (e = u);
                        var r = ue([a[t.type]], l.filter((function(e) {
                            return (0, e.matcher)(t)
                        })).map((function(e) {
                            return e.reducer
                        })));
                        return 0 === r.filter((function(e) {
                            return !!e
                        })).length && (r = [c]), r.reduce((function(e, r) {
                            if (r) {
                                var o;
                                if (n(e)) return void 0 === (o = r(e, t)) ? e : o;
                                if (i(e)) return re(e, (function(e) {
                                    return r(e, t)
                                }));
                                if (void 0 === (o = r(e, t))) {
                                    if (null === e) return e;
                                    throw Error("A case reducer on a non-draftable value must not return undefined")
                                }
                                return o
                            }
                            return e
                        }), e)
                    }
                }(r, ve(ve({}, l), g), u, h);
                return {
                    name: t,
                    reducer: _,
                    actions: m,
                    caseReducers: f
                }
            }
            var Ae = function(e) {
                    void 0 === e && (e = 21);
                    for (var t = "", r = e; r--;) t += "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW" [64 * Math.random() | 0];
                    return t
                },
                Me = ["name", "message", "stack", "code"],
                Le = function(e, t) {
                    this.payload = e, this.meta = t
                },
                Pe = function(e, t) {
                    this.payload = e, this.meta = t
                },
                Fe = function(e) {
                    if ("object" == typeof e && null !== e) {
                        for (var t = {}, r = 0, o = Me; r < o.length; r++) {
                            var n = o[r];
                            "string" == typeof e[n] && (t[n] = e[n])
                        }
                        return t
                    }
                    return {
                        message: String(e)
                    }
                };

            function Ie(e, t, r) {
                var o = Ee(e + "/fulfilled", (function(e, t, r, o) {
                        return {
                            payload: e,
                            meta: be(ve({}, o || {}), {
                                arg: r,
                                requestId: t,
                                requestStatus: "fulfilled"
                            })
                        }
                    })),
                    n = Ee(e + "/pending", (function(e, t, r) {
                        return {
                            payload: void 0,
                            meta: be(ve({}, r || {}), {
                                arg: t,
                                requestId: e,
                                requestStatus: "pending"
                            })
                        }
                    })),
                    i = Ee(e + "/rejected", (function(e, t, o, n, i) {
                        return {
                            payload: n,
                            error: (r && r.serializeError || Fe)(e || "Rejected"),
                            meta: be(ve({}, i || {}), {
                                arg: o,
                                requestId: t,
                                rejectedWithValue: !!n,
                                requestStatus: "rejected",
                                aborted: "AbortError" === (null == e ? void 0 : e.name),
                                condition: "ConditionError" === (null == e ? void 0 : e.name)
                            })
                        }
                    })),
                    s = "undefined" != typeof AbortController ? AbortController : function() {
                        function e() {
                            this.signal = {
                                aborted: !1,
                                addEventListener: function() {},
                                dispatchEvent: function() {
                                    return !1
                                },
                                onabort: function() {},
                                removeEventListener: function() {}
                            }
                        }
                        return e.prototype.abort = function() {
                            0
                        }, e
                    }();
                return Object.assign((function(e) {
                    return function(a, l, c) {
                        var u, d, h = (null != (u = null == r ? void 0 : r.idGenerator) ? u : Ae)(),
                            p = new s,
                            f = new Promise((function(e, t) {
                                return p.signal.addEventListener("abort", (function() {
                                    return t({
                                        name: "AbortError",
                                        message: d || "Aborted"
                                    })
                                }))
                            })),
                            g = !1;
                        var m = function() {
                            return s = this, u = null, d = function() {
                                var s, u, d;
                                return ce(this, (function(m) {
                                    switch (m.label) {
                                        case 0:
                                            if (m.trys.push([0, 2, , 3]), r && r.condition && !1 === r.condition(e, {
                                                    getState: l,
                                                    extra: c
                                                })) throw {
                                                name: "ConditionError",
                                                message: "Aborted due to condition callback returning false."
                                            };
                                            return g = !0, a(n(h, e, null == (s = null == r ? void 0 : r.getPendingMeta) ? void 0 : s.call(r, {
                                                requestId: h,
                                                arg: e
                                            }, {
                                                getState: l,
                                                extra: c
                                            }))), [4, Promise.race([f, Promise.resolve(t(e, {
                                                dispatch: a,
                                                getState: l,
                                                extra: c,
                                                requestId: h,
                                                signal: p.signal,
                                                rejectWithValue: function(e, t) {
                                                    return new Le(e, t)
                                                },
                                                fulfillWithValue: function(e, t) {
                                                    return new Pe(e, t)
                                                }
                                            })).then((function(t) {
                                                if (t instanceof Le) throw t;
                                                return t instanceof Pe ? o(t.payload, h, e, t.meta) : o(t, h, e)
                                            }))])];
                                        case 1:
                                            return u = m.sent(), [3, 3];
                                        case 2:
                                            return d = m.sent(), u = d instanceof Le ? i(null, h, e, d.payload, d.meta) : i(d, h, e), [3, 3];
                                        case 3:
                                            return r && !r.dispatchConditionRejection && i.match(u) && u.meta.condition || a(u), [2, u]
                                    }
                                }))
                            }, new Promise((function(e, t) {
                                var r = function(e) {
                                        try {
                                            n(d.next(e))
                                        } catch (e) {
                                            t(e)
                                        }
                                    },
                                    o = function(e) {
                                        try {
                                            n(d.throw(e))
                                        } catch (e) {
                                            t(e)
                                        }
                                    },
                                    n = function(t) {
                                        return t.done ? e(t.value) : Promise.resolve(t.value).then(r, o)
                                    };
                                n((d = d.apply(s, u)).next())
                            }));
                            var s, u, d
                        }();
                        return Object.assign(m, {
                            abort: function(e) {
                                g && (d = e, p.abort())
                            },
                            requestId: h,
                            arg: e,
                            unwrap: function() {
                                return m.then(De)
                            }
                        })
                    }
                }), {
                    pending: n,
                    rejected: i,
                    fulfilled: o,
                    typePrefix: e
                })
            }

            function De(e) {
                if (e.meta && e.meta.rejectedWithValue) throw e.payload;
                if (e.error) throw e.error;
                return e.payload
            }
            N()
        },
        16282: (e, t) => {
            "use strict";

            function r(e, t) {
                if (void 0 === e) throw new Error((null != t ? t : "Value") + " is undefined");
                return e
            }

            function o(e, t) {
                if (null === e) throw new Error((null != t ? t : "Value") + " is null");
                return e
            }
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.ensureNever = t.ensure = t.ensureNotNull = t.ensureDefined = t.assert = void 0, t.assert = function(e, t) {
                if (!e) throw new Error("Assertion failed" + (t ? ": " + t : ""))
            }, t.ensureDefined = r, t.ensureNotNull = o, t.ensure = function(e, t) {
                return o(r(e, t), t)
            }, t.ensureNever = function(e) {}
        },
        75496: (e, t) => {
            "use strict";

            function r(e) {
                return Math.round(1e10 * e) / 1e10
            }
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.alignTo = t.fixComputationError = t.isNaN = t.isInteger = t.isNumber = void 0, t.isNumber = function(e) {
                return "number" == typeof e && isFinite(e)
            }, t.isInteger = function(e) {
                return "number" == typeof e && e % 1 == 0
            }, t.isNaN = function(e) {
                return !(e <= 0 || e > 0)
            }, t.fixComputationError = r, t.alignTo = function(e, t) {
                var o = e / t,
                    n = Math.floor(o),
                    i = o - n;
                return i > 2e-10 ? r(i > .5 ? (n + 1) * t : n * t) : e
            }
        },
        14563: (e, t, r) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            });
            var o = r(75496);

            function n(e, t, r) {
                return o.isNaN(t) || t < e ? e : t > r ? r : Math.round(t)
            }

            function i(e, t, r) {
                return o.isNaN(t) || t < e ? e : t > r ? r : Math.round(1e4 * t) / 1e4
            }

            function s(e) {
                return n(0, e, 255)
            }

            function a(e) {
                return n(0, e, 255)
            }

            function l(e) {
                return n(0, e, 255)
            }

            function c(e) {
                return i(0, e, 1)
            }

            function u(e) {
                return i(0, e, 1)
            }

            function d(e) {
                return i(0, e, 1)
            }

            function h(e) {
                return i(0, e, 1)
            }

            function p(e) {
                return i(0, e, 1)
            }

            function f(e) {
                return i(0, e, 1)
            }

            function g(e) {
                var t = e[0] / 255,
                    r = e[1] / 255,
                    o = e[2] / 255,
                    n = Math.min(t, r, o),
                    i = Math.max(t, r, o),
                    s = 0,
                    a = 0,
                    l = (n + i) / 2;
                if (n === i) s = 0, a = 0;
                else {
                    var c = i - n;
                    switch (a = l > .5 ? c / (2 - i - n) : c / (i + n), i) {
                        case t:
                            s = ((r - o) / c + (r < o ? 6 : 0)) / 6;
                            break;
                        case r:
                            s = ((o - t) / c + 2) / 6;
                            break;
                        case o:
                            s = ((t - r) / c + 4) / 6
                    }
                }
                return [s, a, l]
            }

            function m(e, t, r) {
                return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? e + 6 * (t - e) * r : r < .5 ? t : r < 2 / 3 ? e + (t - e) * (2 / 3 - r) * 6 : e
            }

            function _(e) {
                var t, r, o, n = e[0],
                    i = e[1],
                    c = e[2];
                if (0 === i) t = r = o = c;
                else {
                    var u = c < .5 ? c * (1 + i) : c + i - c * i,
                        d = 2 * c - u;
                    t = m(d, u, n + 1 / 3), r = m(d, u, n), o = m(d, u, n - 1 / 3)
                }
                return [s(255 * t), a(255 * r), l(255 * o)]
            }
            t.normalizeRedComponent = s, t.normalizeGreenComponent = a, t.normalizeBlueComponent = l, t.normalizeAlphaComponent = c, t.rgb = function(e, t, r) {
                return [s(e), a(t), l(r)]
            }, t.areEqualRgb = function(e, t) {
                return e[0] === t[0] && e[1] === t[1] && e[2] === t[2]
            }, t.rgba = function(e, t, r, o) {
                if (Array.isArray(e)) {
                    var n = e;
                    return o = t, [n[0], n[1], n[2], c(o)]
                }
                var i = t;
                return r = r || 0, o = o || 0, [s(e), a(i), l(r), c(o)]
            }, t.areEqualRgba = function(e, t) {
                return e[0] === t[0] && e[1] === t[1] && e[2] === t[2] && e[3] === t[3]
            }, t.normalizeHue = u, t.normalizeHslSaturation = d, t.normalizeHsvSaturation = h, t.normalizeLightness = p, t.normalizeValue = f, t.hsl = function(e, t, r) {
                return [u(e), d(t), p(r)]
            }, t.areEqualHsl = function(e, t) {
                return e[0] === t[0] && e[1] === t[1] && e[2] === t[2]
            }, t.hsv = function(e, t, r) {
                return [u(e), h(t), f(r)]
            }, t.areEqualHsv = function(e, t) {
                return e[0] === t[0] && e[1] === t[1] && e[2] === t[2]
            }, t.rgbToHsl = g, t.hslToRgb = _, t.rgbToHsv = function(e) {
                var t = e[0],
                    r = e[1],
                    o = e[2],
                    n = t / 255,
                    i = r / 255,
                    s = o / 255,
                    a = Math.min(n, i, s),
                    l = Math.max(n, i, s),
                    c = l - a,
                    u = 0,
                    d = 0 === l ? 0 : c / l,
                    h = l;
                if (l === a) u = 0;
                else switch (l) {
                    case t:
                        u = ((i - s) / c + (i < s ? 6 : 0)) / 6;
                        break;
                    case r:
                        u = ((s - n) / c + 2) / 6;
                        break;
                    case o:
                        u = ((n - i) / c + 4) / 6
                }
                return [u, d, h]
            }, t.hsvToRgb = function(e) {
                var t = e[0],
                    r = e[1],
                    o = e[2],
                    n = Math.floor(6 * t),
                    i = 6 * t - n,
                    c = o * (1 - r),
                    u = o * (1 - i * r),
                    d = o * (1 - (1 - i) * r),
                    h = 0,
                    p = 0,
                    f = 0;
                switch (n % 6) {
                    case 0:
                        h = o, p = d, f = c;
                        break;
                    case 1:
                        h = u, p = o, f = c;
                        break;
                    case 2:
                        h = c, p = o, f = d;
                        break;
                    case 3:
                        h = c, p = u, f = o;
                        break;
                    case 4:
                        h = d, p = c, f = o;
                        break;
                    case 5:
                        h = o, p = c, f = u
                }
                return [s(255 * h), a(255 * p), l(255 * f)]
            };
            var v = [.199, .687, .114];

            function b(e) {
                return v[0] * e[0] + v[1] * e[1] + v[2] * e[2]
            }

            function y(e, t, r) {
                void 0 === r && (r = .05);
                var o = g(e),
                    n = o[0] + t * r;
                return o[0] = u(n - Math.floor(n)), _(o)
            }

            function w(e, t, r) {
                void 0 === r && (r = .05);
                var o = e[0],
                    n = e[1],
                    i = e[2],
                    s = e[3],
                    a = y([o, n, i], t, r);
                return [a[0], a[1], a[2], s]
            }
            t.rgbToGrayscale = b, t.distanceRgb = function(e, t) {
                var r = e[0],
                    o = e[1],
                    n = e[2],
                    i = t[0] - r,
                    s = t[1] - o,
                    a = t[2] - n;
                return Math.sqrt(i * i + s * s + a * a)
            }, t.invertRgb = function(e) {
                return [255 - e[0], 255 - e[1], 255 - e[2]]
            }, t.darkenRgb = function(e, t) {
                var r = g(e);
                return _([r[0], r[1], p(r[2] - t / 100)])
            }, t.blendRgba = function(e, t) {
                var r = e[0],
                    o = e[1],
                    n = e[2],
                    i = e[3],
                    u = t[0],
                    d = t[1],
                    h = t[2],
                    p = t[3],
                    f = c(1 - (1 - p) * (1 - i));
                return [s(u * p / f + r * i * (1 - p) / f), a(d * p / f + o * i * (1 - p) / f), l(h * p / f + n * i * (1 - p) / f), f]
            }, t.shiftRgb = y, t.shiftRgba = w, t.shiftColor = function(e, t, r) {
                return void 0 === r && (r = .05), F(w(O(e), t, r))
            };
            var S, C, k, E, x = {
                aliceblue: "#f0f8ff",
                antiquewhite: "#faebd7",
                aqua: "#00ffff",
                aquamarine: "#7fffd4",
                azure: "#f0ffff",
                beige: "#f5f5dc",
                bisque: "#ffe4c4",
                black: "#000000",
                blanchedalmond: "#ffebcd",
                blue: "#0000ff",
                blueviolet: "#8a2be2",
                brown: "#a52a2a",
                burlywood: "#deb887",
                cadetblue: "#5f9ea0",
                chartreuse: "#7fff00",
                chocolate: "#d2691e",
                coral: "#ff7f50",
                cornflowerblue: "#6495ed",
                cornsilk: "#fff8dc",
                crimson: "#dc143c",
                cyan: "#00ffff",
                darkblue: "#00008b",
                darkcyan: "#008b8b",
                darkgoldenrod: "#b8860b",
                darkgray: "#a9a9a9",
                darkgreen: "#006400",
                darkkhaki: "#bdb76b",
                darkmagenta: "#8b008b",
                darkolivegreen: "#556b2f",
                darkorange: "#ff8c00",
                darkorchid: "#9932cc",
                darkred: "#8b0000",
                darksalmon: "#e9967a",
                darkseagreen: "#8fbc8f",
                darkslateblue: "#483d8b",
                darkslategray: "#2f4f4f",
                darkturquoise: "#00ced1",
                darkviolet: "#9400d3",
                deeppink: "#ff1493",
                deepskyblue: "#00bfff",
                dimgray: "#696969",
                dodgerblue: "#1e90ff",
                feldspar: "#d19275",
                firebrick: "#b22222",
                floralwhite: "#fffaf0",
                forestgreen: "#228b22",
                fuchsia: "#ff00ff",
                gainsboro: "#dcdcdc",
                ghostwhite: "#f8f8ff",
                gold: "#ffd700",
                goldenrod: "#daa520",
                gray: "#808080",
                green: "#008000",
                greenyellow: "#adff2f",
                honeydew: "#f0fff0",
                hotpink: "#ff69b4",
                indianred: "#cd5c5c",
                indigo: "#4b0082",
                ivory: "#fffff0",
                khaki: "#f0e68c",
                lavender: "#e6e6fa",
                lavenderblush: "#fff0f5",
                lawngreen: "#7cfc00",
                lemonchiffon: "#fffacd",
                lightblue: "#add8e6",
                lightcoral: "#f08080",
                lightcyan: "#e0ffff",
                lightgoldenrodyellow: "#fafad2",
                lightgreen: "#90ee90",
                lightgrey: "#d3d3d3",
                lightpink: "#ffb6c1",
                lightsalmon: "#ffa07a",
                lightseagreen: "#20b2aa",
                lightskyblue: "#87cefa",
                lightslateblue: "#8470ff",
                lightslategray: "#778899",
                lightsteelblue: "#b0c4de",
                lightyellow: "#ffffe0",
                lime: "#00ff00",
                limegreen: "#32cd32",
                linen: "#faf0e6",
                magenta: "#ff00ff",
                maroon: "#800000",
                mediumaquamarine: "#66cdaa",
                mediumblue: "#0000cd",
                mediumorchid: "#ba55d3",
                mediumpurple: "#9370d8",
                mediumseagreen: "#3cb371",
                mediumslateblue: "#7b68ee",
                mediumspringgreen: "#00fa9a",
                mediumturquoise: "#48d1cc",
                mediumvioletred: "#c71585",
                midnightblue: "#191970",
                mintcream: "#f5fffa",
                mistyrose: "#ffe4e1",
                moccasin: "#ffe4b5",
                navajowhite: "#ffdead",
                navy: "#000080",
                oldlace: "#fdf5e6",
                olive: "#808000",
                olivedrab: "#6b8e23",
                orange: "#ffa500",
                orangered: "#ff4500",
                orchid: "#da70d6",
                palegoldenrod: "#eee8aa",
                palegreen: "#98fb98",
                paleturquoise: "#afeeee",
                palevioletred: "#d87093",
                papayawhip: "#ffefd5",
                peachpuff: "#ffdab9",
                peru: "#cd853f",
                pink: "#ffc0cb",
                plum: "#dda0dd",
                powderblue: "#b0e0e6",
                purple: "#800080",
                red: "#ff0000",
                rosybrown: "#bc8f8f",
                royalblue: "#4169e1",
                saddlebrown: "#8b4513",
                salmon: "#fa8072",
                sandybrown: "#f4a460",
                seagreen: "#2e8b57",
                seashell: "#fff5ee",
                sienna: "#a0522d",
                silver: "#c0c0c0",
                skyblue: "#87ceeb",
                slateblue: "#6a5acd",
                slategray: "#708090",
                snow: "#fffafa",
                springgreen: "#00ff7f",
                steelblue: "#4682b4",
                tan: "#d2b48c",
                teal: "#008080",
                thistle: "#d8bfd8",
                tomato: "#ff6347",
                turquoise: "#40e0d0",
                violet: "#ee82ee",
                violetred: "#d02090",
                wheat: "#f5deb3",
                white: "#ffffff",
                whitesmoke: "#f5f5f5",
                yellow: "#ffff00",
                yellowgreen: "#9acd32"
            };

            function T(e, t) {
                return t in e
            }

            function A(e) {
                var t = S.re.exec(e);
                return null !== t ? S.parse(t) : null
            }

            function M(e) {
                var t = C.re.exec(e);
                return null !== t ? C.parse(t) : null
            }

            function L(e) {
                var t = k.re.exec(e);
                return null !== t ? k.parse(t) : null
            }

            function P(e) {
                var t = E.re.exec(e);
                return null !== t ? E.parse(t) : null
            }

            function F(e) {
                return "rgba(" + e[0] + ", " + e[1] + ", " + e[2] + ", " + e[3] + ")"
            }

            function I(e) {
                if (e = e.toLowerCase(), T(x, e)) {
                    var t = M(x[e]);
                    if (null !== t) return t;
                    throw new Error("Invalid named color definition")
                }
                var r = A(e);
                if (null !== r) return r;
                var o = M(e);
                if (null !== o) return o;
                var n = L(e);
                if (null !== n) return n;
                var i = P(e);
                return null !== i ? [i[0], i[1], i[2]] : null
            }

            function D(e) {
                if (e = e.toLowerCase(), T(x, e)) {
                    var t = M(x[e]);
                    if (null !== t) return [t[0], t[1], t[2], 1];
                    throw new Error("Invalid named color definition")
                }
                var r = A(e);
                if (null !== r) return [r[0], r[1], r[2], 1];
                var o = M(e);
                if (null !== o) return [o[0], o[1], o[2], 1];
                var n = L(e);
                if (null !== n) return [n[0], n[1], n[2], 1];
                var i = P(e);
                return null !== i ? i : null
            }

            function O(e) {
                var t = D(e);
                if (null !== t) return t;
                throw new Error("Passed color string does not match any of the known color representations")
            }! function(e) {
                e.re = /^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/, e.parse = function(e) {
                    return [s(parseInt(e[1], 10)), a(parseInt(e[2], 10)), l(parseInt(e[3], 10))]
                }
            }(S || (S = {})), t.rgbToString = function(e) {
                    return "rgb(" + e[0] + ", " + e[1] + ", " + e[2] + ")"
                },
                function(e) {
                    e.re = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, e.parse = function(e) {
                        return [s(parseInt(e[1], 16)), a(parseInt(e[2], 16)), l(parseInt(e[3], 16))]
                    }
                }(C || (C = {})), t.rgbToHexString = function(e) {
                    var t = e[0],
                        r = e[1],
                        o = e[2],
                        n = t.toString(16),
                        i = r.toString(16),
                        s = o.toString(16);
                    return "#" + (1 === n.length ? "0" : "") + n + (1 === i.length ? "0" : "") + i + (1 === s.length ? "0" : "") + s
                },
                function(e) {
                    e.re = /^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/, e.parse = function(e) {
                        return [s(parseInt(e[1] + e[1], 16)), a(parseInt(e[2] + e[2], 16)), l(parseInt(e[3] + e[3], 16))]
                    }
                }(k || (k = {})),
                function(e) {
                    e.re = /^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/, e.parse = function(e) {
                        return [s(parseInt(e[1], 10)), a(parseInt(e[2], 10)), l(parseInt(e[3], 10)), c(parseFloat(e[4]))]
                    }
                }(E || (E = {})), t.rgbaToString = F, t.rgbToBlackWhiteString = function(e, t) {
                    if (t < 0 || t > 255) throw new Error("invalid threshold value, valid values are [0, 255]");
                    return b(e) >= t ? "white" : "black"
                }, t.tryParseRgb = I, t.parseRgb = function(e) {
                    var t = I(e);
                    if (null !== t) return t;
                    throw new Error("Passed color string does not match any of the known color representations")
                }, t.tryParseRgba = D, t.parseRgba = O
        },
        1529: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                default: () => k
            });
            var o = function() {
                    if ("undefined" != typeof Map) return Map;

                    function e(e, t) {
                        var r = -1;
                        return e.some((function(e, o) {
                            return e[0] === t && (r = o, !0)
                        })), r
                    }
                    return function() {
                        function t() {
                            this.__entries__ = []
                        }
                        return Object.defineProperty(t.prototype, "size", {
                            get: function() {
                                return this.__entries__.length
                            },
                            enumerable: !0,
                            configurable: !0
                        }), t.prototype.get = function(t) {
                            var r = e(this.__entries__, t),
                                o = this.__entries__[r];
                            return o && o[1]
                        }, t.prototype.set = function(t, r) {
                            var o = e(this.__entries__, t);
                            ~o ? this.__entries__[o][1] = r : this.__entries__.push([t, r])
                        }, t.prototype.delete = function(t) {
                            var r = this.__entries__,
                                o = e(r, t);
                            ~o && r.splice(o, 1)
                        }, t.prototype.has = function(t) {
                            return !!~e(this.__entries__, t)
                        }, t.prototype.clear = function() {
                            this.__entries__.splice(0)
                        }, t.prototype.forEach = function(e, t) {
                            void 0 === t && (t = null);
                            for (var r = 0, o = this.__entries__; r < o.length; r++) {
                                var n = o[r];
                                e.call(t, n[1], n[0])
                            }
                        }, t
                    }()
                }(),
                n = "undefined" != typeof window && "undefined" != typeof document && window.document === document,
                i = void 0 !== r.g && r.g.Math === Math ? r.g : "undefined" != typeof self && self.Math === Math ? self : "undefined" != typeof window && window.Math === Math ? window : Function("return this")(),
                s = "function" == typeof requestAnimationFrame ? requestAnimationFrame.bind(i) : function(e) {
                    return setTimeout((function() {
                        return e(Date.now())
                    }), 1e3 / 60)
                };
            var a = ["top", "right", "bottom", "left", "width", "height", "size", "weight"],
                l = "undefined" != typeof MutationObserver,
                c = function() {
                    function e() {
                        this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = function(e, t) {
                            var r = !1,
                                o = !1,
                                n = 0;

                            function i() {
                                r && (r = !1, e()), o && l()
                            }

                            function a() {
                                s(i)
                            }

                            function l() {
                                var e = Date.now();
                                if (r) {
                                    if (e - n < 2) return;
                                    o = !0
                                } else r = !0, o = !1, setTimeout(a, t);
                                n = e
                            }
                            return l
                        }(this.refresh.bind(this), 20)
                    }
                    return e.prototype.addObserver = function(e) {
                        ~this.observers_.indexOf(e) || this.observers_.push(e), this.connected_ || this.connect_()
                    }, e.prototype.removeObserver = function(e) {
                        var t = this.observers_,
                            r = t.indexOf(e);
                        ~r && t.splice(r, 1), !t.length && this.connected_ && this.disconnect_()
                    }, e.prototype.refresh = function() {
                        this.updateObservers_() && this.refresh()
                    }, e.prototype.updateObservers_ = function() {
                        var e = this.observers_.filter((function(e) {
                            return e.gatherActive(), e.hasActive()
                        }));
                        return e.forEach((function(e) {
                            return e.broadcastActive()
                        })), e.length > 0
                    }, e.prototype.connect_ = function() {
                        n && !this.connected_ && (document.addEventListener("transitionend", this.onTransitionEnd_), window.addEventListener("resize", this.refresh), l ? (this.mutationsObserver_ = new MutationObserver(this.refresh), this.mutationsObserver_.observe(document, {
                            attributes: !0,
                            childList: !0,
                            characterData: !0,
                            subtree: !0
                        })) : (document.addEventListener("DOMSubtreeModified", this.refresh), this.mutationEventsAdded_ = !0), this.connected_ = !0)
                    }, e.prototype.disconnect_ = function() {
                        n && this.connected_ && (document.removeEventListener("transitionend", this.onTransitionEnd_), window.removeEventListener("resize", this.refresh), this.mutationsObserver_ && this.mutationsObserver_.disconnect(), this.mutationEventsAdded_ && document.removeEventListener("DOMSubtreeModified", this.refresh), this.mutationsObserver_ = null, this.mutationEventsAdded_ = !1, this.connected_ = !1)
                    }, e.prototype.onTransitionEnd_ = function(e) {
                        var t = e.propertyName,
                            r = void 0 === t ? "" : t;
                        a.some((function(e) {
                            return !!~r.indexOf(e)
                        })) && this.refresh()
                    }, e.getInstance = function() {
                        return this.instance_ || (this.instance_ = new e), this.instance_
                    }, e.instance_ = null, e
                }(),
                u = function(e, t) {
                    for (var r = 0, o = Object.keys(t); r < o.length; r++) {
                        var n = o[r];
                        Object.defineProperty(e, n, {
                            value: t[n],
                            enumerable: !1,
                            writable: !1,
                            configurable: !0
                        })
                    }
                    return e
                },
                d = function(e) {
                    return e && e.ownerDocument && e.ownerDocument.defaultView || i
                },
                h = v(0, 0, 0, 0);

            function p(e) {
                return parseFloat(e) || 0
            }

            function f(e) {
                for (var t = [], r = 1; r < arguments.length; r++) t[r - 1] = arguments[r];
                return t.reduce((function(t, r) {
                    return t + p(e["border-" + r + "-width"])
                }), 0)
            }

            function g(e) {
                var t = e.clientWidth,
                    r = e.clientHeight;
                if (!t && !r) return h;
                var o = d(e).getComputedStyle(e),
                    n = function(e) {
                        for (var t = {}, r = 0, o = ["top", "right", "bottom", "left"]; r < o.length; r++) {
                            var n = o[r],
                                i = e["padding-" + n];
                            t[n] = p(i)
                        }
                        return t
                    }(o),
                    i = n.left + n.right,
                    s = n.top + n.bottom,
                    a = p(o.width),
                    l = p(o.height);
                if ("border-box" === o.boxSizing && (Math.round(a + i) !== t && (a -= f(o, "left", "right") + i), Math.round(l + s) !== r && (l -= f(o, "top", "bottom") + s)), ! function(e) {
                        return e === d(e).document.documentElement
                    }(e)) {
                    var c = Math.round(a + i) - t,
                        u = Math.round(l + s) - r;
                    1 !== Math.abs(c) && (a -= c), 1 !== Math.abs(u) && (l -= u)
                }
                return v(n.left, n.top, a, l)
            }
            var m = "undefined" != typeof SVGGraphicsElement ? function(e) {
                return e instanceof d(e).SVGGraphicsElement
            } : function(e) {
                return e instanceof d(e).SVGElement && "function" == typeof e.getBBox
            };

            function _(e) {
                return n ? m(e) ? function(e) {
                    var t = e.getBBox();
                    return v(0, 0, t.width, t.height)
                }(e) : g(e) : h
            }

            function v(e, t, r, o) {
                return {
                    x: e,
                    y: t,
                    width: r,
                    height: o
                }
            }
            var b = function() {
                    function e(e) {
                        this.broadcastWidth = 0, this.broadcastHeight = 0, this.contentRect_ = v(0, 0, 0, 0), this.target = e
                    }
                    return e.prototype.isActive = function() {
                        var e = _(this.target);
                        return this.contentRect_ = e, e.width !== this.broadcastWidth || e.height !== this.broadcastHeight
                    }, e.prototype.broadcastRect = function() {
                        var e = this.contentRect_;
                        return this.broadcastWidth = e.width, this.broadcastHeight = e.height, e
                    }, e
                }(),
                y = function(e, t) {
                    var r, o, n, i, s, a, l, c = (o = (r = t).x, n = r.y, i = r.width, s = r.height, a = "undefined" != typeof DOMRectReadOnly ? DOMRectReadOnly : Object, l = Object.create(a.prototype), u(l, {
                        x: o,
                        y: n,
                        width: i,
                        height: s,
                        top: n,
                        right: o + i,
                        bottom: s + n,
                        left: o
                    }), l);
                    u(this, {
                        target: e,
                        contentRect: c
                    })
                },
                w = function() {
                    function e(e, t, r) {
                        if (this.activeObservations_ = [], this.observations_ = new o, "function" != typeof e) throw new TypeError("The callback provided as parameter 1 is not a function.");
                        this.callback_ = e, this.controller_ = t, this.callbackCtx_ = r
                    }
                    return e.prototype.observe = function(e) {
                        if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
                        if ("undefined" != typeof Element && Element instanceof Object) {
                            if (!(e instanceof d(e).Element)) throw new TypeError('parameter 1 is not of type "Element".');
                            var t = this.observations_;
                            t.has(e) || (t.set(e, new b(e)), this.controller_.addObserver(this), this.controller_.refresh())
                        }
                    }, e.prototype.unobserve = function(e) {
                        if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
                        if ("undefined" != typeof Element && Element instanceof Object) {
                            if (!(e instanceof d(e).Element)) throw new TypeError('parameter 1 is not of type "Element".');
                            var t = this.observations_;
                            t.has(e) && (t.delete(e), t.size || this.controller_.removeObserver(this))
                        }
                    }, e.prototype.disconnect = function() {
                        this.clearActive(), this.observations_.clear(), this.controller_.removeObserver(this)
                    }, e.prototype.gatherActive = function() {
                        var e = this;
                        this.clearActive(), this.observations_.forEach((function(t) {
                            t.isActive() && e.activeObservations_.push(t)
                        }))
                    }, e.prototype.broadcastActive = function() {
                        if (this.hasActive()) {
                            var e = this.callbackCtx_,
                                t = this.activeObservations_.map((function(e) {
                                    return new y(e.target, e.broadcastRect())
                                }));
                            this.callback_.call(e, t, e), this.clearActive()
                        }
                    }, e.prototype.clearActive = function() {
                        this.activeObservations_.splice(0)
                    }, e.prototype.hasActive = function() {
                        return this.activeObservations_.length > 0
                    }, e
                }(),
                S = "undefined" != typeof WeakMap ? new WeakMap : new o,
                C = function e(t) {
                    if (!(this instanceof e)) throw new TypeError("Cannot call a class as a function.");
                    if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
                    var r = c.getInstance(),
                        o = new w(t, r, this);
                    S.set(this, o)
                };
            ["observe", "unobserve", "disconnect"].forEach((function(e) {
                C.prototype[e] = function() {
                    var t;
                    return (t = S.get(this))[e].apply(t, arguments)
                }
            }));
            const k = void 0 !== i.ResizeObserver ? i.ResizeObserver : C
        },
        93302: function(e, t, r) {
            var o;
            ! function(n) {
                "use strict";
                var i, s = "[big.js] ",
                    a = s + "Invalid ",
                    l = a + "decimal places",
                    c = {},
                    u = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;

                function d(e, t, r, o) {
                    var n = e.c;
                    if (void 0 === r && (r = e.constructor.RM), 0 !== r && 1 !== r && 2 !== r && 3 !== r) throw Error("[big.js] Invalid rounding mode");
                    if (t < 1) o = 3 === r && (o || !!n[0]) || 0 === t && (1 === r && n[0] >= 5 || 2 === r && (n[0] > 5 || 5 === n[0] && (o || void 0 !== n[1]))), n.length = 1, o ? (e.e = e.e - t + 1, n[0] = 1) : n[0] = e.e = 0;
                    else if (t < n.length) {
                        if (o = 1 === r && n[t] >= 5 || 2 === r && (n[t] > 5 || 5 === n[t] && (o || void 0 !== n[t + 1] || 1 & n[t - 1])) || 3 === r && (o || !!n[0]), n.length = t--, o)
                            for (; ++n[t] > 9;) n[t] = 0, t-- || (++e.e, n.unshift(1));
                        for (t = n.length; !n[--t];) n.pop()
                    }
                    return e
                }

                function h(e, t, r) {
                    var o = e.e,
                        n = e.c.join(""),
                        i = n.length;
                    if (t) n = n.charAt(0) + (i > 1 ? "." + n.slice(1) : "") + (o < 0 ? "e" : "e+") + o;
                    else if (o < 0) {
                        for (; ++o;) n = "0" + n;
                        n = "0." + n
                    } else if (o > 0)
                        if (++o > i)
                            for (o -= i; o--;) n += "0";
                        else o < i && (n = n.slice(0, o) + "." + n.slice(o));
                    else i > 1 && (n = n.charAt(0) + "." + n.slice(1));
                    return e.s < 0 && r ? "-" + n : n
                }
                c.abs = function() {
                    var e = new this.constructor(this);
                    return e.s = 1, e
                }, c.cmp = function(e) {
                    var t, r = this,
                        o = r.c,
                        n = (e = new r.constructor(e)).c,
                        i = r.s,
                        s = e.s,
                        a = r.e,
                        l = e.e;
                    if (!o[0] || !n[0]) return o[0] ? i : n[0] ? -s : 0;
                    if (i != s) return i;
                    if (t = i < 0, a != l) return a > l ^ t ? 1 : -1;
                    for (s = (a = o.length) < (l = n.length) ? a : l, i = -1; ++i < s;)
                        if (o[i] != n[i]) return o[i] > n[i] ^ t ? 1 : -1;
                    return a == l ? 0 : a > l ^ t ? 1 : -1
                }, c.div = function(e) {
                    var t = this,
                        r = t.constructor,
                        o = t.c,
                        n = (e = new r(e)).c,
                        i = t.s == e.s ? 1 : -1,
                        s = r.DP;
                    if (s !== ~~s || s < 0 || s > 1e6) throw Error(l);
                    if (!n[0]) throw Error("[big.js] Division by zero");
                    if (!o[0]) return e.s = i, e.c = [e.e = 0], e;
                    var a, c, u, h, p, f = n.slice(),
                        g = a = n.length,
                        m = o.length,
                        _ = o.slice(0, a),
                        v = _.length,
                        b = e,
                        y = b.c = [],
                        w = 0,
                        S = s + (b.e = t.e - e.e) + 1;
                    for (b.s = i, i = S < 0 ? 0 : S, f.unshift(0); v++ < a;) _.push(0);
                    do {
                        for (u = 0; u < 10; u++) {
                            if (a != (v = _.length)) h = a > v ? 1 : -1;
                            else
                                for (p = -1, h = 0; ++p < a;)
                                    if (n[p] != _[p]) {
                                        h = n[p] > _[p] ? 1 : -1;
                                        break
                                    } if (!(h < 0)) break;
                            for (c = v == a ? n : f; v;) {
                                if (_[--v] < c[v]) {
                                    for (p = v; p && !_[--p];) _[p] = 9;
                                    --_[p], _[v] += 10
                                }
                                _[v] -= c[v]
                            }
                            for (; !_[0];) _.shift()
                        }
                        y[w++] = h ? u : ++u, _[0] && h ? _[v] = o[g] || 0 : _ = [o[g]]
                    } while ((g++ < m || void 0 !== _[0]) && i--);
                    return y[0] || 1 == w || (y.shift(), b.e--, S--), w > S && d(b, S, r.RM, void 0 !== _[0]), b
                }, c.eq = function(e) {
                    return 0 === this.cmp(e)
                }, c.gt = function(e) {
                    return this.cmp(e) > 0
                }, c.gte = function(e) {
                    return this.cmp(e) > -1
                }, c.lt = function(e) {
                    return this.cmp(e) < 0
                }, c.lte = function(e) {
                    return this.cmp(e) < 1
                }, c.minus = c.sub = function(e) {
                    var t, r, o, n, i = this,
                        s = i.constructor,
                        a = i.s,
                        l = (e = new s(e)).s;
                    if (a != l) return e.s = -l, i.plus(e);
                    var c = i.c.slice(),
                        u = i.e,
                        d = e.c,
                        h = e.e;
                    if (!c[0] || !d[0]) return d[0] ? e.s = -l : c[0] ? e = new s(i) : e.s = 1, e;
                    if (a = u - h) {
                        for ((n = a < 0) ? (a = -a, o = c) : (h = u, o = d), o.reverse(), l = a; l--;) o.push(0);
                        o.reverse()
                    } else
                        for (r = ((n = c.length < d.length) ? c : d).length, a = l = 0; l < r; l++)
                            if (c[l] != d[l]) {
                                n = c[l] < d[l];
                                break
                            } if (n && (o = c, c = d, d = o, e.s = -e.s), (l = (r = d.length) - (t = c.length)) > 0)
                        for (; l--;) c[t++] = 0;
                    for (l = t; r > a;) {
                        if (c[--r] < d[r]) {
                            for (t = r; t && !c[--t];) c[t] = 9;
                            --c[t], c[r] += 10
                        }
                        c[r] -= d[r]
                    }
                    for (; 0 === c[--l];) c.pop();
                    for (; 0 === c[0];) c.shift(), --h;
                    return c[0] || (e.s = 1, c = [h = 0]), e.c = c, e.e = h, e
                }, c.mod = function(e) {
                    var t, r = this,
                        o = r.constructor,
                        n = r.s,
                        i = (e = new o(e)).s;
                    if (!e.c[0]) throw Error("[big.js] Division by zero");
                    return r.s = e.s = 1, t = 1 == e.cmp(r), r.s = n, e.s = i, t ? new o(r) : (n = o.DP, i = o.RM, o.DP = o.RM = 0, r = r.div(e), o.DP = n, o.RM = i, this.minus(r.times(e)))
                }, c.plus = c.add = function(e) {
                    var t, r, o, n = this,
                        i = n.constructor;
                    if (e = new i(e), n.s != e.s) return e.s = -e.s, n.minus(e);
                    var s = n.e,
                        a = n.c,
                        l = e.e,
                        c = e.c;
                    if (!a[0] || !c[0]) return c[0] || (a[0] ? e = new i(n) : e.s = n.s), e;
                    if (a = a.slice(), t = s - l) {
                        for (t > 0 ? (l = s, o = c) : (t = -t, o = a), o.reverse(); t--;) o.push(0);
                        o.reverse()
                    }
                    for (a.length - c.length < 0 && (o = c, c = a, a = o), t = c.length, r = 0; t; a[t] %= 10) r = (a[--t] = a[t] + c[t] + r) / 10 | 0;
                    for (r && (a.unshift(r), ++l), t = a.length; 0 === a[--t];) a.pop();
                    return e.c = a, e.e = l, e
                }, c.pow = function(e) {
                    var t = this,
                        r = new t.constructor("1"),
                        o = r,
                        n = e < 0;
                    if (e !== ~~e || e < -1e6 || e > 1e6) throw Error(a + "exponent");
                    for (n && (e = -e); 1 & e && (o = o.times(t)), e >>= 1;) t = t.times(t);
                    return n ? r.div(o) : o
                }, c.prec = function(e, t) {
                    if (e !== ~~e || e < 1 || e > 1e6) throw Error(a + "precision");
                    return d(new this.constructor(this), e, t)
                }, c.round = function(e, t) {
                    if (void 0 === e) e = 0;
                    else if (e !== ~~e || e < -1e6 || e > 1e6) throw Error(l);
                    return d(new this.constructor(this), e + this.e + 1, t)
                }, c.sqrt = function() {
                    var e, t, r, o = this,
                        n = o.constructor,
                        i = o.s,
                        a = o.e,
                        l = new n("0.5");
                    if (!o.c[0]) return new n(o);
                    if (i < 0) throw Error(s + "No square root");
                    0 === (i = Math.sqrt(o + "")) || i === 1 / 0 ? ((t = o.c.join("")).length + a & 1 || (t += "0"), a = ((a + 1) / 2 | 0) - (a < 0 || 1 & a), e = new n(((i = Math.sqrt(t)) == 1 / 0 ? "5e" : (i = i.toExponential()).slice(0, i.indexOf("e") + 1)) + a)) : e = new n(i + ""), a = e.e + (n.DP += 4);
                    do {
                        r = e, e = l.times(r.plus(o.div(r)))
                    } while (r.c.slice(0, a).join("") !== e.c.slice(0, a).join(""));
                    return d(e, (n.DP -= 4) + e.e + 1, n.RM)
                }, c.times = c.mul = function(e) {
                    var t, r = this,
                        o = r.constructor,
                        n = r.c,
                        i = (e = new o(e)).c,
                        s = n.length,
                        a = i.length,
                        l = r.e,
                        c = e.e;
                    if (e.s = r.s == e.s ? 1 : -1, !n[0] || !i[0]) return e.c = [e.e = 0], e;
                    for (e.e = l + c, s < a && (t = n, n = i, i = t, c = s, s = a, a = c), t = new Array(c = s + a); c--;) t[c] = 0;
                    for (l = a; l--;) {
                        for (a = 0, c = s + l; c > l;) a = t[c] + i[l] * n[c - l - 1] + a, t[c--] = a % 10, a = a / 10 | 0;
                        t[c] = a
                    }
                    for (a ? ++e.e : t.shift(), l = t.length; !t[--l];) t.pop();
                    return e.c = t, e
                }, c.toExponential = function(e, t) {
                    var r = this,
                        o = r.c[0];
                    if (void 0 !== e) {
                        if (e !== ~~e || e < 0 || e > 1e6) throw Error(l);
                        for (r = d(new r.constructor(r), ++e, t); r.c.length < e;) r.c.push(0)
                    }
                    return h(r, !0, !!o)
                }, c.toFixed = function(e, t) {
                    var r = this,
                        o = r.c[0];
                    if (void 0 !== e) {
                        if (e !== ~~e || e < 0 || e > 1e6) throw Error(l);
                        for (e = e + (r = d(new r.constructor(r), e + r.e + 1, t)).e + 1; r.c.length < e;) r.c.push(0)
                    }
                    return h(r, !1, !!o)
                }, c.toJSON = c.toString = function() {
                    var e = this,
                        t = e.constructor;
                    return h(e, e.e <= t.NE || e.e >= t.PE, !!e.c[0])
                }, c.toNumber = function() {
                    var e = Number(h(this, !0, !0));
                    if (!0 === this.constructor.strict && !this.eq(e.toString())) throw Error(s + "Imprecise conversion");
                    return e
                }, c.toPrecision = function(e, t) {
                    var r = this,
                        o = r.constructor,
                        n = r.c[0];
                    if (void 0 !== e) {
                        if (e !== ~~e || e < 1 || e > 1e6) throw Error(a + "precision");
                        for (r = d(new o(r), e, t); r.c.length < e;) r.c.push(0)
                    }
                    return h(r, e <= r.e || r.e <= o.NE || r.e >= o.PE, !!n)
                }, c.valueOf = function() {
                    var e = this,
                        t = e.constructor;
                    if (!0 === t.strict) throw Error(s + "valueOf disallowed");
                    return h(e, e.e <= t.NE || e.e >= t.PE, !0)
                }, (i = function e() {
                    function t(r) {
                        var o = this;
                        if (!(o instanceof t)) return void 0 === r ? e() : new t(r);
                        if (r instanceof t) o.s = r.s, o.e = r.e, o.c = r.c.slice();
                        else {
                            if ("string" != typeof r) {
                                if (!0 === t.strict) throw TypeError(a + "number");
                                r = 0 === r && 1 / r < 0 ? "-0" : String(r)
                            }! function(e, t) {
                                var r, o, n;
                                if (!u.test(t)) throw Error(a + "number");
                                e.s = "-" == t.charAt(0) ? (t = t.slice(1), -1) : 1, (r = t.indexOf(".")) > -1 && (t = t.replace(".", ""));
                                (o = t.search(/e/i)) > 0 ? (r < 0 && (r = o), r += +t.slice(o + 1), t = t.substring(0, o)) : r < 0 && (r = t.length);
                                for (n = t.length, o = 0; o < n && "0" == t.charAt(o);) ++o;
                                if (o == n) e.c = [e.e = 0];
                                else {
                                    for (; n > 0 && "0" == t.charAt(--n););
                                    for (e.e = r - o - 1, e.c = [], r = 0; o <= n;) e.c[r++] = +t.charAt(o++)
                                }
                            }(o, r)
                        }
                        o.constructor = t
                    }
                    return t.prototype = c, t.DP = 20, t.RM = 1, t.NE = -7, t.PE = 21, t.strict = !1, t.roundDown = 0, t.roundHalfUp = 1, t.roundHalfEven = 2, t.roundUp = 3, t
                }()).default = i.Big = i, void 0 === (o = function() {
                    return i
                }.call(t, r, t, e)) || (e.exports = o)
            }()
        },
        67891: function(e, t) {
            var r, o, n;
            o = [t], void 0 === (n = "function" == typeof(r = function(e) {
                "use strict";

                function t(e) {
                    if (Array.isArray(e)) {
                        for (var t = 0, r = Array(e.length); t < e.length; t++) r[t] = e[t];
                        return r
                    }
                    return Array.from(e)
                }
                Object.defineProperty(e, "__esModule", {
                    value: !0
                });
                var r = !1;
                if ("undefined" != typeof window) {
                    var o = {
                        get passive() {
                            r = !0
                        }
                    };
                    window.addEventListener("testPassive", null, o), window.removeEventListener("testPassive", null, o)
                }
                var n = "undefined" != typeof window && window.navigator && window.navigator.platform && /iP(ad|hone|od)/.test(window.navigator.platform),
                    i = [],
                    s = !1,
                    a = -1,
                    l = void 0,
                    c = void 0,
                    u = function(e) {
                        return i.some((function(t) {
                            return !(!t.options.allowTouchMove || !t.options.allowTouchMove(e))
                        }))
                    },
                    d = function(e) {
                        var t = e || window.event;
                        return !!u(t.target) || 1 < t.touches.length || (t.preventDefault && t.preventDefault(), !1)
                    },
                    h = function() {
                        setTimeout((function() {
                            void 0 !== c && (document.body.style.paddingRight = c, c = void 0), void 0 !== l && (document.body.style.overflow = l, l = void 0)
                        }))
                    };
                e.disableBodyScroll = function(e, o) {
                    if (n) {
                        if (!e) return void console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");
                        if (e && !i.some((function(t) {
                                return t.targetElement === e
                            }))) {
                            var h = {
                                targetElement: e,
                                options: o || {}
                            };
                            i = [].concat(t(i), [h]), e.ontouchstart = function(e) {
                                1 === e.targetTouches.length && (a = e.targetTouches[0].clientY)
                            }, e.ontouchmove = function(t) {
                                var r, o, n, i;
                                1 === t.targetTouches.length && (o = e, i = (r = t).targetTouches[0].clientY - a, !u(r.target) && (o && 0 === o.scrollTop && 0 < i || (n = o) && n.scrollHeight - n.scrollTop <= n.clientHeight && i < 0 ? d(r) : r.stopPropagation()))
                            }, s || (document.addEventListener("touchmove", d, r ? {
                                passive: !1
                            } : void 0), s = !0)
                        }
                    } else {
                        f = o, setTimeout((function() {
                            if (void 0 === c) {
                                var e = !!f && !0 === f.reserveScrollBarGap,
                                    t = window.innerWidth - document.documentElement.clientWidth;
                                e && 0 < t && (c = document.body.style.paddingRight, document.body.style.paddingRight = t + "px")
                            }
                            void 0 === l && (l = document.body.style.overflow, document.body.style.overflow = "hidden")
                        }));
                        var p = {
                            targetElement: e,
                            options: o || {}
                        };
                        i = [].concat(t(i), [p])
                    }
                    var f
                }, e.clearAllBodyScrollLocks = function() {
                    n ? (i.forEach((function(e) {
                        e.targetElement.ontouchstart = null, e.targetElement.ontouchmove = null
                    })), s && (document.removeEventListener("touchmove", d, r ? {
                        passive: !1
                    } : void 0), s = !1), i = [], a = -1) : (h(), i = [])
                }, e.enableBodyScroll = function(e) {
                    if (n) {
                        if (!e) return void console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");
                        e.ontouchstart = null, e.ontouchmove = null, i = i.filter((function(t) {
                            return t.targetElement !== e
                        })), s && 0 === i.length && (document.removeEventListener("touchmove", d, r ? {
                            passive: !1
                        } : void 0), s = !1)
                    } else 1 === i.length && i[0].targetElement === e ? (h(), i = []) : i = i.filter((function(t) {
                        return t.targetElement !== e
                    }))
                }
            }) ? r.apply(t, o) : r) || (e.exports = n)
        },
        94184: (e, t) => {
            var r;
            ! function() {
                "use strict";
                var o = {}.hasOwnProperty;

                function n() {
                    for (var e = [], t = 0; t < arguments.length; t++) {
                        var r = arguments[t];
                        if (r) {
                            var i = typeof r;
                            if ("string" === i || "number" === i) e.push(r);
                            else if (Array.isArray(r) && r.length) {
                                var s = n.apply(null, r);
                                s && e.push(s)
                            } else if ("object" === i)
                                for (var a in r) o.call(r, a) && r[a] && e.push(a)
                        }
                    }
                    return e.join(" ")
                }
                e.exports ? (n.default = n, e.exports = n) : void 0 === (r = function() {
                    return n
                }.apply(t, [])) || (e.exports = r)
            }()
        },
        62378: e => {
            "use strict";
            e.exports = function(e) {
                for (var t = [], r = e.length, o = 0; o < r; o++) {
                    var n = e.charCodeAt(o);
                    if (n >= 55296 && n <= 56319 && r > o + 1) {
                        var i = e.charCodeAt(o + 1);
                        i >= 56320 && i <= 57343 && (n = 1024 * (n - 55296) + i - 56320 + 65536, o += 1)
                    }
                    n < 128 ? t.push(n) : n < 2048 ? (t.push(n >> 6 | 192), t.push(63 & n | 128)) : n < 55296 || n >= 57344 && n < 65536 ? (t.push(n >> 12 | 224), t.push(n >> 6 & 63 | 128), t.push(63 & n | 128)) : n >= 65536 && n <= 1114111 ? (t.push(n >> 18 | 240), t.push(n >> 12 & 63 | 128), t.push(n >> 6 & 63 | 128), t.push(63 & n | 128)) : t.push(239, 191, 189)
                }
                return new Uint8Array(t).buffer
            }
        },
        77431: (e, t, r) => {
            e.exports = r.p + "e5dccab09e22148aa733ae7e0962f0a4.svg"
        },
        87855: (e, t, r) => {
            e.exports = r.p + "042ec21ea57ec386282b5e437ced14a0.svg"
        },
        46838: (e, t, r) => {
            e.exports = r.p + "7087220f54cd749f878bda12494954eb.svg"
        },
        19112: (e, t, r) => {
            e.exports = r.p + "f10291bc2bf8e3dea0bb036041d3e89f.svg"
        },
        30864: (e, t, r) => {
            e.exports = r.p + "ad82bf804943b35baebe7dff417a2904.svg"
        },
        49775: (e, t, r) => {
            e.exports = r.p + "cd8614eed2c9ecd0111030d6ae43b07c.svg"
        },
        69031: (e, t, r) => {
            e.exports = r.p + "ab0aa08606b4a9db4f1d6115cbff1246.svg"
        },
        99296: (e, t, r) => {
            e.exports = r.p + "2dab12e8a6c93cdc361b475dcd7b3074.svg"
        },
        63010: (e, t, r) => {
            e.exports = r.p + "8e74262607de7641e1443e206ecf02d8.svg"
        },
        11712: (e, t, r) => {
            e.exports = r.p + "a1276c0533823933334715fc20c6742e.svg"
        },
        44161: (e, t, r) => {
            e.exports = r.p + "de7f5bc35af05c24d9640b6fd0910bdf.svg"
        },
        59686: (e, t, r) => {
            e.exports = r.p + "f5ed10ec1625eb393ada7073b9afd17e.svg"
        },
        67851: (e, t, r) => {
            e.exports = r.p + "c2a5c0fb8c6ef112474fde18c2946640.svg"
        },
        63471: (e, t, r) => {
            e.exports = r.p + "9b5c4a3a01194407c91bf996bba0c1a4.svg"
        },
        45185: (e, t, r) => {
            e.exports = r.p + "cc72d282b465b57676eca56e46cf1e8c.svg"
        },
        66755: (e, t, r) => {
            e.exports = r.p + "8c3b568f1adc6a626342305c8f60b203.svg"
        },
        73472: (e, t, r) => {
            e.exports = r.p + "95a7715d1c9835b4b280996e2493639c.svg"
        },
        13060: (e, t, r) => {
            e.exports = r.p + "3ce97881321c8c909b3d05f641fad866.svg"
        },
        56199: (e, t, r) => {
            e.exports = r.p + "e7b7ff011682d59763997a75104c9979.svg"
        },
        9687: (e, t, r) => {
            e.exports = r.p + "ec6d305d7d06a84ea3f54c3d6db5e83a.svg"
        },
        91995: (e, t, r) => {
            e.exports = r.p + "e7ed49ce872797c8630fd5f8446ffbee.svg"
        },
        1440: (e, t, r) => {
            e.exports = r.p + "86e22a99d9d9ee81924e0b438e204dd7.svg"
        },
        85239: (e, t, r) => {
            e.exports = r.p + "d369378aefaaed47363bffaedb308143.svg"
        },
        24226: (e, t, r) => {
            e.exports = r.p + "d1f58926528e2a3debceb59dff7e58b0.svg"
        },
        67596: (e, t, r) => {
            e.exports = r.p + "3fd81bada8bbd48683f94d307a01fac4.svg"
        },
        21340: (e, t, r) => {
            e.exports = r.p + "c7b2bfd6a12a1c0991a575c3b31ad7b6.svg"
        },
        51258: (e, t, r) => {
            e.exports = r.p + "95127900436e4305bca6653ca8d9957f.svg"
        },
        83397: (e, t, r) => {
            e.exports = r.p + "65876f64a690a9c40a4f3d84367678ad.svg"
        },
        51253: (e, t, r) => {
            e.exports = r.p + "47b1e1cc6cc78ac578822f22213f5eb3.svg"
        },
        64253: (e, t, r) => {
            e.exports = r.p + "0788cb238b1a4b247dc64b6520a1de87.svg"
        },
        24059: (e, t, r) => {
            e.exports = r.p + "f869295c1d9ceedfc8c6ddd92efb8ca2.svg"
        },
        29951: (e, t, r) => {
            e.exports = r.p + "de4367c3fa9f075bbf58943188ba32b3.svg"
        },
        82317: (e, t, r) => {
            e.exports = r.p + "a7de26af1e65164293180f1c5ddcf8de.svg"
        },
        12762: (e, t, r) => {
            e.exports = r.p + "6cc5af4752574eb61f0c8075ca1b7881.svg"
        },
        45475: (e, t, r) => {
            e.exports = r.p + "6b4a6bb049ac33e322b700e50fc5b926.svg"
        },
        48871: (e, t, r) => {
            e.exports = r.p + "5c568c6ba25fd3ccffedc7df6cdbcfc6.svg"
        },
        49665: (e, t, r) => {
            e.exports = r.p + "a6b73d85f90f4b55b4d8560f175fb635.svg"
        },
        47939: (e, t, r) => {
            e.exports = r.p + "bc4c0e86357177d9b1ed96f8568684d1.svg"
        },
        1534: (e, t, r) => {
            e.exports = r.p + "ed5c3ae146310a1a24fcde23e7b60bb1.svg"
        },
        91592: (e, t, r) => {
            e.exports = r.p + "869b5f01bc7105cc3788b584c5bc1bef.svg"
        },
        93941: (e, t, r) => {
            e.exports = r.p + "69938b544b1d77792db3e429284a98c1.svg"
        },
        40514: (e, t, r) => {
            e.exports = r.p + "2d9e49752791b82092387b7ffd7e427f.svg"
        },
        95761: (e, t, r) => {
            e.exports = r.p + "81f2326cf9c77d248b96f6bc5f80c13d.svg"
        },
        0: (e, t, r) => {
            e.exports = r.p + "5962c52be69d3c2cb79834452a20bf16.svg"
        },
        7371: (e, t, r) => {
            e.exports = r.p + "a54eae35e396c3f9ec2c154c8389933e.svg"
        },
        77158: (e, t, r) => {
            e.exports = r.p + "1a129ec3eee7754e48466838566ab14e.svg"
        },
        57906: (e, t, r) => {
            e.exports = r.p + "ab02a73c827877d701e4dd32eb729ed9.svg"
        },
        63836: (e, t, r) => {
            e.exports = r.p + "ed080993df791efad30f99a0e698601e.svg"
        },
        10513: (e, t, r) => {
            e.exports = r.p + "6e8ce773ae74687cfa9576d1210fe5f6.svg"
        },
        66158: (e, t, r) => {
            e.exports = r.p + "e8b18b343c3c9e2d653fc3a550de819f.svg"
        },
        34440: (e, t, r) => {
            e.exports = r.p + "696572b26ab674046f403ec18f2b5e5d.svg"
        },
        1683: (e, t, r) => {
            e.exports = r.p + "32cface5c212ebc32a5fd783e6072dd5.svg"
        },
        27453: (e, t, r) => {
            e.exports = r.p + "cf8abee42c4cb03e0a2105caec8909eb.svg"
        },
        92378: (e, t, r) => {
            e.exports = r.p + "52d1261e628f634b5e62c0d6071d82c1.svg"
        },
        87683: (e, t, r) => {
            e.exports = r.p + "27419b53618cdc6022ec621a38a2e27e.svg"
        },
        99769: (e, t, r) => {
            e.exports = r.p + "c3bf6a8b432dba36fcdb79e0e7b892e4.svg"
        },
        72564: (e, t, r) => {
            e.exports = r.p + "52452294a138eb19309852a5bba8fdf2.svg"
        },
        16808: (e, t, r) => {
            e.exports = r.p + "883627aca446035b3986466acc71a69b.svg"
        },
        31572: (e, t, r) => {
            e.exports = r.p + "3332346bb9d5603152808536c3251c00.svg"
        },
        60388: (e, t, r) => {
            e.exports = r.p + "5dfba3ffcfb87b70fcff70fe469745e0.svg"
        },
        29016: (e, t, r) => {
            e.exports = r.p + "9a4ecd71d78aab6194857007fcc20464.svg"
        },
        72792: (e, t, r) => {
            e.exports = r.p + "6474d98d9f212d0a5b3edc7c81fce0a4.svg"
        },
        5862: (e, t, r) => {
            e.exports = r.p + "386646a0d8b2c0e75d201d07083beb35.svg"
        },
        71321: (e, t, r) => {
            e.exports = r.p + "c416c4db2f76c13e5cfb1cd73b057264.svg"
        },
        17341: (e, t, r) => {
            e.exports = r.p + "0f7af004dd47aafc17272eca6e543808.svg"
        },
        29760: (e, t, r) => {
            e.exports = r.p + "fe631cd46d01b4816097228f3591db19.svg"
        },
        9278: (e, t, r) => {
            e.exports = r.p + "062c248cf8d2c525bd9526653ab95657.svg"
        },
        92599: (e, t, r) => {
            e.exports = r.p + "e62b523f0ed069cf4e2afa903fece44f.svg"
        },
        67132: (e, t, r) => {
            e.exports = r.p + "1d3eecfc50933a84c28985cffe2fbb4e.svg"
        },
        12099: (e, t, r) => {
            e.exports = r.p + "fe924d5d871ef07299ad5e11db2c8a70.svg"
        },
        32423: (e, t, r) => {
            e.exports = r.p + "4c2b4fdaa4afbe49682badbe3e6d5092.svg"
        },
        75511: (e, t, r) => {
            e.exports = r.p + "650a8fb9d8083fd5887fa14d5a48b917.svg"
        },
        25515: (e, t, r) => {
            e.exports = r.p + "a846e4087642a8ea8bf05187847140c6.svg"
        },
        91112: (e, t, r) => {
            e.exports = r.p + "e561e7a86e83dab817de9b4fba1be15e.svg"
        },
        47094: (e, t, r) => {
            e.exports = r.p + "6c45a28c69aad8a75655bdd555d86f68.svg"
        },
        59315: (e, t, r) => {
            e.exports = r.p + "dddac09a7572568f517e22700f4c8474.svg"
        },
        82821: (e, t, r) => {
            e.exports = r.p + "e2fa422bd9aedee688fb7765794fd5c2.svg"
        },
        73306: (e, t, r) => {
            e.exports = r.p + "9e8a00c2e2b16d8ece1e344906002df9.svg"
        },
        89539: (e, t, r) => {
            e.exports = r.p + "cddf3ae477d555d4eed060347c2268eb.svg"
        },
        55061: (e, t, r) => {
            e.exports = r.p + "4bc8348594c9430c735366fc72d9f36b.svg"
        },
        39483: (e, t, r) => {
            e.exports = r.p + "e8e5b1c68e4f95acd9322863c0b363f6.svg"
        },
        65614: (e, t, r) => {
            e.exports = r.p + "6cfd08ce7e4a1dbbd15225a8bf79a4e3.svg"
        },
        56932: (e, t, r) => {
            e.exports = r.p + "44239307acfe2269d7827563273f2bfa.svg"
        },
        64749: (e, t, r) => {
            e.exports = r.p + "4752624c631776e721a978174febf46b.svg"
        },
        60257: (e, t, r) => {
            e.exports = r.p + "953f6834f68153142229a6d2237076cf.svg"
        },
        25797: (e, t, r) => {
            e.exports = r.p + "5579d8b53d2a1a0e6007198f97b91039.svg"
        },
        39174: (e, t, r) => {
            e.exports = r.p + "584a79e77d4432cf0ca27a1063d9ba0d.svg"
        },
        43438: (e, t, r) => {
            e.exports = r.p + "2c713a3aca13638904167e66cf9eeab0.svg"
        },
        48104: (e, t, r) => {
            e.exports = r.p + "4791e97b8673d0b0ec66d93ef3f02bb0.svg"
        },
        23748: (e, t, r) => {
            e.exports = r.p + "f8f54d8b574077d60ffb81a4bc19ed57.svg"
        },
        44571: (e, t, r) => {
            e.exports = r.p + "dea459c5c4ebb211e652e99cd6ba6354.svg"
        },
        49078: (e, t, r) => {
            e.exports = r.p + "8bb7f62042bd238c645c4213b08db12e.svg"
        },
        33037: (e, t, r) => {
            e.exports = r.p + "157dc69b8355dc521689079cb859216d.svg"
        },
        2074: (e, t, r) => {
            e.exports = r.p + "885565ce0ebf9919066eb4196290c711.svg"
        },
        34221: (e, t, r) => {
            e.exports = r.p + "1eafeadca5e616cc4525be1fb1caafc7.svg"
        },
        64833: (e, t, r) => {
            e.exports = r.p + "8b5301ac782c0b3c5144e7aae810127a.svg"
        },
        63365: (e, t, r) => {
            e.exports = r.p + "9d7b9ed22b710cbeeb852226989e1bc7.svg"
        },
        96318: (e, t, r) => {
            e.exports = r.p + "a6ccd18373271b1e45b1ca35f8825c8d.svg"
        },
        67530: (e, t, r) => {
            e.exports = r.p + "23b30bfe2f6b2e6edf84470252fa5d54.svg"
        },
        5549: (e, t, r) => {
            e.exports = r.p + "c4ba5e799038b2fac1d8a5cee58aac2d.svg"
        },
        58438: (e, t, r) => {
            e.exports = r.p + "e97d7f751ade192748c3e05a54ead255.svg"
        },
        88307: (e, t, r) => {
            e.exports = r.p + "d9da6caea5ca1cd55417f1978b047b13.svg"
        },
        95984: (e, t, r) => {
            e.exports = r.p + "2e59cb1da31075c39dc3b0c1e75e5fd7.svg"
        },
        34244: (e, t, r) => {
            e.exports = r.p + "2aecc106c5eb83ecada117376a8c8f2a.svg"
        },
        63716: (e, t, r) => {
            e.exports = r.p + "32c094ea79fdd66912058ade88c27860.svg"
        },
        48726: (e, t, r) => {
            e.exports = r.p + "6ca6e081b7d7a80d94f38bf6ef9db3fa.svg"
        },
        11145: (e, t, r) => {
            e.exports = r.p + "118186fbbe46a3201d049161d17aa76a.svg"
        },
        76285: (e, t, r) => {
            e.exports = r.p + "a83c7f196f69856c6661350dcd280ca2.svg"
        },
        59322: (e, t, r) => {
            e.exports = r.p + "b6a66bf5808bbb5de2d3bf45a5971fbd.svg"
        },
        284: (e, t, r) => {
            e.exports = r.p + "9d67227cfad5ec4cdbe9f0cd169856c5.svg"
        },
        10794: (e, t, r) => {
            e.exports = r.p + "6d9fd8899d084d7f9698d9b2d5862c00.svg"
        },
        36276: (e, t, r) => {
            e.exports = r.p + "e01f83be117e562a91ac14daa904e198.svg"
        },
        73869: (e, t, r) => {
            e.exports = r.p + "802533204295f3c58b0072fdd6d46d1d.svg"
        },
        6122: (e, t, r) => {
            e.exports = r.p + "c8d5bc45cecd625d597da5bc33011da7.svg"
        },
        6922: (e, t, r) => {
            e.exports = r.p + "52d36f2ef75daabe5d00dc144cc9d4d6.svg"
        },
        62814: (e, t, r) => {
            e.exports = r.p + "6ae825abf83e791f0247b4143d5a85ad.svg"
        },
        65618: (e, t, r) => {
            e.exports = r.p + "1985b030fba93c1acee7ccb45534cabd.svg"
        },
        44130: (e, t, r) => {
            e.exports = r.p + "b1cad18bd8a6be021c3177353bda5345.svg"
        },
        50852: (e, t, r) => {
            e.exports = r.p + "c33468197e6cfac63316a6cd3a67cd6c.svg"
        },
        79101: (e, t, r) => {
            e.exports = r.p + "a825a6c4082ba46b45131ab0bd16d96c.svg"
        },
        81055: (e, t, r) => {
            e.exports = r.p + "8c6b45f07db2a25f33f279d2da19dc3b.svg"
        },
        51177: (e, t, r) => {
            e.exports = r.p + "46eec22a6748063a64a9d7fdce4efc95.svg"
        },
        47504: (e, t, r) => {
            e.exports = r.p + "e129b4d2d79d07ecf5b6b7c4d10b83fb.svg"
        },
        46265: (e, t, r) => {
            e.exports = r.p + "f15ab85cea9ea5749e2befe786e1c9d3.svg"
        },
        13306: (e, t, r) => {
            e.exports = r.p + "291ae25931a5df9f61006569e1fb2819.svg"
        },
        87442: (e, t, r) => {
            e.exports = r.p + "428cfc463b541dfa1321f35af861fada.svg"
        },
        40787: (e, t, r) => {
            e.exports = r.p + "548b90a6603f1a11a0104f3be28274d5.svg"
        },
        63019: (e, t, r) => {
            e.exports = r.p + "b1ee1e8ecc3caeb6e4e1dd6d5a45e2c8.svg"
        },
        25679: (e, t, r) => {
            e.exports = r.p + "ebca4cec794b70db74c63a7e6aca8ed8.svg"
        },
        62037: (e, t, r) => {
            e.exports = r.p + "9b979eba8adb5bda46b48a4d26ccf2de.svg"
        },
        46603: (e, t, r) => {
            e.exports = r.p + "5824a756d7227972e0d24375246ee236.svg"
        },
        44991: (e, t, r) => {
            e.exports = r.p + "d4b8b8cb1909ea6d3f0a3182c8ec0a96.svg"
        },
        62255: (e, t, r) => {
            e.exports = r.p + "2d4c81f5074ead4d91e24dce1782b828.svg"
        },
        32295: (e, t, r) => {
            e.exports = r.p + "2c22bc38345265a3c18504acca3e0d56.svg"
        },
        42882: (e, t, r) => {
            e.exports = r.p + "66b0098c00f242056c72b05aa3796de9.svg"
        },
        77143: (e, t, r) => {
            e.exports = r.p + "7ef32ae8f080d2d6c6f0784e334e30e1.svg"
        },
        8083: (e, t, r) => {
            e.exports = r.p + "49d1ea5b7ccbfbae29bbc21c506e617c.svg"
        },
        67420: (e, t, r) => {
            e.exports = r.p + "ec31494f78cee41a02dbfbafba232515.svg"
        },
        22090: (e, t, r) => {
            e.exports = r.p + "53fe5ab19eeaaea654235a0bdb7f71f1.svg"
        },
        78486: (e, t, r) => {
            e.exports = r.p + "efef6421ade56c03ee355809562ecbc0.svg"
        },
        63075: (e, t, r) => {
            e.exports = r.p + "7fb90d13db9ad6d2ddec01d48b241d85.svg"
        },
        72413: (e, t, r) => {
            e.exports = r.p + "192a7bbb73684d1f6dae83700fb21173.svg"
        },
        98225: (e, t, r) => {
            e.exports = r.p + "43c5b49b5b8e01e4505c7c251746a8b7.svg"
        },
        41026: (e, t, r) => {
            e.exports = r.p + "74009555a8dd165b067723f234f915a5.svg"
        },
        92157: (e, t, r) => {
            e.exports = r.p + "7231b99c7054c64e47372a672c441a6d.svg"
        },
        77024: (e, t, r) => {
            e.exports = r.p + "e30c321e33a1859340a2bb6037bff515.svg"
        },
        29481: (e, t, r) => {
            e.exports = r.p + "492d9a718a2c25d234151474b0206977.svg"
        },
        58174: (e, t, r) => {
            e.exports = r.p + "7042e54b024475a394cb498377852b96.svg"
        },
        18366: (e, t, r) => {
            e.exports = r.p + "c65f8d4a514fd5839e611a6c7f146acb.svg"
        },
        90291: (e, t, r) => {
            e.exports = r.p + "aca94e827472fdbe847af7982d2e10f1.svg"
        },
        32559: (e, t, r) => {
            e.exports = r.p + "27ed1587b819df769e0fcdb40c17bc0a.svg"
        },
        52096: (e, t, r) => {
            e.exports = r.p + "455e18987c2c85ec010fd1456751ab61.svg"
        },
        53648: (e, t, r) => {
            e.exports = r.p + "8bf52e61de18aca35d5a9e2f5ce14ae2.svg"
        },
        31564: (e, t, r) => {
            e.exports = r.p + "f3530d099857810e5d04b52373b1cb41.svg"
        },
        37654: (e, t, r) => {
            e.exports = r.p + "31dc9f78a1a526c14002cfcece0cc5d9.svg"
        },
        36983: (e, t, r) => {
            e.exports = r.p + "61da80123bd4db4b54f857a53d7718da.svg"
        },
        59725: (e, t, r) => {
            e.exports = r.p + "f4d0c0597f2db7dcd7cd774b822de366.svg"
        },
        55798: (e, t, r) => {
            e.exports = r.p + "c229767ec3f6e517744b027e36b24831.svg"
        },
        81634: (e, t, r) => {
            e.exports = r.p + "53f95b864ea8104267dc566bfb803a23.svg"
        },
        87276: (e, t, r) => {
            e.exports = r.p + "c26643f969ec665d63ddfe7dbcf16871.svg"
        },
        39857: (e, t, r) => {
            e.exports = r.p + "5980ed8829231afb216d42cd14dfc746.svg"
        },
        33093: (e, t, r) => {
            e.exports = r.p + "33ead7196e74520279899683905fa945.svg"
        },
        32341: (e, t, r) => {
            e.exports = r.p + "e9a1bd918b9924de48740078fc49f7c8.svg"
        },
        4874: (e, t, r) => {
            e.exports = r.p + "1098c7da5fcb389d9ca6f1b830c9dc7b.svg"
        },
        70015: (e, t, r) => {
            e.exports = r.p + "52be2cab70919abd4ba4dffefe331384.svg"
        },
        93575: (e, t, r) => {
            e.exports = r.p + "47f09a2aa1752e19fb33290fcc46c47a.svg"
        },
        177: (e, t, r) => {
            e.exports = r.p + "0bfbdf5c0e06948136651805ba740256.svg"
        },
        91252: (e, t, r) => {
            e.exports = r.p + "3952276d502a2b3659f3cb3c163e9541.svg"
        },
        76341: (e, t, r) => {
            e.exports = r.p + "8cf9d19315d87fe9bb98469d22f78a72.svg"
        },
        80209: (e, t, r) => {
            e.exports = r.p + "4f21dea2767b186965157eba97f085b2.svg"
        },
        38688: (e, t, r) => {
            e.exports = r.p + "7fc3c4075dd1ab62905126ce5623a7b5.svg"
        },
        23162: (e, t, r) => {
            e.exports = r.p + "939c709099ed020091dc58cbd5207cbd.svg"
        },
        53323: (e, t, r) => {
            e.exports = r.p + "a685e425d7c7db0c14c7b97352f4dd4b.svg"
        },
        19879: (e, t, r) => {
            e.exports = r.p + "a86b168bc533484e6274628d63888308.svg"
        },
        20769: (e, t, r) => {
            e.exports = r.p + "ea2822078cff5228899c74ce3525125c.svg"
        },
        43938: (e, t, r) => {
            e.exports = r.p + "f073a4ed2f2edbf549bad8b3c546af03.svg"
        },
        61591: (e, t, r) => {
            e.exports = r.p + "fd1f2a821ac21b8c757f95ba0b5032e0.svg"
        },
        15319: (e, t, r) => {
            e.exports = r.p + "c4978c8d35ff46ddde11765f574e2586.svg"
        },
        38418: (e, t, r) => {
            e.exports = r.p + "33e4a650ec09d861a47f0f2c2d912774.svg"
        },
        52185: (e, t, r) => {
            e.exports = r.p + "e097b411b3e34f5a4a979cc428c289b1.svg"
        },
        11063: (e, t, r) => {
            e.exports = r.p + "9b10f00f014bc0f9d1a452e07a0d161a.svg"
        },
        34979: (e, t, r) => {
            e.exports = r.p + "b755b85a9536ead06ef26ecd24724e0c.svg"
        },
        30302: (e, t, r) => {
            e.exports = r.p + "e33a72eb50fe28dc0289c2257014fc6a.svg"
        },
        83764: (e, t, r) => {
            e.exports = r.p + "63bccd48089718d7044ce87890d1af22.svg"
        },
        44359: (e, t, r) => {
            e.exports = r.p + "0dccec7ce2c9a2fe85d49d9ab8f1480b.svg"
        },
        37269: (e, t, r) => {
            e.exports = r.p + "1bf2c1b06e7ab37b765dd3f5b891a241.svg"
        },
        84452: (e, t, r) => {
            e.exports = r.p + "d3c2e6ce4be2a5b1bf9ca5a18d2d1238.svg"
        },
        25903: (e, t, r) => {
            e.exports = r.p + "107e8251a0eb3758b47077295437a81e.svg"
        },
        12442: (e, t, r) => {
            e.exports = r.p + "1e2e718c683b1d6325a427dff2d6c78f.svg"
        },
        35248: (e, t, r) => {
            e.exports = r.p + "e8e5b1c68e4f95acd9322863c0b363f6.svg"
        },
        1195: (e, t, r) => {
            e.exports = r.p + "36a36b038ee2b086d99f0dff97512fec.svg"
        },
        54617: (e, t, r) => {
            e.exports = r.p + "e40ab9cc58df416f4b384648a7af369c.svg"
        },
        6702: (e, t, r) => {
            e.exports = r.p + "d17555267bdf6ed9e01a7f4d525ef080.svg"
        },
        65030: (e, t, r) => {
            e.exports = r.p + "3daf0fa39e9e67bfc0f12166dd01adfd.svg"
        },
        58541: (e, t, r) => {
            e.exports = r.p + "62bf57b352114c25f178d892fef2c1d8.svg"
        },
        97519: (e, t, r) => {
            e.exports = r.p + "6169c60c8d04924d194452dff1191b8e.svg"
        },
        68713: (e, t, r) => {
            e.exports = r.p + "60542233074e88f72cb7738cd671069f.svg"
        },
        58480: (e, t, r) => {
            e.exports = r.p + "85398f0b883442712a726600cec9c27d.svg"
        },
        46803: (e, t, r) => {
            e.exports = r.p + "6ce4af2df856e7fd43f8786a3c3a2e5d.svg"
        },
        86390: (e, t, r) => {
            e.exports = r.p + "bbd4456a4e25c099b7f49fe4f00e032f.svg"
        },
        523: (e, t, r) => {
            e.exports = r.p + "858bcfa8c8d9c8d8551fcb9a8cdc2499.svg"
        },
        45767: (e, t, r) => {
            e.exports = r.p + "f071c28bf387d220afe4bd2c6f60323a.svg"
        },
        72946: (e, t, r) => {
            e.exports = r.p + "bf89688b20c1bf96847619b6059daaf5.svg"
        },
        5344: (e, t, r) => {
            e.exports = r.p + "c5bcb60600a07405427fb25b45bc6e53.svg"
        },
        79035: (e, t, r) => {
            e.exports = r.p + "7cc409e9b4b8e2ad95146d0ae8be70e5.svg"
        },
        37536: (e, t, r) => {
            e.exports = r.p + "5c347ffc08d08d0f94ff06366781743d.svg"
        },
        29053: (e, t, r) => {
            e.exports = r.p + "cab55de6e22849402b5982a8e390c8fb.svg"
        },
        86055: (e, t, r) => {
            e.exports = r.p + "ff8661f5c81b7137caa81145ed74b154.svg"
        },
        41654: (e, t, r) => {
            e.exports = r.p + "54405675d653aa1a161b6abcb43291ed.svg"
        },
        42251: (e, t, r) => {
            e.exports = r.p + "ca21ee51c72ab8851ed796a469ec00b8.svg"
        },
        33627: (e, t, r) => {
            e.exports = r.p + "2fc23c00813c60848572b5d28ee7dfb9.svg"
        },
        11983: (e, t, r) => {
            e.exports = r.p + "bf56aba49a57eba71be490bc83a7071c.svg"
        },
        43149: (e, t, r) => {
            e.exports = r.p + "832264ecc6d4da63cbcff71ea9186b3e.svg"
        },
        22995: (e, t, r) => {
            e.exports = r.p + "9f9bbea98fd39966101544a0c55e14e5.svg"
        },
        41030: (e, t, r) => {
            e.exports = r.p + "b31adf0f45d2fb04730c422394eb6ae2.svg"
        },
        40754: (e, t, r) => {
            e.exports = r.p + "3d1dbbd08f14657e981c2a0759373a97.svg"
        },
        58310: (e, t, r) => {
            e.exports = r.p + "111e5d0e64351b2f7ac606b653993cbe.svg"
        },
        99720: (e, t, r) => {
            e.exports = r.p + "c7232e3bcddb5cf2fedab803b86d4e88.svg"
        },
        91382: (e, t, r) => {
            e.exports = r.p + "8dd843123d511ff5adee498714213548.svg"
        },
        35975: (e, t, r) => {
            e.exports = r.p + "b119250cad0725ccc4f8288726f56f6b.svg"
        },
        71326: (e, t, r) => {
            e.exports = r.p + "d92d6ecce7375134958d8e623f59dd3e.svg"
        },
        28217: (e, t, r) => {
            e.exports = r.p + "2f71391908131b082aab4d129f7b5272.svg"
        },
        62469: (e, t, r) => {
            e.exports = r.p + "5b42511a0696d2cbb686e323db88556c.svg"
        },
        75514: (e, t, r) => {
            e.exports = r.p + "f89dbcaf40a5563735910a76243dc1b3.svg"
        },
        52593: (e, t, r) => {
            e.exports = r.p + "ccac1949542b285e1ce6a4fe7f67d942.svg"
        },
        31729: (e, t, r) => {
            e.exports = r.p + "70717ad43398a435ef78d38d226c6c37.svg"
        },
        91948: (e, t, r) => {
            e.exports = r.p + "727ca3bc1d3c5915d9ccc4ba3eee978a.svg"
        },
        75974: (e, t, r) => {
            e.exports = r.p + "a61ec3126315febd0304300cb8098ae5.svg"
        },
        47338: (e, t, r) => {
            e.exports = r.p + "cbd8834b7f336d8d6aa529e87ea89c5d.svg"
        },
        49021: (e, t, r) => {
            e.exports = r.p + "3bceb8e8c9086be15f6d9034fbb8ab90.svg"
        },
        82026: (e, t, r) => {
            e.exports = r.p + "3f0b266c14a3e0a41685729a6dd63515.svg"
        },
        89760: (e, t, r) => {
            e.exports = r.p + "6dfaf2afda613a97ef15734acea4f691.svg"
        },
        88398: (e, t, r) => {
            e.exports = r.p + "9e8a00c2e2b16d8ece1e344906002df9.svg"
        },
        85612: (e, t, r) => {
            e.exports = r.p + "b51b73c5dc965960d789d4616c9372e5.svg"
        },
        78455: (e, t, r) => {
            e.exports = r.p + "752c67ea7ac85fb0cd2f01623bd213bc.svg"
        },
        44390: (e, t, r) => {
            e.exports = r.p + "8ed702249e5be2de3aa98fb61301b23f.svg"
        },
        90978: (e, t, r) => {
            e.exports = r.p + "9efe6680cb2318c0ff0e818ade988fa1.svg"
        },
        14550: (e, t, r) => {
            e.exports = r.p + "842fcb191878b2812c044528ff533832.svg"
        },
        80865: (e, t, r) => {
            e.exports = r.p + "743d0db623f41a2597c1e441233e4a78.svg"
        },
        52902: (e, t, r) => {
            e.exports = r.p + "71968c0503e30bbb4fe32b57c8fdd68d.svg"
        },
        81312: (e, t, r) => {
            e.exports = r.p + "fba03cbebf73ac8a537f901ec25dd0be.svg"
        },
        77568: (e, t, r) => {
            e.exports = r.p + "f8385849a7dacc12bc2195528ceb1085.svg"
        },
        56447: (e, t, r) => {
            e.exports = r.p + "727813bcf45ceaaa481f086bcd697b95.svg"
        },
        53010: (e, t, r) => {
            e.exports = r.p + "e8e5b1c68e4f95acd9322863c0b363f6.svg"
        },
        21376: (e, t, r) => {
            e.exports = r.p + "b8b5ebf760eccf4bd10d0c3ccd100800.svg"
        },
        7721: (e, t, r) => {
            e.exports = r.p + "115d41d15c6f506cd74214a1b277d0c9.svg"
        },
        52616: (e, t, r) => {
            e.exports = r.p + "8f0a3dbc200954cc05d71f00f94c9918.svg"
        },
        30819: (e, t, r) => {
            e.exports = r.p + "8aac8f79a7e13ea8992d4cb7ea372de7.svg"
        },
        55065: (e, t, r) => {
            e.exports = r.p + "b9a5c368e039eba4bf66e0f75e899eb7.svg"
        },
        69721: (e, t, r) => {
            e.exports = r.p + "07958991e829b26257b34748fe61b908.svg"
        },
        85950: (e, t, r) => {
            e.exports = r.p + "ba8de9bab341fb25cc068a78171500ba.svg"
        },
        82909: (e, t, r) => {
            e.exports = r.p + "7eb7a15aebedb479210436be19e02f7f.svg"
        },
        48994: (e, t, r) => {
            var o = r(55375);
            e.exports = function(e) {
                return e = o(e ^= e >>> 16, 2246822507), e = o(e ^= e >>> 13, 3266489909), (e ^= e >>> 16) >>> 0
            }
        },
        55375: e => {
            "use strict";
            e.exports = Math.imul || function(e, t) {
                var r = 65535 & e,
                    o = 65535 & t;
                return r * o + ((e >>> 16 & 65535) * o + r * (t >>> 16 & 65535) << 16 >>> 0) | 0
            }
        },
        50450: (e, t, r) => {
            var o, n, i;
            n = [r(18184)], void 0 === (i = "function" == typeof(o = function(e) {
                var t, r, o = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
                    n = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
                    i = Array.prototype.slice;
                if (e.event.fixHooks)
                    for (var s = o.length; s;) e.event.fixHooks[o[--s]] = e.event.mouseHooks;
                var a = e.event.special.mousewheel = {
                    version: "3.1.12",
                    setup: function() {
                        if (this.addEventListener)
                            for (var t = n.length; t;) this.addEventListener(n[--t], l, !1);
                        else this.onmousewheel = l;
                        e.data(this, "mousewheel-line-height", a.getLineHeight(this)), e.data(this, "mousewheel-page-height", a.getPageHeight(this))
                    },
                    teardown: function() {
                        if (this.removeEventListener)
                            for (var t = n.length; t;) this.removeEventListener(n[--t], l, !1);
                        else this.onmousewheel = null;
                        e.removeData(this, "mousewheel-line-height"), e.removeData(this, "mousewheel-page-height")
                    },
                    getLineHeight: function(t) {
                        var r = e(t),
                            o = r["offsetParent" in e.fn ? "offsetParent" : "parent"]();
                        return o.length || (o = e("body")), parseInt(o.css("fontSize"), 10) || parseInt(r.css("fontSize"), 10) || 16
                    },
                    getPageHeight: function(t) {
                        return e(t).height()
                    },
                    settings: {
                        adjustOldDeltas: !0,
                        normalizeOffset: !0
                    }
                };

                function l(o) {
                    var n = o || window.event,
                        s = i.call(arguments, 1),
                        l = 0,
                        d = 0,
                        h = 0,
                        p = 0,
                        f = 0,
                        g = 0;
                    if ((o = e.event.fix(n)).type = "mousewheel", "detail" in n && (h = -1 * n.detail), "wheelDelta" in n && (h = n.wheelDelta), "wheelDeltaY" in n && (h = n.wheelDeltaY),
                        "wheelDeltaX" in n && (d = -1 * n.wheelDeltaX), "axis" in n && n.axis === n.HORIZONTAL_AXIS && (d = -1 * h, h = 0), l = 0 === h ? d : h, "deltaY" in n && (l = h = -1 * n.deltaY), "deltaX" in n && (d = n.deltaX, 0 === h && (l = -1 * d)), 0 !== h || 0 !== d) {
                        if (1 === n.deltaMode) {
                            var m = e.data(this, "mousewheel-line-height");
                            l *= m, h *= m, d *= m
                        } else if (2 === n.deltaMode) {
                            var _ = e.data(this, "mousewheel-page-height");
                            l *= _, h *= _, d *= _
                        }
                        if (p = Math.max(Math.abs(h), Math.abs(d)), (!r || p < r) && (r = p, u(n, p) && (r /= 40)), u(n, p) && (l /= 40, d /= 40, h /= 40), l = Math[l >= 1 ? "floor" : "ceil"](l / r), d = Math[d >= 1 ? "floor" : "ceil"](d / r), h = Math[h >= 1 ? "floor" : "ceil"](h / r), a.settings.normalizeOffset && this.getBoundingClientRect) {
                            var v = this.getBoundingClientRect();
                            f = o.clientX - v.left, g = o.clientY - v.top
                        }
                        return o.deltaX = d, o.deltaY = h, o.deltaFactor = r, o.offsetX = f, o.offsetY = g, o.deltaMode = 0, s.unshift(o, l, d, h), t && clearTimeout(t), t = setTimeout(c, 200), (e.event.dispatch || e.event.handle).apply(this, s)
                    }
                }

                function c() {
                    r = null
                }

                function u(e, t) {
                    return a.settings.adjustOldDeltas && "mousewheel" === e.type && t % 120 == 0
                }
                e.fn.extend({
                    mousewheel: function(e) {
                        return e ? this.bind("mousewheel", e) : this.trigger("mousewheel")
                    },
                    unmousewheel: function(e) {
                        return this.unbind("mousewheel", e)
                    }
                })
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        36912: (e, t, r) => {
            var o, n;
            void 0 === (n = "function" == typeof(o = ["jquery", "./data", "./disable-selection", "./focusable", "./form", "./ie", "./keycode", "./labels", "./jquery-1-7", "./plugin", "./safe-active-element", "./safe-blur", "./scroll-parent", "./tabbable", "./unique-id", "./version"]) ? o.call(t, r, t, e) : o) || (e.exports = n)
        },
        63762: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(85592)], void 0 === (i = "function" == typeof(o = function(e) {
                var t, r = e;
                return e.effects = {
                        effect: {}
                    },
                    function(e, t) {
                        var r, o = /^([\-+])=\s*(\d+\.?\d*)/,
                            n = [{
                                re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
                                parse: function(e) {
                                    return [e[1], e[2], e[3], e[4]]
                                }
                            }, {
                                re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
                                parse: function(e) {
                                    return [2.55 * e[1], 2.55 * e[2], 2.55 * e[3], e[4]]
                                }
                            }, {
                                re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
                                parse: function(e) {
                                    return [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)]
                                }
                            }, {
                                re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
                                parse: function(e) {
                                    return [parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16)]
                                }
                            }, {
                                re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
                                space: "hsla",
                                parse: function(e) {
                                    return [e[1], e[2] / 100, e[3] / 100, e[4]]
                                }
                            }],
                            i = e.Color = function(t, r, o, n) {
                                return new e.Color.fn.parse(t, r, o, n)
                            },
                            s = {
                                rgba: {
                                    props: {
                                        red: {
                                            idx: 0,
                                            type: "byte"
                                        },
                                        green: {
                                            idx: 1,
                                            type: "byte"
                                        },
                                        blue: {
                                            idx: 2,
                                            type: "byte"
                                        }
                                    }
                                },
                                hsla: {
                                    props: {
                                        hue: {
                                            idx: 0,
                                            type: "degrees"
                                        },
                                        saturation: {
                                            idx: 1,
                                            type: "percent"
                                        },
                                        lightness: {
                                            idx: 2,
                                            type: "percent"
                                        }
                                    }
                                }
                            },
                            a = {
                                byte: {
                                    floor: !0,
                                    max: 255
                                },
                                percent: {
                                    max: 1
                                },
                                degrees: {
                                    mod: 360,
                                    floor: !0
                                }
                            },
                            l = i.support = {},
                            c = e("<p>")[0],
                            u = e.each;

                        function d(e, t, r) {
                            var o = a[t.type] || {};
                            return null == e ? r || !t.def ? null : t.def : (e = o.floor ? ~~e : parseFloat(e), isNaN(e) ? t.def : o.mod ? (e + o.mod) % o.mod : 0 > e ? 0 : o.max < e ? o.max : e)
                        }

                        function h(t) {
                            var o = i(),
                                a = o._rgba = [];
                            return t = t.toLowerCase(), u(n, (function(e, r) {
                                var n, i = r.re.exec(t),
                                    l = i && r.parse(i),
                                    c = r.space || "rgba";
                                if (l) return n = o[c](l), o[s[c].cache] = n[s[c].cache], a = o._rgba = n._rgba, !1
                            })), a.length ? ("0,0,0,0" === a.join() && e.extend(a, r.transparent), o) : r[t]
                        }

                        function p(e, t, r) {
                            return 6 * (r = (r + 1) % 1) < 1 ? e + (t - e) * r * 6 : 2 * r < 1 ? t : 3 * r < 2 ? e + (t - e) * (2 / 3 - r) * 6 : e
                        }
                        c.style.cssText = "background-color:rgba(1,1,1,.5)", l.rgba = c.style.backgroundColor.indexOf("rgba") > -1, u(s, (function(e, t) {
                            t.cache = "_" + e, t.props.alpha = {
                                idx: 3,
                                type: "percent",
                                def: 1
                            }
                        })), i.fn = e.extend(i.prototype, {
                            parse: function(t, o, n, a) {
                                if (void 0 === t) return this._rgba = [null, null, null, null], this;
                                (t.jquery || t.nodeType) && (t = e(t).css(o), o = void 0);
                                var l = this,
                                    c = e.type(t),
                                    p = this._rgba = [];
                                return void 0 !== o && (t = [t, o, n, a], c = "array"), "string" === c ? this.parse(h(t) || r._default) : "array" === c ? (u(s.rgba.props, (function(e, r) {
                                    p[r.idx] = d(t[r.idx], r)
                                })), this) : "object" === c ? (u(s, t instanceof i ? function(e, r) {
                                    t[r.cache] && (l[r.cache] = t[r.cache].slice())
                                } : function(r, o) {
                                    var n = o.cache;
                                    u(o.props, (function(e, r) {
                                        if (!l[n] && o.to) {
                                            if ("alpha" === e || null == t[e]) return;
                                            l[n] = o.to(l._rgba)
                                        }
                                        l[n][r.idx] = d(t[e], r, !0)
                                    })), l[n] && e.inArray(null, l[n].slice(0, 3)) < 0 && (l[n][3] = 1, o.from && (l._rgba = o.from(l[n])))
                                }), this) : void 0
                            },
                            is: function(e) {
                                var t = i(e),
                                    r = !0,
                                    o = this;
                                return u(s, (function(e, n) {
                                    var i, s = t[n.cache];
                                    return s && (i = o[n.cache] || n.to && n.to(o._rgba) || [], u(n.props, (function(e, t) {
                                        if (null != s[t.idx]) return r = s[t.idx] === i[t.idx]
                                    }))), r
                                })), r
                            },
                            _space: function() {
                                var e = [],
                                    t = this;
                                return u(s, (function(r, o) {
                                    t[o.cache] && e.push(r)
                                })), e.pop()
                            },
                            transition: function(e, t) {
                                var r = i(e),
                                    o = r._space(),
                                    n = s[o],
                                    l = 0 === this.alpha() ? i("transparent") : this,
                                    c = l[n.cache] || n.to(l._rgba),
                                    h = c.slice();
                                return r = r[n.cache], u(n.props, (function(e, o) {
                                    var n = o.idx,
                                        i = c[n],
                                        s = r[n],
                                        l = a[o.type] || {};
                                    null !== s && (null === i ? h[n] = s : (l.mod && (s - i > l.mod / 2 ? i += l.mod : i - s > l.mod / 2 && (i -= l.mod)), h[n] = d((s - i) * t + i, o)))
                                })), this[o](h)
                            },
                            blend: function(t) {
                                if (1 === this._rgba[3]) return this;
                                var r = this._rgba.slice(),
                                    o = r.pop(),
                                    n = i(t)._rgba;
                                return i(e.map(r, (function(e, t) {
                                    return (1 - o) * n[t] + o * e
                                })))
                            },
                            toRgbaString: function() {
                                var t = "rgba(",
                                    r = e.map(this._rgba, (function(e, t) {
                                        return null == e ? t > 2 ? 1 : 0 : e
                                    }));
                                return 1 === r[3] && (r.pop(), t = "rgb("), t + r.join() + ")"
                            },
                            toHslaString: function() {
                                var t = "hsla(",
                                    r = e.map(this.hsla(), (function(e, t) {
                                        return null == e && (e = t > 2 ? 1 : 0), t && t < 3 && (e = Math.round(100 * e) + "%"), e
                                    }));
                                return 1 === r[3] && (r.pop(), t = "hsl("), t + r.join() + ")"
                            },
                            toHexString: function(t) {
                                var r = this._rgba.slice(),
                                    o = r.pop();
                                return t && r.push(~~(255 * o)), "#" + e.map(r, (function(e) {
                                    return 1 === (e = (e || 0).toString(16)).length ? "0" + e : e
                                })).join("")
                            },
                            toString: function() {
                                return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
                            }
                        }), i.fn.parse.prototype = i.fn, s.hsla.to = function(e) {
                            if (null == e[0] || null == e[1] || null == e[2]) return [null, null, null, e[3]];
                            var t, r, o = e[0] / 255,
                                n = e[1] / 255,
                                i = e[2] / 255,
                                s = e[3],
                                a = Math.max(o, n, i),
                                l = Math.min(o, n, i),
                                c = a - l,
                                u = a + l,
                                d = .5 * u;
                            return t = l === a ? 0 : o === a ? 60 * (n - i) / c + 360 : n === a ? 60 * (i - o) / c + 120 : 60 * (o - n) / c + 240, r = 0 === c ? 0 : d <= .5 ? c / u : c / (2 - u), [Math.round(t) % 360, r, d, null == s ? 1 : s]
                        }, s.hsla.from = function(e) {
                            if (null == e[0] || null == e[1] || null == e[2]) return [null, null, null, e[3]];
                            var t = e[0] / 360,
                                r = e[1],
                                o = e[2],
                                n = e[3],
                                i = o <= .5 ? o * (1 + r) : o + r - o * r,
                                s = 2 * o - i;
                            return [Math.round(255 * p(s, i, t + 1 / 3)), Math.round(255 * p(s, i, t)), Math.round(255 * p(s, i, t - 1 / 3)), n]
                        }, u(s, (function(t, r) {
                            var n = r.props,
                                s = r.cache,
                                a = r.to,
                                l = r.from;
                            i.fn[t] = function(t) {
                                if (a && !this[s] && (this[s] = a(this._rgba)), void 0 === t) return this[s].slice();
                                var r, o = e.type(t),
                                    c = "array" === o || "object" === o ? t : arguments,
                                    h = this[s].slice();
                                return u(n, (function(e, t) {
                                    var r = c["object" === o ? e : t.idx];
                                    null == r && (r = h[t.idx]), h[t.idx] = d(r, t)
                                })), l ? ((r = i(l(h)))[s] = h, r) : i(h)
                            }, u(n, (function(r, n) {
                                i.fn[r] || (i.fn[r] = function(i) {
                                    var s, a = e.type(i),
                                        l = "alpha" === r ? this._hsla ? "hsla" : "rgba" : t,
                                        c = this[l](),
                                        u = c[n.idx];
                                    return "undefined" === a ? u : ("function" === a && (i = i.call(this, u), a = e.type(i)), null == i && n.empty ? this : ("string" === a && (s = o.exec(i)) && (i = u + parseFloat(s[2]) * ("+" === s[1] ? 1 : -1)), c[n.idx] = i, this[l](c)))
                                })
                            }))
                        })), i.hook = function(t) {
                            var r = t.split(" ");
                            u(r, (function(t, r) {
                                e.cssHooks[r] = {
                                    set: function(t, o) {
                                        var n, s, a = "";
                                        if ("transparent" !== o && ("string" !== e.type(o) || (n = h(o)))) {
                                            if (o = i(n || o), !l.rgba && 1 !== o._rgba[3]) {
                                                for (s = "backgroundColor" === r ? t.parentNode : t;
                                                    ("" === a || "transparent" === a) && s && s.style;) try {
                                                    a = e.css(s, "backgroundColor"), s = s.parentNode
                                                } catch (e) {}
                                                o = o.blend(a && "transparent" !== a ? a : "_default")
                                            }
                                            o = o.toRgbaString()
                                        }
                                        try {
                                            t.style[r] = o
                                        } catch (e) {}
                                    }
                                }, e.fx.step[r] = function(t) {
                                    t.colorInit || (t.start = i(t.elem, r), t.end = i(t.end), t.colorInit = !0), e.cssHooks[r].set(t.elem, t.start.transition(t.end, t.pos))
                                }
                            }))
                        }, i.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"), e.cssHooks.borderColor = {
                            expand: function(e) {
                                var t = {};
                                return u(["Top", "Right", "Bottom", "Left"], (function(r, o) {
                                    t["border" + o + "Color"] = e
                                })), t
                            }
                        }, r = e.Color.names = {
                            aqua: "#00ffff",
                            black: "#000000",
                            blue: "#0000ff",
                            fuchsia: "#ff00ff",
                            gray: "#808080",
                            green: "#008000",
                            lime: "#00ff00",
                            maroon: "#800000",
                            navy: "#000080",
                            olive: "#808000",
                            purple: "#800080",
                            red: "#ff0000",
                            silver: "#c0c0c0",
                            teal: "#008080",
                            white: "#ffffff",
                            yellow: "#ffff00",
                            transparent: [null, null, null, 0],
                            _default: "#ffffff"
                        }
                    }(r),
                    function() {
                        var t, o = ["add", "remove", "toggle"],
                            n = {
                                border: 1,
                                borderBottom: 1,
                                borderColor: 1,
                                borderLeft: 1,
                                borderRight: 1,
                                borderTop: 1,
                                borderWidth: 1,
                                margin: 1,
                                padding: 1
                            };

                        function i(t) {
                            var r, o, n = t.ownerDocument.defaultView ? t.ownerDocument.defaultView.getComputedStyle(t, null) : t.currentStyle,
                                i = {};
                            if (n && n.length && n[0] && n[n[0]])
                                for (o = n.length; o--;) "string" == typeof n[r = n[o]] && (i[e.camelCase(r)] = n[r]);
                            else
                                for (r in n) "string" == typeof n[r] && (i[r] = n[r]);
                            return i
                        }
                        e.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], (function(t, o) {
                            e.fx.step[o] = function(e) {
                                ("none" !== e.end && !e.setAttr || 1 === e.pos && !e.setAttr) && (r.style(e.elem, o, e.end), e.setAttr = !0)
                            }
                        })), e.fn.addBack || (e.fn.addBack = function(e) {
                            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
                        }), e.effects.animateClass = function(t, r, s, a) {
                            var l = e.speed(r, s, a);
                            return this.queue((function() {
                                var r, s = e(this),
                                    a = s.attr("class") || "",
                                    c = l.children ? s.find("*").addBack() : s;
                                c = c.map((function() {
                                        return {
                                            el: e(this),
                                            start: i(this)
                                        }
                                    })),
                                    (r = function() {
                                        e.each(o, (function(e, r) {
                                            t[r] && s[r + "Class"](t[r])
                                        }))
                                    })(), c = c.map((function() {
                                        return this.end = i(this.el[0]), this.diff = function(t, r) {
                                            var o, i, s = {};
                                            for (o in r) i = r[o], t[o] !== i && (n[o] || !e.fx.step[o] && isNaN(parseFloat(i)) || (s[o] = i));
                                            return s
                                        }(this.start, this.end), this
                                    })), s.attr("class", a), c = c.map((function() {
                                        var t = this,
                                            r = e.Deferred(),
                                            o = e.extend({}, l, {
                                                queue: !1,
                                                complete: function() {
                                                    r.resolve(t)
                                                }
                                            });
                                        return this.el.animate(this.diff, o), r.promise()
                                    })), e.when.apply(e, c.get()).done((function() {
                                        r(), e.each(arguments, (function() {
                                            var t = this.el;
                                            e.each(this.diff, (function(e) {
                                                t.css(e, "")
                                            }))
                                        })), l.complete.call(s[0])
                                    }))
                            }))
                        }, e.fn.extend({
                            addClass: (t = e.fn.addClass, function(r, o, n, i) {
                                return o ? e.effects.animateClass.call(this, {
                                    add: r
                                }, o, n, i) : t.apply(this, arguments)
                            }),
                            removeClass: function(t) {
                                return function(r, o, n, i) {
                                    return arguments.length > 1 ? e.effects.animateClass.call(this, {
                                        remove: r
                                    }, o, n, i) : t.apply(this, arguments)
                                }
                            }(e.fn.removeClass),
                            toggleClass: function(t) {
                                return function(r, o, n, i, s) {
                                    return "boolean" == typeof o || void 0 === o ? n ? e.effects.animateClass.call(this, o ? {
                                        add: r
                                    } : {
                                        remove: r
                                    }, n, i, s) : t.apply(this, arguments) : e.effects.animateClass.call(this, {
                                        toggle: r
                                    }, o, n, i)
                                }
                            }(e.fn.toggleClass),
                            switchClass: function(t, r, o, n, i) {
                                return e.effects.animateClass.call(this, {
                                    add: r,
                                    remove: t
                                }, o, n, i)
                            }
                        })
                    }(),
                    function() {
                        var t;

                        function r(t, r, o, n) {
                            return e.isPlainObject(t) && (r = t, t = t.effect), t = {
                                effect: t
                            }, null == r && (r = {}), e.isFunction(r) && (n = r, o = null, r = {}), ("number" == typeof r || e.fx.speeds[r]) && (n = o, o = r, r = {}), e.isFunction(o) && (n = o, o = null), r && e.extend(t, r), o = o || r.duration, t.duration = e.fx.off ? 0 : "number" == typeof o ? o : o in e.fx.speeds ? e.fx.speeds[o] : e.fx.speeds._default, t.complete = n || r.complete, t
                        }

                        function o(t) {
                            return !(t && "number" != typeof t && !e.fx.speeds[t]) || "string" == typeof t && !e.effects.effect[t] || !!e.isFunction(t) || "object" == typeof t && !t.effect
                        }

                        function n(e, t) {
                            var r = t.outerWidth(),
                                o = t.outerHeight(),
                                n = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(e) || ["", 0, r, o, 0];
                            return {
                                top: parseFloat(n[1]) || 0,
                                right: "auto" === n[2] ? r : parseFloat(n[2]),
                                bottom: "auto" === n[3] ? o : parseFloat(n[3]),
                                left: parseFloat(n[4]) || 0
                            }
                        }
                        e.expr && e.expr.filters && e.expr.filters.animated && (e.expr.filters.animated = (t = e.expr.filters.animated, function(r) {
                            return !!e(r).data("ui-effects-animated") || t(r)
                        })), !1 !== e.uiBackCompat && e.extend(e.effects, {
                            save: function(e, t) {
                                for (var r = 0, o = t.length; r < o; r++) null !== t[r] && e.data("ui-effects-" + t[r], e[0].style[t[r]])
                            },
                            restore: function(e, t) {
                                for (var r, o = 0, n = t.length; o < n; o++) null !== t[o] && (r = e.data("ui-effects-" + t[o]), e.css(t[o], r))
                            },
                            setMode: function(e, t) {
                                return "toggle" === t && (t = e.is(":hidden") ? "show" : "hide"), t
                            },
                            createWrapper: function(t) {
                                if (t.parent().is(".ui-effects-wrapper")) return t.parent();
                                var r = {
                                        width: t.outerWidth(!0),
                                        height: t.outerHeight(!0),
                                        float: t.css("float")
                                    },
                                    o = e("<div></div>").addClass("ui-effects-wrapper").css({
                                        fontSize: "100%",
                                        background: "transparent",
                                        border: "none",
                                        margin: 0,
                                        padding: 0
                                    }),
                                    n = {
                                        width: t.width(),
                                        height: t.height()
                                    },
                                    i = document.activeElement;
                                try {
                                    i.id
                                } catch (e) {
                                    i = document.body
                                }
                                return t.wrap(o), (t[0] === i || e.contains(t[0], i)) && e(i).trigger("focus"), o = t.parent(), "static" === t.css("position") ? (o.css({
                                    position: "relative"
                                }), t.css({
                                    position: "relative"
                                })) : (e.extend(r, {
                                    position: t.css("position"),
                                    zIndex: t.css("z-index")
                                }), e.each(["top", "left", "bottom", "right"], (function(e, o) {
                                    r[o] = t.css(o), isNaN(parseInt(r[o], 10)) && (r[o] = "auto")
                                })), t.css({
                                    position: "relative",
                                    top: 0,
                                    left: 0,
                                    right: "auto",
                                    bottom: "auto"
                                })), t.css(n), o.css(r).show()
                            },
                            removeWrapper: function(t) {
                                var r = document.activeElement;
                                return t.parent().is(".ui-effects-wrapper") && (t.parent().replaceWith(t), (t[0] === r || e.contains(t[0], r)) && e(r).trigger("focus")), t
                            }
                        }), e.extend(e.effects, {
                            version: "1.12.1",
                            define: function(t, r, o) {
                                return o || (o = r, r = "effect"), e.effects.effect[t] = o, e.effects.effect[t].mode = r, o
                            },
                            scaledDimensions: function(e, t, r) {
                                if (0 === t) return {
                                    height: 0,
                                    width: 0,
                                    outerHeight: 0,
                                    outerWidth: 0
                                };
                                var o = "horizontal" !== r ? (t || 100) / 100 : 1,
                                    n = "vertical" !== r ? (t || 100) / 100 : 1;
                                return {
                                    height: e.height() * n,
                                    width: e.width() * o,
                                    outerHeight: e.outerHeight() * n,
                                    outerWidth: e.outerWidth() * o
                                }
                            },
                            clipToBox: function(e) {
                                return {
                                    width: e.clip.right - e.clip.left,
                                    height: e.clip.bottom - e.clip.top,
                                    left: e.clip.left,
                                    top: e.clip.top
                                }
                            },
                            unshift: function(e, t, r) {
                                var o = e.queue();
                                t > 1 && o.splice.apply(o, [1, 0].concat(o.splice(t, r))), e.dequeue()
                            },
                            saveStyle: function(e) {
                                e.data("ui-effects-style", e[0].style.cssText)
                            },
                            restoreStyle: function(e) {
                                e[0].style.cssText = e.data("ui-effects-style") || "", e.removeData("ui-effects-style")
                            },
                            mode: function(e, t) {
                                var r = e.is(":hidden");
                                return "toggle" === t && (t = r ? "show" : "hide"), (r ? "hide" === t : "show" === t) && (t = "none"), t
                            },
                            getBaseline: function(e, t) {
                                var r, o;
                                switch (e[0]) {
                                    case "top":
                                        r = 0;
                                        break;
                                    case "middle":
                                        r = .5;
                                        break;
                                    case "bottom":
                                        r = 1;
                                        break;
                                    default:
                                        r = e[0] / t.height
                                }
                                switch (e[1]) {
                                    case "left":
                                        o = 0;
                                        break;
                                    case "center":
                                        o = .5;
                                        break;
                                    case "right":
                                        o = 1;
                                        break;
                                    default:
                                        o = e[1] / t.width
                                }
                                return {
                                    x: o,
                                    y: r
                                }
                            },
                            createPlaceholder: function(t) {
                                var r, o = t.css("position"),
                                    n = t.position();
                                return t.css({
                                    marginTop: t.css("marginTop"),
                                    marginBottom: t.css("marginBottom"),
                                    marginLeft: t.css("marginLeft"),
                                    marginRight: t.css("marginRight")
                                }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()), /^(static|relative)/.test(o) && (o = "absolute", r = e("<" + t[0].nodeName + ">").insertAfter(t).css({
                                    display: /^(inline|ruby)/.test(t.css("display")) ? "inline-block" : "block",
                                    visibility: "hidden",
                                    marginTop: t.css("marginTop"),
                                    marginBottom: t.css("marginBottom"),
                                    marginLeft: t.css("marginLeft"),
                                    marginRight: t.css("marginRight"),
                                    float: t.css("float")
                                }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"), t.data("ui-effects-placeholder", r)), t.css({
                                    position: o,
                                    left: n.left,
                                    top: n.top
                                }), r
                            },
                            removePlaceholder: function(e) {
                                var t = "ui-effects-placeholder",
                                    r = e.data(t);
                                r && (r.remove(), e.removeData(t))
                            },
                            cleanUp: function(t) {
                                e.effects.restoreStyle(t), e.effects.removePlaceholder(t)
                            },
                            setTransition: function(t, r, o, n) {
                                return n = n || {}, e.each(r, (function(e, r) {
                                    var i = t.cssUnit(r);
                                    i[0] > 0 && (n[r] = i[0] * o + i[1])
                                })), n
                            }
                        }), e.fn.extend({
                            effect: function() {
                                var t = r.apply(this, arguments),
                                    o = e.effects.effect[t.effect],
                                    n = o.mode,
                                    i = t.queue,
                                    s = i || "fx",
                                    a = t.complete,
                                    l = t.mode,
                                    c = [],
                                    u = function(t) {
                                        var r = e(this),
                                            o = e.effects.mode(r, l) || n;
                                        r.data("ui-effects-animated", !0), c.push(o), n && ("show" === o || o === n && "hide" === o) && r.show(), n && "none" === o || e.effects.saveStyle(r), e.isFunction(t) && t()
                                    };
                                if (e.fx.off || !o) return l ? this[l](t.duration, a) : this.each((function() {
                                    a && a.call(this)
                                }));

                                function d(r) {
                                    var i = e(this);

                                    function s() {
                                        e.isFunction(a) && a.call(i[0]), e.isFunction(r) && r()
                                    }
                                    t.mode = c.shift(), !1 === e.uiBackCompat || n ? "none" === t.mode ? (i[l](), s()) : o.call(i[0], t, (function() {
                                        i.removeData("ui-effects-animated"), e.effects.cleanUp(i), "hide" === t.mode && i.hide(), s()
                                    })) : (i.is(":hidden") ? "hide" === l : "show" === l) ? (i[l](), s()) : o.call(i[0], t, s)
                                }
                                return !1 === i ? this.each(u).each(d) : this.queue(s, u).queue(s, d)
                            },
                            show: function(e) {
                                return function(t) {
                                    if (o(t)) return e.apply(this, arguments);
                                    var n = r.apply(this, arguments);
                                    return n.mode = "show", this.effect.call(this, n)
                                }
                            }(e.fn.show),
                            hide: function(e) {
                                return function(t) {
                                    if (o(t)) return e.apply(this, arguments);
                                    var n = r.apply(this, arguments);
                                    return n.mode = "hide", this.effect.call(this, n)
                                }
                            }(e.fn.hide),
                            toggle: function(e) {
                                return function(t) {
                                    if (o(t) || "boolean" == typeof t) return e.apply(this, arguments);
                                    var n = r.apply(this, arguments);
                                    return n.mode = "toggle", this.effect.call(this, n)
                                }
                            }(e.fn.toggle),
                            cssUnit: function(t) {
                                var r = this.css(t),
                                    o = [];
                                return e.each(["em", "px", "%", "pt"], (function(e, t) {
                                    r.indexOf(t) > 0 && (o = [parseFloat(r), t])
                                })), o
                            },
                            cssClip: function(e) {
                                return e ? this.css("clip", "rect(" + e.top + "px " + e.right + "px " + e.bottom + "px " + e.left + "px)") : n(this.css("clip"), this)
                            },
                            transfer: function(t, r) {
                                var o = e(this),
                                    n = e(t.to),
                                    i = "fixed" === n.css("position"),
                                    s = e("body"),
                                    a = i ? s.scrollTop() : 0,
                                    l = i ? s.scrollLeft() : 0,
                                    c = n.offset(),
                                    u = {
                                        top: c.top - a,
                                        left: c.left - l,
                                        height: n.innerHeight(),
                                        width: n.innerWidth()
                                    },
                                    d = o.offset(),
                                    h = e("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(t.className).css({
                                        top: d.top - a,
                                        left: d.left - l,
                                        height: o.innerHeight(),
                                        width: o.innerWidth(),
                                        position: i ? "fixed" : "absolute"
                                    }).animate(u, t.duration, t.easing, (function() {
                                        h.remove(), e.isFunction(r) && r()
                                    }))
                            }
                        }), e.fx.step.clip = function(t) {
                            t.clipInit || (t.start = e(t.elem).cssClip(), "string" == typeof t.end && (t.end = n(t.end, t.elem)), t.clipInit = !0), e(t.elem).cssClip({
                                top: t.pos * (t.end.top - t.start.top) + t.start.top,
                                right: t.pos * (t.end.right - t.start.right) + t.start.right,
                                bottom: t.pos * (t.end.bottom - t.start.bottom) + t.start.bottom,
                                left: t.pos * (t.end.left - t.start.left) + t.start.left
                            })
                        }
                    }(), t = {}, e.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], (function(e, r) {
                        t[r] = function(t) {
                            return Math.pow(t, e + 2)
                        }
                    })), e.extend(t, {
                        Sine: function(e) {
                            return 1 - Math.cos(e * Math.PI / 2)
                        },
                        Circ: function(e) {
                            return 1 - Math.sqrt(1 - e * e)
                        },
                        Elastic: function(e) {
                            return 0 === e || 1 === e ? e : -Math.pow(2, 8 * (e - 1)) * Math.sin((80 * (e - 1) - 7.5) * Math.PI / 15)
                        },
                        Back: function(e) {
                            return e * e * (3 * e - 2)
                        },
                        Bounce: function(e) {
                            for (var t, r = 4; e < ((t = Math.pow(2, --r)) - 1) / 11;);
                            return 1 / Math.pow(4, 3 - r) - 7.5625 * Math.pow((3 * t - 2) / 22 - e, 2)
                        }
                    }), e.each(t, (function(t, r) {
                        e.easing["easeIn" + t] = r, e.easing["easeOut" + t] = function(e) {
                                return 1 - r(1 - e)
                            },
                            e.easing["easeInOut" + t] = function(e) {
                                return e < .5 ? r(2 * e) / 2 : 1 - r(-2 * e + 2) / 2
                            }
                    })), e.effects
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        21870: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(85592)], void 0 === (i = "function" == typeof(o = function(e) {
                return e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        17053: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(85592)], void 0 === (i = "function" == typeof(o = function(e) {
                return e.ui.keyCode = {
                    BACKSPACE: 8,
                    COMMA: 188,
                    DELETE: 46,
                    DOWN: 40,
                    END: 35,
                    ENTER: 13,
                    ESCAPE: 27,
                    HOME: 36,
                    LEFT: 37,
                    PAGE_DOWN: 34,
                    PAGE_UP: 33,
                    PERIOD: 190,
                    RIGHT: 39,
                    SPACE: 32,
                    TAB: 9,
                    UP: 38
                }
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        91822: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(85592)], void 0 === (i = "function" == typeof(o = function(e) {
                return function() {
                    var t, r = Math.max,
                        o = Math.abs,
                        n = /left|center|right/,
                        i = /top|center|bottom/,
                        s = /[\+\-]\d+(\.[\d]+)?%?/,
                        a = /^\w+/,
                        l = /%$/,
                        c = e.fn.position;

                    function u(e, t, r) {
                        return [parseFloat(e[0]) * (l.test(e[0]) ? t / 100 : 1), parseFloat(e[1]) * (l.test(e[1]) ? r / 100 : 1)]
                    }

                    function d(t, r) {
                        return parseInt(e.css(t, r), 10) || 0
                    }

                    function h(t) {
                        var r = t[0];
                        return 9 === r.nodeType ? {
                            width: t.width(),
                            height: t.height(),
                            offset: {
                                top: 0,
                                left: 0
                            }
                        } : e.isWindow(r) ? {
                            width: t.width(),
                            height: t.height(),
                            offset: {
                                top: t.scrollTop(),
                                left: t.scrollLeft()
                            }
                        } : r.preventDefault ? {
                            width: 0,
                            height: 0,
                            offset: {
                                top: r.pageY,
                                left: r.pageX
                            }
                        } : {
                            width: t.outerWidth(),
                            height: t.outerHeight(),
                            offset: t.offset()
                        }
                    }
                    e.position = {
                        scrollbarWidth: function() {
                            if (void 0 !== t) return t;
                            var r, o, n = e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),
                                i = n.children()[0];
                            return e("body").append(n), r = i.offsetWidth, n.css("overflow", "scroll"), r === (o = i.offsetWidth) && (o = n[0].clientWidth), n.remove(), t = r - o
                        },
                        getScrollInfo: function(t) {
                            var r = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"),
                                o = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"),
                                n = "scroll" === r || "auto" === r && t.width < t.element[0].scrollWidth;
                            return {
                                width: "scroll" === o || "auto" === o && t.height < t.element[0].scrollHeight ? e.position.scrollbarWidth() : 0,
                                height: n ? e.position.scrollbarWidth() : 0
                            }
                        },
                        getWithinInfo: function(t) {
                            var r = e(t || window),
                                o = e.isWindow(r[0]),
                                n = !!r[0] && 9 === r[0].nodeType;
                            return {
                                element: r,
                                isWindow: o,
                                isDocument: n,
                                offset: o || n ? {
                                    left: 0,
                                    top: 0
                                } : e(t).offset(),
                                scrollLeft: r.scrollLeft(),
                                scrollTop: r.scrollTop(),
                                width: r.outerWidth(),
                                height: r.outerHeight()
                            }
                        }
                    }, e.fn.position = function(t) {
                        if (!t || !t.of) return c.apply(this, arguments);
                        t = e.extend({}, t);
                        var l, p, f, g, m, _, v = e(t.of),
                            b = e.position.getWithinInfo(t.within),
                            y = e.position.getScrollInfo(b),
                            w = (t.collision || "flip").split(" "),
                            S = {};
                        return _ = h(v), v[0].preventDefault && (t.at = "left top"), p = _.width, f = _.height, g = _.offset, m = e.extend({}, g), e.each(["my", "at"], (function() {
                                var e, r, o = (t[this] || "").split(" ");
                                1 === o.length && (o = n.test(o[0]) ? o.concat(["center"]) : i.test(o[0]) ? ["center"].concat(o) : ["center", "center"]), o[0] = n.test(o[0]) ? o[0] : "center", o[1] = i.test(o[1]) ? o[1] : "center", e = s.exec(o[0]), r = s.exec(o[1]), S[this] = [e ? e[0] : 0, r ? r[0] : 0], t[this] = [a.exec(o[0])[0], a.exec(o[1])[0]]
                            })), 1 === w.length && (w[1] = w[0]),
                            "right" === t.at[0] ? m.left += p : "center" === t.at[0] && (m.left += p / 2), "bottom" === t.at[1] ? m.top += f : "center" === t.at[1] && (m.top += f / 2), l = u(S.at, p, f), m.left += l[0], m.top += l[1], this.each((function() {
                                var n, i, s = e(this),
                                    a = s.outerWidth(),
                                    c = s.outerHeight(),
                                    h = d(this, "marginLeft"),
                                    _ = d(this, "marginTop"),
                                    C = a + h + d(this, "marginRight") + y.width,
                                    k = c + _ + d(this, "marginBottom") + y.height,
                                    E = e.extend({}, m),
                                    x = u(S.my, s.outerWidth(), s.outerHeight());
                                "right" === t.my[0] ? E.left -= a : "center" === t.my[0] && (E.left -= a / 2), "bottom" === t.my[1] ? E.top -= c : "center" === t.my[1] && (E.top -= c / 2), E.left += x[0], E.top += x[1], n = {
                                    marginLeft: h,
                                    marginTop: _
                                }, e.each(["left", "top"], (function(r, o) {
                                    e.ui.position[w[r]] && e.ui.position[w[r]][o](E, {
                                        targetWidth: p,
                                        targetHeight: f,
                                        elemWidth: a,
                                        elemHeight: c,
                                        collisionPosition: n,
                                        collisionWidth: C,
                                        collisionHeight: k,
                                        offset: [l[0] + x[0], l[1] + x[1]],
                                        my: t.my,
                                        at: t.at,
                                        within: b,
                                        elem: s
                                    })
                                })), t.using && (i = function(e) {
                                    var n = g.left - E.left,
                                        i = n + p - a,
                                        l = g.top - E.top,
                                        u = l + f - c,
                                        d = {
                                            target: {
                                                element: v,
                                                left: g.left,
                                                top: g.top,
                                                width: p,
                                                height: f
                                            },
                                            element: {
                                                element: s,
                                                left: E.left,
                                                top: E.top,
                                                width: a,
                                                height: c
                                            },
                                            horizontal: i < 0 ? "left" : n > 0 ? "right" : "center",
                                            vertical: u < 0 ? "top" : l > 0 ? "bottom" : "middle"
                                        };
                                    p < a && o(n + i) < p && (d.horizontal = "center"), f < c && o(l + u) < f && (d.vertical = "middle"), r(o(n), o(i)) > r(o(l), o(u)) ? d.important = "horizontal" : d.important = "vertical", t.using.call(this, e, d)
                                }), s.offset(e.extend(E, {
                                    using: i
                                }))
                            }))
                    }, e.ui.position = {
                        fit: {
                            left: function(e, t) {
                                var o, n = t.within,
                                    i = n.isWindow ? n.scrollLeft : n.offset.left,
                                    s = n.width,
                                    a = e.left - t.collisionPosition.marginLeft,
                                    l = i - a,
                                    c = a + t.collisionWidth - s - i;
                                t.collisionWidth > s ? l > 0 && c <= 0 ? (o = e.left + l + t.collisionWidth - s - i, e.left += l - o) : e.left = c > 0 && l <= 0 ? i : l > c ? i + s - t.collisionWidth : i : l > 0 ? e.left += l : c > 0 ? e.left -= c : e.left = r(e.left - a, e.left)
                            },
                            top: function(e, t) {
                                var o, n = t.within,
                                    i = n.isWindow ? n.scrollTop : n.offset.top,
                                    s = t.within.height,
                                    a = e.top - t.collisionPosition.marginTop,
                                    l = i - a,
                                    c = a + t.collisionHeight - s - i;
                                t.collisionHeight > s ? l > 0 && c <= 0 ? (o = e.top + l + t.collisionHeight - s - i, e.top += l - o) : e.top = c > 0 && l <= 0 ? i : l > c ? i + s - t.collisionHeight : i : l > 0 ? e.top += l : c > 0 ? e.top -= c : e.top = r(e.top - a, e.top)
                            }
                        },
                        flip: {
                            left: function(e, t) {
                                var r, n, i = t.within,
                                    s = i.offset.left + i.scrollLeft,
                                    a = i.width,
                                    l = i.isWindow ? i.scrollLeft : i.offset.left,
                                    c = e.left - t.collisionPosition.marginLeft,
                                    u = c - l,
                                    d = c + t.collisionWidth - a - l,
                                    h = "left" === t.my[0] ? -t.elemWidth : "right" === t.my[0] ? t.elemWidth : 0,
                                    p = "left" === t.at[0] ? t.targetWidth : "right" === t.at[0] ? -t.targetWidth : 0,
                                    f = -2 * t.offset[0];
                                u < 0 ? ((r = e.left + h + p + f + t.collisionWidth - a - s) < 0 || r < o(u)) && (e.left += h + p + f) : d > 0 && ((n = e.left - t.collisionPosition.marginLeft + h + p + f - l) > 0 || o(n) < d) && (e.left += h + p + f)
                            },
                            top: function(e, t) {
                                var r, n, i = t.within,
                                    s = i.offset.top + i.scrollTop,
                                    a = i.height,
                                    l = i.isWindow ? i.scrollTop : i.offset.top,
                                    c = e.top - t.collisionPosition.marginTop,
                                    u = c - l,
                                    d = c + t.collisionHeight - a - l,
                                    h = "top" === t.my[1] ? -t.elemHeight : "bottom" === t.my[1] ? t.elemHeight : 0,
                                    p = "top" === t.at[1] ? t.targetHeight : "bottom" === t.at[1] ? -t.targetHeight : 0,
                                    f = -2 * t.offset[1];
                                u < 0 ? ((n = e.top + h + p + f + t.collisionHeight - a - s) < 0 || n < o(u)) && (e.top += h + p + f) : d > 0 && ((r = e.top - t.collisionPosition.marginTop + h + p + f - l) > 0 || o(r) < d) && (e.top += h + p + f)
                            }
                        },
                        flipfit: {
                            left: function() {
                                e.ui.position.flip.left.apply(this, arguments), e.ui.position.fit.left.apply(this, arguments)
                            },
                            top: function() {
                                e.ui.position.flip.top.apply(this, arguments), e.ui.position.fit.top.apply(this, arguments)
                            }
                        }
                    }
                }(), e.ui.position
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        85592: (e, t, r) => {
            var o, n, i;
            n = [r(18184)], void 0 === (i = "function" == typeof(o = function(e) {
                return e.ui = e.ui || {}, e.ui.version = "1.12.1"
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        26891: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(85592)], void 0 === (i = "function" == typeof(o = function(e) {
                var t, r = 0,
                    o = Array.prototype.slice;
                return e.cleanData = (t = e.cleanData, function(r) {
                    var o, n, i;
                    for (i = 0; null != (n = r[i]); i++) try {
                        (o = e._data(n, "events")) && o.remove && e(n).triggerHandler("remove")
                    } catch (e) {}
                    t(r)
                }), e.widget = function(t, r, o) {
                    var n, i, s, a = {},
                        l = t.split(".")[0],
                        c = l + "-" + (t = t.split(".")[1]);
                    return o || (o = r, r = e.Widget), e.isArray(o) && (o = e.extend.apply(null, [{}].concat(o))), e.expr[":"][c.toLowerCase()] = function(t) {
                        return !!e.data(t, c)
                    }, e[l] = e[l] || {}, n = e[l][t], i = e[l][t] = function(e, t) {
                        if (!this._createWidget) return new i(e, t);
                        arguments.length && this._createWidget(e, t)
                    }, e.extend(i, n, {
                        version: o.version,
                        _proto: e.extend({}, o),
                        _childConstructors: []
                    }), (s = new r).options = e.widget.extend({}, s.options), e.each(o, (function(t, o) {
                        e.isFunction(o) ? a[t] = function() {
                            function e() {
                                return r.prototype[t].apply(this, arguments)
                            }

                            function n(e) {
                                return r.prototype[t].apply(this, e)
                            }
                            return function() {
                                var t, r = this._super,
                                    i = this._superApply;
                                return this._super = e, this._superApply = n, t = o.apply(this, arguments), this._super = r, this._superApply = i, t
                            }
                        }() : a[t] = o
                    })), i.prototype = e.widget.extend(s, {
                        widgetEventPrefix: n && s.widgetEventPrefix || t
                    }, a, {
                        constructor: i,
                        namespace: l,
                        widgetName: t,
                        widgetFullName: c
                    }), n ? (e.each(n._childConstructors, (function(t, r) {
                        var o = r.prototype;
                        e.widget(o.namespace + "." + o.widgetName, i, r._proto)
                    })), delete n._childConstructors) : r._childConstructors.push(i), e.widget.bridge(t, i), i
                }, e.widget.extend = function(t) {
                    for (var r, n, i = o.call(arguments, 1), s = 0, a = i.length; s < a; s++)
                        for (r in i[s]) n = i[s][r], i[s].hasOwnProperty(r) && void 0 !== n && (e.isPlainObject(n) ? t[r] = e.isPlainObject(t[r]) ? e.widget.extend({}, t[r], n) : e.widget.extend({}, n) : t[r] = n);
                    return t
                }, e.widget.bridge = function(t, r) {
                    var n = r.prototype.widgetFullName || t;
                    e.fn[t] = function(i) {
                        var s = "string" == typeof i,
                            a = o.call(arguments, 1),
                            l = this;
                        return s ? this.length || "instance" !== i ? this.each((function() {
                            var r, o = e.data(this, n);
                            return "instance" === i ? (l = o, !1) : o ? e.isFunction(o[i]) && "_" !== i.charAt(0) ? (r = o[i].apply(o, a)) !== o && void 0 !== r ? (l = r && r.jquery ? l.pushStack(r.get()) : r, !1) : void 0 : e.error("no such method '" + i + "' for " + t + " widget instance") : e.error("cannot call methods on " + t + " prior to initialization; attempted to call method '" + i + "'")
                        })) : l = void 0 : (a.length && (i = e.widget.extend.apply(null, [i].concat(a))), this.each((function() {
                            var t = e.data(this, n);
                            t ? (t.option(i || {}), t._init && t._init()) : e.data(this, n, new r(i, this))
                        }))), l
                    }
                }, e.Widget = function() {}, e.Widget._childConstructors = [], e.Widget.prototype = {
                    widgetName: "widget",
                    widgetEventPrefix: "",
                    defaultElement: "<div>",
                    options: {
                        classes: {},
                        disabled: !1,
                        create: null
                    },
                    _createWidget: function(t, o) {
                        o = e(o || this.defaultElement || this)[0], this.element = e(o), this.uuid = r++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = e(), this.hoverable = e(), this.focusable = e(), this.classesElementLookup = {}, o !== this && (e.data(o, this.widgetFullName, this), this._on(!0, this.element, {
                            remove: function(e) {
                                e.target === o && this.destroy()
                            }
                        }), this.document = e(o.style ? o.ownerDocument : o.document || o), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init()
                    },
                    _getCreateOptions: function() {
                        return {}
                    },
                    _getCreateEventData: e.noop,
                    _create: e.noop,
                    _init: e.noop,
                    destroy: function() {
                        var t = this;
                        this._destroy(), e.each(this.classesElementLookup, (function(e, r) {
                            t._removeClass(r, e)
                        })), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace)
                    },
                    _destroy: e.noop,
                    widget: function() {
                        return this.element
                    },
                    option: function(t, r) {
                        var o, n, i, s = t;
                        if (0 === arguments.length) return e.widget.extend({}, this.options);
                        if ("string" == typeof t)
                            if (s = {}, o = t.split("."), t = o.shift(), o.length) {
                                for (n = s[t] = e.widget.extend({}, this.options[t]), i = 0; i < o.length - 1; i++) n[o[i]] = n[o[i]] || {}, n = n[o[i]];
                                if (t = o.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t];
                                n[t] = r
                            } else {
                                if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t];
                                s[t] = r
                            }
                        return this._setOptions(s), this
                    },
                    _setOptions: function(e) {
                        var t;
                        for (t in e) this._setOption(t, e[t]);
                        return this
                    },
                    _setOption: function(e, t) {
                        return "classes" === e && this._setOptionClasses(t), this.options[e] = t, "disabled" === e && this._setOptionDisabled(t), this
                    },
                    _setOptionClasses: function(t) {
                        var r, o, n;
                        for (r in t) n = this.classesElementLookup[r], t[r] !== this.options.classes[r] && n && n.length && (o = e(n.get()), this._removeClass(n, r), o.addClass(this._classes({
                            element: o,
                            keys: r,
                            classes: t,
                            add: !0
                        })))
                    },
                    _setOptionDisabled: function(e) {
                        this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!e), e && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus"))
                    },
                    enable: function() {
                        return this._setOptions({
                            disabled: !1
                        })
                    },
                    disable: function() {
                        return this._setOptions({
                            disabled: !0
                        })
                    },
                    _classes: function(t) {
                        var r = [],
                            o = this;

                        function n(n, i) {
                            var s, a;
                            for (a = 0; a < n.length; a++) s = o.classesElementLookup[n[a]] || e(), s = t.add ? e(e.unique(s.get().concat(t.element.get()))) : e(s.not(t.element).get()), o.classesElementLookup[n[a]] = s, r.push(n[a]), i && t.classes[n[a]] && r.push(t.classes[n[a]])
                        }
                        return t = e.extend({
                            element: this.element,
                            classes: this.options.classes || {}
                        }, t), this._on(t.element, {
                            remove: "_untrackClassesElement"
                        }), t.keys && n(t.keys.match(/\S+/g) || [], !0), t.extra && n(t.extra.match(/\S+/g) || []), r.join(" ")
                    },
                    _untrackClassesElement: function(t) {
                        var r = this;
                        e.each(r.classesElementLookup, (function(o, n) {
                            -1 !== e.inArray(t.target, n) && (r.classesElementLookup[o] = e(n.not(t.target).get()))
                        }))
                    },
                    _removeClass: function(e, t, r) {
                        return this._toggleClass(e, t, r, !1)
                    },
                    _addClass: function(e, t, r) {
                        return this._toggleClass(e, t, r, !0)
                    },
                    _toggleClass: function(e, t, r, o) {
                        o = "boolean" == typeof o ? o : r;
                        var n = "string" == typeof e || null === e,
                            i = {
                                extra: n ? t : r,
                                keys: n ? e : t,
                                element: n ? this.element : e,
                                add: o
                            };
                        return i.element.toggleClass(this._classes(i), o), this
                    },
                    _on: function(t, r, o) {
                        var n, i = this;
                        "boolean" != typeof t && (o = r, r = t, t = !1), o ? (r = n = e(r), this.bindings = this.bindings.add(r)) : (o = r, r = this.element, n = this.widget()), e.each(o, (function(o, s) {
                            function a() {
                                if (t || !0 !== i.options.disabled && !e(this).hasClass("ui-state-disabled")) return ("string" == typeof s ? i[s] : s).apply(i, arguments)
                            }
                            "string" != typeof s && (a.guid = s.guid = s.guid || a.guid || e.guid++);
                            var l = o.match(/^([\w:-]*)\s*(.*)$/),
                                c = l[1] + i.eventNamespace,
                                u = l[2];
                            u ? n.on(c, u, a) : r.on(c, a)
                        }))
                    },
                    _off: function(t, r) {
                        r = (r || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.off(r).off(r), this.bindings = e(this.bindings.not(t).get()), this.focusable = e(this.focusable.not(t).get()), this.hoverable = e(this.hoverable.not(t).get())
                    },
                    _delay: function(e, t) {
                        var r = this;
                        return setTimeout((function() {
                            return ("string" == typeof e ? r[e] : e).apply(r, arguments)
                        }), t || 0)
                    },
                    _hoverable: function(t) {
                        this.hoverable = this.hoverable.add(t), this._on(t, {
                            mouseenter: function(t) {
                                this._addClass(e(t.currentTarget), null, "ui-state-hover")
                            },
                            mouseleave: function(t) {
                                this._removeClass(e(t.currentTarget), null, "ui-state-hover")
                            }
                        })
                    },
                    _focusable: function(t) {
                        this.focusable = this.focusable.add(t), this._on(t, {
                            focusin: function(t) {
                                this._addClass(e(t.currentTarget), null, "ui-state-focus")
                            },
                            focusout: function(t) {
                                this._removeClass(e(t.currentTarget), null, "ui-state-focus")
                            }
                        })
                    },
                    _trigger: function(t, r, o) {
                        var n, i, s = this.options[t];
                        if (o = o || {}, (r = e.Event(r)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), r.target = this.element[0], i = r.originalEvent)
                            for (n in i) n in r || (r[n] = i[n]);
                        return this.element.trigger(r, o), !(e.isFunction(s) && !1 === s.apply(this.element[0], [r].concat(o)) || r.isDefaultPrevented())
                    }
                }, e.each({
                    show: "fadeIn",
                    hide: "fadeOut"
                }, (function(t, r) {
                    e.Widget.prototype["_" + t] = function(o, n, i) {
                        var s;
                        "string" == typeof n && (n = {
                            effect: n
                        });
                        var a = n ? !0 === n || "number" == typeof n ? r : n.effect || r : t;
                        "number" == typeof(n = n || {}) && (n = {
                            duration: n
                        }), s = !e.isEmptyObject(n), n.complete = i, n.delay && o.delay(n.delay), s && e.effects && e.effects.effect[a] ? o[t](n) : a !== t && o[a] ? o[a](n.duration, n.easing, i) : o.queue((function(r) {
                            e(this)[t](), i && i.call(o[0]), r()
                        }))
                    }
                })), e.widget
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        66177: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(21870), r(85592), r(26891)], void 0 === (i = "function" == typeof(o = function(e) {
                var t = !1;
                return e(document).on("mouseup", (function() {
                    t = !1
                })), e.widget("ui.mouse", {
                    version: "1.12.1",
                    options: {
                        cancel: "input, textarea, button, select, option",
                        distance: 1,
                        delay: 0
                    },
                    _mouseInit: function() {
                        var t = this;
                        this.element.on("mousedown." + this.widgetName, (function(e) {
                            return t._mouseDown(e)
                        })).on("click." + this.widgetName, (function(r) {
                            if (!0 === e.data(r.target, t.widgetName + ".preventClickEvent")) return e.removeData(r.target, t.widgetName + ".preventClickEvent"), r.stopImmediatePropagation(), !1
                        })), this.started = !1
                    },
                    _mouseDestroy: function() {
                        this.element.off("." + this.widgetName), this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate)
                    },
                    _mouseDown: function(r) {
                        if (!t) {
                            this._mouseMoved = !1, this._mouseStarted && this._mouseUp(r), this._mouseDownEvent = r;
                            var o = this,
                                n = 1 === r.which,
                                i = !("string" != typeof this.options.cancel || !r.target.nodeName) && e(r.target).closest(this.options.cancel).length;
                            return !(n && !i && this._mouseCapture(r) && (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout((function() {
                                o.mouseDelayMet = !0
                            }), this.options.delay)), this._mouseDistanceMet(r) && this._mouseDelayMet(r) && (this._mouseStarted = !1 !== this._mouseStart(r), !this._mouseStarted) ? (r.preventDefault(), 0) : (!0 === e.data(r.target, this.widgetName + ".preventClickEvent") && e.removeData(r.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(e) {
                                return o._mouseMove(e)
                            }, this._mouseUpDelegate = function(e) {
                                return o._mouseUp(e)
                            }, this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate), r.preventDefault(), t = !0, 0)))
                        }
                    },
                    _mouseMove: function(t) {
                        if (this._mouseMoved) {
                            if (e.ui.ie && (!document.documentMode || document.documentMode < 9) && !t.button) return this._mouseUp(t);
                            if (!t.which)
                                if (t.originalEvent.altKey || t.originalEvent.ctrlKey || t.originalEvent.metaKey || t.originalEvent.shiftKey) this.ignoreMissingWhich = !0;
                                else if (!this.ignoreMissingWhich) return this._mouseUp(t)
                        }
                        return (t.which || t.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(t), t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, t), this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), !this._mouseStarted)
                    },
                    _mouseUp: function(r) {
                        this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, r.target === this._mouseDownEvent.target && e.data(r.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(r)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, t = !1, r.preventDefault()
                    },
                    _mouseDistanceMet: function(e) {
                        return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance
                    },
                    _mouseDelayMet: function() {
                        return this.mouseDelayMet
                    },
                    _mouseStart: function() {},
                    _mouseDrag: function() {},
                    _mouseStop: function() {},
                    _mouseCapture: function() {
                        return !0
                    }
                })
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        86227: (e, t, r) => {
            var o, n, i;
            n = [r(18184), r(66177), r(17053), r(85592), r(26891)], void 0 === (i = "function" == typeof(o = function(e) {
                return e.widget("ui.slider", e.ui.mouse, {
                    version: "1.12.1",
                    widgetEventPrefix: "slide",
                    options: {
                        animate: !1,
                        classes: {
                            "ui-slider": "ui-corner-all",
                            "ui-slider-handle": "ui-corner-all",
                            "ui-slider-range": "ui-corner-all ui-widget-header"
                        },
                        distance: 0,
                        max: 100,
                        min: 0,
                        orientation: "horizontal",
                        range: !1,
                        step: 1,
                        value: 0,
                        values: null,
                        change: null,
                        slide: null,
                        start: null,
                        stop: null
                    },
                    numPages: 5,
                    _create: function() {
                        this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"), this._refresh(), this._animateOff = !1
                    },
                    _refresh: function() {
                        this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue()
                    },
                    _createHandles: function() {
                        var t, r, o = this.options,
                            n = this.element.find(".ui-slider-handle"),
                            i = [];
                        for (r = o.values && o.values.length || 1, n.length > r && (n.slice(r).remove(), n = n.slice(0, r)), t = n.length; t < r; t++) i.push("<span tabindex='0'></span>");
                        this.handles = n.add(e(i.join("")).appendTo(this.element)), this._addClass(this.handles, "ui-slider-handle", "ui-state-default"), this.handle = this.handles.eq(0), this.handles.each((function(t) {
                            e(this).data("ui-slider-handle-index", t).attr("tabIndex", 0)
                        }))
                    },
                    _createRange: function() {
                        var t = this.options;
                        t.range ? (!0 === t.range && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : e.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"), this.range.css({
                            left: "",
                            bottom: ""
                        })) : (this.range = e("<div>").appendTo(this.element), this._addClass(this.range, "ui-slider-range")), "min" !== t.range && "max" !== t.range || this._addClass(this.range, "ui-slider-range-" + t.range)) : (this.range && this.range.remove(), this.range = null)
                    },
                    _setupEvents: function() {
                        this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles)
                    },
                    _destroy: function() {
                        this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy()
                    },
                    _mouseCapture: function(t) {
                        var r, o, n, i, s, a, l, c = this,
                            u = this.options;
                        return !u.disabled && (this.elementSize = {
                            width: this.element.outerWidth(),
                            height: this.element.outerHeight()
                        }, this.elementOffset = this.element.offset(), r = {
                            x: t.pageX,
                            y: t.pageY
                        }, o = this._normValueFromMouse(r), n = this._valueMax() - this._valueMin() + 1, this.handles.each((function(t) {
                            var r = Math.abs(o - c.values(t));
                            (n > r || n === r && (t === c._lastChangedValue || c.values(t) === u.min)) && (n = r, i = e(this), s = t)
                        })), !1 !== this._start(t, s) && (this._mouseSliding = !0, this._handleIndex = s, this._addClass(i, null, "ui-state-active"), i.trigger("focus"), a = i.offset(), l = !e(t.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = l ? {
                            left: 0,
                            top: 0
                        } : {
                            left: t.pageX - a.left - i.width() / 2,
                            top: t.pageY - a.top - i.height() / 2 - (parseInt(i.css("borderTopWidth"), 10) || 0) - (parseInt(i.css("borderBottomWidth"), 10) || 0) + (parseInt(i.css("marginTop"), 10) || 0)
                        }, this.handles.hasClass("ui-state-hover") || this._slide(t, s, o), this._animateOff = !0, !0))
                    },
                    _mouseStart: function() {
                        return !0
                    },
                    _mouseDrag: function(e) {
                        var t = {
                                x: e.pageX,
                                y: e.pageY
                            },
                            r = this._normValueFromMouse(t);
                        return this._slide(e, this._handleIndex, r), !1
                    },
                    _mouseStop: function(e) {
                        return this._removeClass(this.handles, null, "ui-state-active"), this._mouseSliding = !1, this._stop(e, this._handleIndex),
                            this._change(e, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
                    },
                    _detectOrientation: function() {
                        this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
                    },
                    _normValueFromMouse: function(e) {
                        var t, r, o, n, i;
                        return "horizontal" === this.orientation ? (t = this.elementSize.width, r = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, r = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), (o = r / t) > 1 && (o = 1), o < 0 && (o = 0), "vertical" === this.orientation && (o = 1 - o), n = this._valueMax() - this._valueMin(), i = this._valueMin() + o * n, this._trimAlignValue(i)
                    },
                    _uiHash: function(e, t, r) {
                        var o = {
                            handle: this.handles[e],
                            handleIndex: e,
                            value: void 0 !== t ? t : this.value()
                        };
                        return this._hasMultipleValues() && (o.value = void 0 !== t ? t : this.values(e), o.values = r || this.values()), o
                    },
                    _hasMultipleValues: function() {
                        return this.options.values && this.options.values.length
                    },
                    _start: function(e, t) {
                        return this._trigger("start", e, this._uiHash(t))
                    },
                    _slide: function(e, t, r) {
                        var o, n = this.value(),
                            i = this.values();
                        this._hasMultipleValues() && (o = this.values(t ? 0 : 1), n = this.values(t), 2 === this.options.values.length && !0 === this.options.range && (r = 0 === t ? Math.min(o, r) : Math.max(o, r)), i[t] = r), r !== n && !1 !== this._trigger("slide", e, this._uiHash(t, r, i)) && (this._hasMultipleValues() ? this.values(t, r) : this.value(r))
                    },
                    _stop: function(e, t) {
                        this._trigger("stop", e, this._uiHash(t))
                    },
                    _change: function(e, t) {
                        this._keySliding || this._mouseSliding || (this._lastChangedValue = t, this._trigger("change", e, this._uiHash(t)))
                    },
                    value: function(e) {
                        return arguments.length ? (this.options.value = this._trimAlignValue(e), this._refreshValue(), void this._change(null, 0)) : this._value()
                    },
                    values: function(t, r) {
                        var o, n, i;
                        if (arguments.length > 1) return this.options.values[t] = this._trimAlignValue(r), this._refreshValue(), void this._change(null, t);
                        if (!arguments.length) return this._values();
                        if (!e.isArray(arguments[0])) return this._hasMultipleValues() ? this._values(t) : this.value();
                        for (o = this.options.values, n = arguments[0], i = 0; i < o.length; i += 1) o[i] = this._trimAlignValue(n[i]), this._change(null, i);
                        this._refreshValue()
                    },
                    _setOption: function(t, r) {
                        var o, n = 0;
                        switch ("range" === t && !0 === this.options.range && ("min" === r ? (this.options.value = this._values(0), this.options.values = null) : "max" === r && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), e.isArray(this.options.values) && (n = this.options.values.length), this._super(t, r), t) {
                            case "orientation":
                                this._detectOrientation(), this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation), this._refreshValue(), this.options.range && this._refreshRange(r), this.handles.css("horizontal" === r ? "bottom" : "left", "");
                                break;
                            case "value":
                                this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;
                                break;
                            case "values":
                                for (this._animateOff = !0, this._refreshValue(), o = n - 1; o >= 0; o--) this._change(null, o);
                                this._animateOff = !1;
                                break;
                            case "step":
                            case "min":
                            case "max":
                                this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1;
                                break;
                            case "range":
                                this._animateOff = !0, this._refresh(), this._animateOff = !1
                        }
                    },
                    _setOptionDisabled: function(e) {
                        this._super(e), this._toggleClass(null, "ui-state-disabled", !!e)
                    },
                    _value: function() {
                        var e = this.options.value;
                        return e = this._trimAlignValue(e)
                    },
                    _values: function(e) {
                        var t, r, o;
                        if (arguments.length) return t = this.options.values[e], t = this._trimAlignValue(t);
                        if (this._hasMultipleValues()) {
                            for (r = this.options.values.slice(), o = 0; o < r.length; o += 1) r[o] = this._trimAlignValue(r[o]);
                            return r
                        }
                        return []
                    },
                    _trimAlignValue: function(e) {
                        if (e <= this._valueMin()) return this._valueMin();
                        if (e >= this._valueMax()) return this._valueMax();
                        var t = this.options.step > 0 ? this.options.step : 1,
                            r = (e - this._valueMin()) % t,
                            o = e - r;
                        return 2 * Math.abs(r) >= t && (o += r > 0 ? t : -t), parseFloat(o.toFixed(5))
                    },
                    _calculateNewMax: function() {
                        var e = this.options.max,
                            t = this._valueMin(),
                            r = this.options.step;
                        (e = Math.round((e - t) / r) * r + t) > this.options.max && (e -= r), this.max = parseFloat(e.toFixed(this._precision()))
                    },
                    _precision: function() {
                        var e = this._precisionOf(this.options.step);
                        return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))), e
                    },
                    _precisionOf: function(e) {
                        var t = e.toString(),
                            r = t.indexOf(".");
                        return -1 === r ? 0 : t.length - r - 1
                    },
                    _valueMin: function() {
                        return this.options.min
                    },
                    _valueMax: function() {
                        return this.max
                    },
                    _refreshRange: function(e) {
                        "vertical" === e && this.range.css({
                            width: "",
                            left: ""
                        }), "horizontal" === e && this.range.css({
                            height: "",
                            bottom: ""
                        })
                    },
                    _refreshValue: function() {
                        var t, r, o, n, i, s = this.options.range,
                            a = this.options,
                            l = this,
                            c = !this._animateOff && a.animate,
                            u = {};
                        this._hasMultipleValues() ? this.handles.each((function(o) {
                            r = (l.values(o) - l._valueMin()) / (l._valueMax() - l._valueMin()) * 100, u["horizontal" === l.orientation ? "left" : "bottom"] = r + "%", e(this).stop(1, 1)[c ? "animate" : "css"](u, a.animate), !0 === l.options.range && ("horizontal" === l.orientation ? (0 === o && l.range.stop(1, 1)[c ? "animate" : "css"]({
                                left: r + "%"
                            }, a.animate), 1 === o && l.range[c ? "animate" : "css"]({
                                width: r - t + "%"
                            }, {
                                queue: !1,
                                duration: a.animate
                            })) : (0 === o && l.range.stop(1, 1)[c ? "animate" : "css"]({
                                bottom: r + "%"
                            }, a.animate), 1 === o && l.range[c ? "animate" : "css"]({
                                height: r - t + "%"
                            }, {
                                queue: !1,
                                duration: a.animate
                            }))), t = r
                        })) : (o = this.value(), n = this._valueMin(), i = this._valueMax(), r = i !== n ? (o - n) / (i - n) * 100 : 0, u["horizontal" === this.orientation ? "left" : "bottom"] = r + "%", this.handle.stop(1, 1)[c ? "animate" : "css"](u, a.animate), "min" === s && "horizontal" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                            width: r + "%"
                        }, a.animate), "max" === s && "horizontal" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                            width: 100 - r + "%"
                        }, a.animate), "min" === s && "vertical" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                            height: r + "%"
                        }, a.animate), "max" === s && "vertical" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                            height: 100 - r + "%"
                        }, a.animate))
                    },
                    _handleEvents: {
                        keydown: function(t) {
                            var r, o, n, i = e(t.target).data("ui-slider-handle-index");
                            switch (t.keyCode) {
                                case e.ui.keyCode.HOME:
                                case e.ui.keyCode.END:
                                case e.ui.keyCode.PAGE_UP:
                                case e.ui.keyCode.PAGE_DOWN:
                                case e.ui.keyCode.UP:
                                case e.ui.keyCode.RIGHT:
                                case e.ui.keyCode.DOWN:
                                case e.ui.keyCode.LEFT:
                                    if (t.preventDefault(), !this._keySliding && (this._keySliding = !0, this._addClass(e(t.target), null, "ui-state-active"), !1 === this._start(t, i))) return
                            }
                            switch (n = this.options.step, r = o = this._hasMultipleValues() ? this.values(i) : this.value(), t.keyCode) {
                                case e.ui.keyCode.HOME:
                                    o = this._valueMin();
                                    break;
                                case e.ui.keyCode.END:
                                    o = this._valueMax();
                                    break;
                                case e.ui.keyCode.PAGE_UP:
                                    o = this._trimAlignValue(r + (this._valueMax() - this._valueMin()) / this.numPages);
                                    break;
                                case e.ui.keyCode.PAGE_DOWN:
                                    o = this._trimAlignValue(r - (this._valueMax() - this._valueMin()) / this.numPages);
                                    break;
                                case e.ui.keyCode.UP:
                                case e.ui.keyCode.RIGHT:
                                    if (r === this._valueMax()) return;
                                    o = this._trimAlignValue(r + n);
                                    break;
                                case e.ui.keyCode.DOWN:
                                case e.ui.keyCode.LEFT:
                                    if (r === this._valueMin()) return;
                                    o = this._trimAlignValue(r - n)
                            }
                            this._slide(t, i, o)
                        },
                        keyup: function(t) {
                            var r = e(t.target).data("ui-slider-handle-index");
                            this._keySliding && (this._keySliding = !1, this._stop(t, r), this._change(t, r), this._removeClass(e(t.target), null, "ui-state-active"))
                        }
                    }
                })
            }) ? o.apply(t, n) : o) || (e.exports = i)
        },
        74941: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => h
            });
            const o = function() {
                this.__data__ = [], this.size = 0
            };
            var n = r(52373);
            const i = function(e, t) {
                for (var r = e.length; r--;)
                    if ((0, n.default)(e[r][0], t)) return r;
                return -1
            };
            var s = Array.prototype.splice;
            const a = function(e) {
                var t = this.__data__,
                    r = i(t, e);
                return !(r < 0) && (r == t.length - 1 ? t.pop() : s.call(t, r, 1), --this.size, !0)
            };
            const l = function(e) {
                var t = this.__data__,
                    r = i(t, e);
                return r < 0 ? void 0 : t[r][1]
            };
            const c = function(e) {
                return i(this.__data__, e) > -1
            };
            const u = function(e, t) {
                var r = this.__data__,
                    o = i(r, e);
                return o < 0 ? (++this.size, r.push([e, t])) : r[o][1] = t, this
            };

            function d(e) {
                var t = -1,
                    r = null == e ? 0 : e.length;
                for (this.clear(); ++t < r;) {
                    var o = e[t];
                    this.set(o[0], o[1])
                }
            }
            d.prototype.clear = o, d.prototype.delete = a, d.prototype.get = l, d.prototype.has = c, d.prototype.set = u;
            const h = d
        },
        96686: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(20570),
                n = r(56169);
            const i = (0, o.default)(n.default, "Map")
        },
        22990: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => C
            });
            const o = (0, r(20570).default)(Object, "create");
            const n = function() {
                this.__data__ = o ? o(null) : {}, this.size = 0
            };
            const i = function(e) {
                var t = this.has(e) && delete this.__data__[e];
                return this.size -= t ? 1 : 0, t
            };
            var s = Object.prototype.hasOwnProperty;
            const a = function(e) {
                var t = this.__data__;
                if (o) {
                    var r = t[e];
                    return "__lodash_hash_undefined__" === r ? void 0 : r
                }
                return s.call(t, e) ? t[e] : void 0
            };
            var l = Object.prototype.hasOwnProperty;
            const c = function(e) {
                var t = this.__data__;
                return o ? void 0 !== t[e] : l.call(t, e)
            };
            const u = function(e, t) {
                var r = this.__data__;
                return this.size += this.has(e) ? 0 : 1, r[e] = o && void 0 === t ? "__lodash_hash_undefined__" : t, this
            };

            function d(e) {
                var t = -1,
                    r = null == e ? 0 : e.length;
                for (this.clear(); ++t < r;) {
                    var o = e[t];
                    this.set(o[0], o[1])
                }
            }
            d.prototype.clear = n, d.prototype.delete = i, d.prototype.get = a, d.prototype.has = c, d.prototype.set = u;
            const h = d;
            var p = r(74941),
                f = r(96686);
            const g = function() {
                this.size = 0, this.__data__ = {
                    hash: new h,
                    map: new(f.default || p.default),
                    string: new h
                }
            };
            const m = function(e) {
                var t = typeof e;
                return "string" == t || "number" == t || "symbol" == t || "boolean" == t ? "__proto__" !== e : null === e
            };
            const _ = function(e, t) {
                var r = e.__data__;
                return m(t) ? r["string" == typeof t ? "string" : "hash"] : r.map
            };
            const v = function(e) {
                var t = _(this, e).delete(e);
                return this.size -= t ? 1 : 0, t
            };
            const b = function(e) {
                return _(this, e).get(e)
            };
            const y = function(e) {
                return _(this, e).has(e)
            };
            const w = function(e, t) {
                var r = _(this, e),
                    o = r.size;
                return r.set(e, t), this.size += r.size == o ? 0 : 1, this
            };

            function S(e) {
                var t = -1,
                    r = null == e ? 0 : e.length;
                for (this.clear(); ++t < r;) {
                    var o = e[t];
                    this.set(o[0], o[1])
                }
            }
            S.prototype.clear = g, S.prototype.delete = v, S.prototype.get = b, S.prototype.has = y, S.prototype.set = w;
            const C = S
        },
        55615: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => h
            });
            var o = r(74941);
            const n = function() {
                this.__data__ = new o.default, this.size = 0
            };
            const i = function(e) {
                var t = this.__data__,
                    r = t.delete(e);
                return this.size = t.size, r
            };
            const s = function(e) {
                return this.__data__.get(e)
            };
            const a = function(e) {
                return this.__data__.has(e)
            };
            var l = r(96686),
                c = r(22990);
            const u = function(e, t) {
                var r = this.__data__;
                if (r instanceof o.default) {
                    var n = r.__data__;
                    if (!l.default || n.length < 199) return n.push([e, t]), this.size = ++r.size, this;
                    r = this.__data__ = new c.default(n)
                }
                return r.set(e, t), this.size = r.size, this
            };

            function d(e) {
                var t = this.__data__ = new o.default(e);
                this.size = t.size
            }
            d.prototype.clear = n, d.prototype.delete = i, d.prototype.get = s, d.prototype.has = a, d.prototype.set = u;
            const h = d
        },
        5876: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = r(56169).default.Symbol
        },
        51456: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = r(56169).default.Uint8Array
        },
        71624: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => u
            });
            var o = r(47754),
                n = r(56986),
                i = r(39350),
                s = r(29710),
                a = r(93564),
                l = r(40760),
                c = Object.prototype.hasOwnProperty;
            const u = function(e, t) {
                var r = (0, i.default)(e),
                    u = !r && (0, n.default)(e),
                    d = !r && !u && (0, s.default)(e),
                    h = !r && !u && !d && (0, l.default)(e),
                    p = r || u || d || h,
                    f = p ? (0, o.default)(e.length, String) : [],
                    g = f.length;
                for (var m in e) !t && !c.call(e, m) || p && ("length" == m || d && ("offset" == m || "parent" == m) || h && ("buffer" == m || "byteLength" == m || "byteOffset" == m) || (0, a.default)(m, g)) || f.push(m);
                return f
            }
        },
        21059: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e, t) {
                for (var r = -1, o = t.length, n = e.length; ++r < o;) e[n + r] = t[r];
                return e
            }
        },
        47701: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => s
            });
            var o = r(20192),
                n = r(52373),
                i = Object.prototype.hasOwnProperty;
            const s = function(e, t, r) {
                var s = e[t];
                i.call(e, t) && (0, n.default)(s, r) && (void 0 !== r || t in e) || (0, o.default)(e, t, r)
            }
        },
        20192: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = r(14608);
            const n = function(e, t, r) {
                "__proto__" == t && o.default ? (0, o.default)(e, t, {
                    configurable: !0,
                    enumerable: !0,
                    value: r,
                    writable: !0
                }) : e[t] = r
            }
        },
        22413: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => H
            });
            var o = r(55615);
            const n = function(e, t) {
                for (var r = -1, o = null == e ? 0 : e.length; ++r < o && !1 !== t(e[r], r, e););
                return e
            };
            var i = r(47701),
                s = r(52457),
                a = r(15606);
            const l = function(e, t) {
                return e && (0, s.default)(t, (0, a.default)(t), e)
            };
            var c = r(54673);
            const u = function(e, t) {
                return e && (0, s.default)(t, (0, c.default)(t), e)
            };
            var d = r(42896),
                h = r(65935),
                p = r(11807);
            const f = function(e, t) {
                return (0, s.default)(e, (0, p.default)(e), t)
            };
            var g = r(79213);
            const m = function(e, t) {
                return (0, s.default)(e, (0, g.default)(e), t)
            };
            var _ = r(72975),
                v = r(71677),
                b = r(47262),
                y = Object.prototype.hasOwnProperty;
            const w = function(e) {
                var t = e.length,
                    r = new e.constructor(t);
                return t && "string" == typeof e[0] && y.call(e, "index") && (r.index = e.index, r.input = e.input), r
            };
            var S = r(87901);
            const C = function(e, t) {
                var r = t ? (0, S.default)(e.buffer) : e.buffer;
                return new e.constructor(r, e.byteOffset, e.byteLength)
            };
            var k = /\w*$/;
            const E = function(e) {
                var t = new e.constructor(e.source, k.exec(e));
                return t.lastIndex = e.lastIndex, t
            };
            var x = r(5876),
                T = x.default ? x.default.prototype : void 0,
                A = T ? T.valueOf : void 0;
            const M = function(e) {
                return A ? Object(A.call(e)) : {}
            };
            var L = r(15346);
            const P = function(e, t, r) {
                var o = e.constructor;
                switch (t) {
                    case "[object ArrayBuffer]":
                        return (0, S.default)(e);
                    case "[object Boolean]":
                    case "[object Date]":
                        return new o(+e);
                    case "[object DataView]":
                        return C(e, r);
                    case "[object Float32Array]":
                    case "[object Float64Array]":
                    case "[object Int8Array]":
                    case "[object Int16Array]":
                    case "[object Int32Array]":
                    case "[object Uint8Array]":
                    case "[object Uint8ClampedArray]":
                    case "[object Uint16Array]":
                    case "[object Uint32Array]":
                        return (0, L.default)(e, r);
                    case "[object Map]":
                        return new o;
                    case "[object Number]":
                    case "[object String]":
                        return new o(e);
                    case "[object RegExp]":
                        return E(e);
                    case "[object Set]":
                        return new o;
                    case "[object Symbol]":
                        return M(e)
                }
            };
            var F = r(82015),
                I = r(39350),
                D = r(29710),
                O = r(23195);
            const R = function(e) {
                return (0, O.default)(e) && "[object Map]" == (0, b.default)(e)
            };
            var B = r(4827),
                N = r(79730),
                $ = N.default && N.default.isMap;
            const j = $ ? (0, B.default)($) : R;
            var W = r(89122);
            const V = function(e) {
                return (0, O.default)(e) && "[object Set]" == (0, b.default)(e)
            };
            var U = N.default && N.default.isSet;
            const q = U ? (0, B.default)(U) : V;
            var z = {};
            z["[object Arguments]"] = z["[object Array]"] = z["[object ArrayBuffer]"] = z["[object DataView]"] = z["[object Boolean]"] = z["[object Date]"] = z["[object Float32Array]"] = z["[object Float64Array]"] = z["[object Int8Array]"] = z["[object Int16Array]"] = z["[object Int32Array]"] = z["[object Map]"] = z["[object Number]"] = z["[object Object]"] = z["[object RegExp]"] = z["[object Set]"] = z["[object String]"] = z["[object Symbol]"] = z["[object Uint8Array]"] = z["[object Uint8ClampedArray]"] = z["[object Uint16Array]"] = z["[object Uint32Array]"] = !0, z["[object Error]"] = z["[object Function]"] = z["[object WeakMap]"] = !1;
            const H = function e(t, r, s, c, p, g) {
                var y, S = 1 & r,
                    C = 2 & r,
                    k = 4 & r;
                if (s && (y = p ? s(t, c, p, g) : s(t)), void 0 !== y) return y;
                if (!(0, W.default)(t)) return t;
                var E = (0, I.default)(t);
                if (E) {
                    if (y = w(t), !S) return (0, h.default)(t, y)
                } else {
                    var x = (0, b.default)(t),
                        T = "[object Function]" == x || "[object GeneratorFunction]" == x;
                    if ((0, D.default)(t)) return (0, d.default)(t, S);
                    if ("[object Object]" == x || "[object Arguments]" == x || T && !p) {
                        if (y = C || T ? {} : (0, F.default)(t), !S) return C ? m(t, u(y, t)) : f(t, l(y, t))
                    } else {
                        if (!z[x]) return p ? t : {};
                        y = P(t, x, S)
                    }
                }
                g || (g = new o.default);
                var A = g.get(t);
                if (A) return A;
                g.set(t, y), q(t) ? t.forEach((function(o) {
                    y.add(e(o, r, s, o, t, g))
                })) : j(t) && t.forEach((function(o, n) {
                    y.set(n, e(o, r, s, n, t, g))
                }));
                var M = k ? C ? v.default : _.default : C ? keysIn : a.default,
                    L = E ? void 0 : M(t);
                return n(L || t, (function(o, n) {
                    L && (o = t[n = o]), (0, i.default)(y, n, e(o, r, s, n, t, g))
                })), y
            }
        },
        72982: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(21059),
                n = r(39350);
            const i = function(e, t, r) {
                var i = t(e);
                return (0, n.default)(e) ? i : (0, o.default)(i, r(e))
            }
        },
        26818: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => h
            });
            var o = r(5876),
                n = Object.prototype,
                i = n.hasOwnProperty,
                s = n.toString,
                a = o.default ? o.default.toStringTag : void 0;
            const l = function(e) {
                var t = i.call(e, a),
                    r = e[a];
                try {
                    e[a] = void 0;
                    var o = !0
                } catch (e) {}
                var n = s.call(e);
                return o && (t ? e[a] = r : delete e[a]), n
            };
            var c = Object.prototype.toString;
            const u = function(e) {
                return c.call(e)
            };
            var d = o.default ? o.default.toStringTag : void 0;
            const h = function(e) {
                return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : d && d in Object(e) ? l(e) : u(e)
            }
        },
        43277: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => P
            });
            var o = r(55615),
                n = r(22990);
            const i = function(e) {
                return this.__data__.set(e, "__lodash_hash_undefined__"), this
            };
            const s = function(e) {
                return this.__data__.has(e)
            };

            function a(e) {
                var t = -1,
                    r = null == e ? 0 : e.length;
                for (this.__data__ = new n.default; ++t < r;) this.add(e[t])
            }
            a.prototype.add = a.prototype.push = i, a.prototype.has = s;
            const l = a;
            const c = function(e, t) {
                for (var r = -1, o = null == e ? 0 : e.length; ++r < o;)
                    if (t(e[r], r, e)) return !0;
                return !1
            };
            const u = function(e, t) {
                return e.has(t)
            };
            const d = function(e, t, r, o, n, i) {
                var s = 1 & r,
                    a = e.length,
                    d = t.length;
                if (a != d && !(s && d > a)) return !1;
                var h = i.get(e);
                if (h && i.get(t)) return h == t;
                var p = -1,
                    f = !0,
                    g = 2 & r ? new l : void 0;
                for (i.set(e, t), i.set(t, e); ++p < a;) {
                    var m = e[p],
                        _ = t[p];
                    if (o) var v = s ? o(_, m, p, t, e, i) : o(m, _, p, e, t, i);
                    if (void 0 !== v) {
                        if (v) continue;
                        f = !1;
                        break
                    }
                    if (g) {
                        if (!c(t, (function(e, t) {
                                if (!u(g, t) && (m === e || n(m, e, r, o, i))) return g.push(t)
                            }))) {
                            f = !1;
                            break
                        }
                    } else if (m !== _ && !n(m, _, r, o, i)) {
                        f = !1;
                        break
                    }
                }
                return i.delete(e), i.delete(t), f
            };
            var h = r(5876),
                p = r(51456),
                f = r(52373);
            const g = function(e) {
                var t = -1,
                    r = Array(e.size);
                return e.forEach((function(e, o) {
                    r[++t] = [o, e]
                })), r
            };
            const m = function(e) {
                var t = -1,
                    r = Array(e.size);
                return e.forEach((function(e) {
                    r[++t] = e
                })), r
            };
            var _ = h.default ? h.default.prototype : void 0,
                v = _ ? _.valueOf : void 0;
            const b = function(e, t, r, o, n, i, s) {
                switch (r) {
                    case "[object DataView]":
                        if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1;
                        e = e.buffer, t = t.buffer;
                    case "[object ArrayBuffer]":
                        return !(e.byteLength != t.byteLength || !i(new p.default(e), new p.default(t)));
                    case "[object Boolean]":
                    case "[object Date]":
                    case "[object Number]":
                        return (0, f.default)(+e, +t);
                    case "[object Error]":
                        return e.name == t.name && e.message == t.message;
                    case "[object RegExp]":
                    case "[object String]":
                        return e == t + "";
                    case "[object Map]":
                        var a = g;
                    case "[object Set]":
                        var l = 1 & o;
                        if (a || (a = m), e.size != t.size && !l) return !1;
                        var c = s.get(e);
                        if (c) return c == t;
                        o |= 2, s.set(e, t);
                        var u = d(a(e), a(t), o, n, i, s);
                        return s.delete(e), u;
                    case "[object Symbol]":
                        if (v) return v.call(e) == v.call(t)
                }
                return !1
            };
            var y = r(72975),
                w = Object.prototype.hasOwnProperty;
            const S = function(e, t, r, o, n, i) {
                var s = 1 & r,
                    a = (0, y.default)(e),
                    l = a.length;
                if (l != (0, y.default)(t).length && !s) return !1;
                for (var c = l; c--;) {
                    var u = a[c];
                    if (!(s ? u in t : w.call(t, u))) return !1
                }
                var d = i.get(e);
                if (d && i.get(t)) return d == t;
                var h = !0;
                i.set(e, t), i.set(t, e);
                for (var p = s; ++c < l;) {
                    var f = e[u = a[c]],
                        g = t[u];
                    if (o) var m = s ? o(g, f, u, t, e, i) : o(f, g, u, e, t, i);
                    if (!(void 0 === m ? f === g || n(f, g, r, o, i) : m)) {
                        h = !1;
                        break
                    }
                    p || (p = "constructor" == u)
                }
                if (h && !p) {
                    var _ = e.constructor,
                        v = t.constructor;
                    _ == v || !("constructor" in e) || !("constructor" in t) || "function" == typeof _ && _ instanceof _ && "function" == typeof v && v instanceof v || (h = !1)
                }
                return i.delete(e), i.delete(t), h
            };
            var C = r(47262),
                k = r(39350),
                E = r(29710),
                x = r(40760),
                T = "[object Object]",
                A = Object.prototype.hasOwnProperty;
            const M = function(e, t, r, n, i, s) {
                var a = (0, k.default)(e),
                    l = (0, k.default)(t),
                    c = a ? "[object Array]" : (0, C.default)(e),
                    u = l ? "[object Array]" : (0, C.default)(t),
                    h = (c = "[object Arguments]" == c ? T : c) == T,
                    p = (u = "[object Arguments]" == u ? T : u) == T,
                    f = c == u;
                if (f && (0, E.default)(e)) {
                    if (!(0, E.default)(t)) return !1;
                    a = !0, h = !1
                }
                if (f && !h) return s || (s = new o.default), a || (0, x.default)(e) ? d(e, t, r, n, i, s) : b(e, t, c, r, n, i, s);
                if (!(1 & r)) {
                    var g = h && A.call(e, "__wrapped__"),
                        m = p && A.call(t, "__wrapped__");
                    if (g || m) {
                        var _ = g ? e.value() : e,
                            v = m ? t.value() : t;
                        return s || (s = new o.default), i(_, v, r, n, s)
                    }
                }
                return !!f && (s || (s = new o.default), S(e, t, r, n, i, s))
            };
            var L = r(23195);
            const P = function e(t, r, o, n, i) {
                return t === r || (null == t || null == r || !(0, L.default)(t) && !(0, L.default)(r) ? t != t && r != r : M(t, r, o, n, e, i))
            }
        },
        47754: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e, t) {
                for (var r = -1, o = Array(e); ++r < e;) o[r] = t(r);
                return o
            }
        },
        4827: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e) {
                return function(t) {
                    return e(t)
                }
            }
        },
        87901: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = r(51456);
            const n = function(e) {
                var t = new e.constructor(e.byteLength);
                return new o.default(t).set(new o.default(e)), t
            }
        },
        42896: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => l
            });
            var o = r(56169);
            e = r.hmd(e);
            var n = "object" == typeof exports && exports && !exports.nodeType && exports,
                i = n && e && !e.nodeType && e,
                s = i && i.exports === n ? o.default.Buffer : void 0,
                a = s ? s.allocUnsafe : void 0;
            const l = function(e, t) {
                if (t) return e.slice();
                var r = e.length,
                    o = a ? a(r) : new e.constructor(r);
                return e.copy(o), o
            }
        },
        15346: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = r(87901);
            const n = function(e, t) {
                var r = t ? (0, o.default)(e.buffer) : e.buffer;
                return new e.constructor(r, e.byteOffset, e.length)
            }
        },
        65935: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e, t) {
                var r = -1,
                    o = e.length;
                for (t || (t = Array(o)); ++r < o;) t[r] = e[r];
                return t
            }
        },
        52457: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(47701),
                n = r(20192);
            const i = function(e, t, r, i) {
                var s = !r;
                r || (r = {});
                for (var a = -1, l = t.length; ++a < l;) {
                    var c = t[a],
                        u = i ? i(r[c], e[c], c, r, e) : void 0;
                    void 0 === u && (u = e[c]), s ? (0, n.default)(r, c, u) : (0, o.default)(r, c, u)
                }
                return r
            }
        },
        14608: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = r(20570);
            const n = function() {
                try {
                    var e = (0, o.default)(Object, "defineProperty");
                    return e({}, "", {}), e
                } catch (e) {}
            }()
        },
        48277: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = "object" == typeof r.g && r.g && r.g.Object === Object && r.g
        },
        72975: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => s
            });
            var o = r(72982),
                n = r(11807),
                i = r(15606);
            const s = function(e) {
                return (0, o.default)(e, i.default, n.default)
            }
        },
        71677: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => s
            });
            var o = r(72982),
                n = r(79213),
                i = r(54673);
            const s = function(e) {
                return (0, o.default)(e, i.default, n.default)
            }
        },
        20570: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => v
            });
            var o = r(25069);
            const n = r(56169).default["__core-js_shared__"];
            var i, s = (i = /[^.]+$/.exec(n && n.keys && n.keys.IE_PROTO || "")) ? "Symbol(src)_1." + i : "";
            const a = function(e) {
                return !!s && s in e
            };
            var l = r(89122),
                c = r(48723),
                u = /^\[object .+?Constructor\]$/,
                d = Function.prototype,
                h = Object.prototype,
                p = d.toString,
                f = h.hasOwnProperty,
                g = RegExp("^" + p.call(f).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
            const m = function(e) {
                return !(!(0, l.default)(e) || a(e)) && ((0, o.default)(e) ? g : u).test((0, c.default)(e))
            };
            const _ = function(e, t) {
                return null == e ? void 0 : e[t]
            };
            const v = function(e, t) {
                var r = _(e, t);
                return m(r) ? r : void 0
            }
        },
        67290: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = (0, r(4012).default)(Object.getPrototypeOf, Object)
        },
        11807: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => a
            });
            const o = function(e, t) {
                for (var r = -1, o = null == e ? 0 : e.length, n = 0, i = []; ++r < o;) {
                    var s = e[r];
                    t(s, r, e) && (i[n++] = s)
                }
                return i
            };
            var n = r(39756),
                i = Object.prototype.propertyIsEnumerable,
                s = Object.getOwnPropertySymbols;
            const a = s ? function(e) {
                return null == e ? [] : (e = Object(e), o(s(e), (function(t) {
                    return i.call(e, t)
                })))
            } : n.default
        },
        79213: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => a
            });
            var o = r(21059),
                n = r(67290),
                i = r(11807),
                s = r(39756);
            const a = Object.getOwnPropertySymbols ? function(e) {
                for (var t = []; e;)(0, o.default)(t, (0, i.default)(e)), e = (0, n.default)(e);
                return t
            } : s.default
        },
        47262: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => v
            });
            var o = r(20570),
                n = r(56169);
            const i = (0, o.default)(n.default, "DataView");
            var s = r(96686);
            const a = (0, o.default)(n.default, "Promise");
            const l = (0, o.default)(n.default, "Set");
            const c = (0, o.default)(n.default, "WeakMap");
            var u = r(26818),
                d = r(48723),
                h = (0, d.default)(i),
                p = (0, d.default)(s.default),
                f = (0, d.default)(a),
                g = (0, d.default)(l),
                m = (0, d.default)(c),
                _ = u.default;
            (i && "[object DataView]" != _(new i(new ArrayBuffer(1))) || s.default && "[object Map]" != _(new s.default) || a && "[object Promise]" != _(a.resolve()) || l && "[object Set]" != _(new l) || c && "[object WeakMap]" != _(new c)) && (_ = function(e) {
                var t = (0, u.default)(e),
                    r = "[object Object]" == t ? e.constructor : void 0,
                    o = r ? (0, d.default)(r) : "";
                if (o) switch (o) {
                    case h:
                        return "[object DataView]";
                    case p:
                        return "[object Map]";
                    case f:
                        return "[object Promise]";
                    case g:
                        return "[object Set]";
                    case m:
                        return "[object WeakMap]"
                }
                return t
            });
            const v = _
        },
        82015: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => l
            });
            var o = r(89122),
                n = Object.create;
            const i = function() {
                function e() {}
                return function(t) {
                    if (!(0, o.default)(t)) return {};
                    if (n) return n(t);
                    e.prototype = t;
                    var r = new e;
                    return e.prototype = void 0, r
                }
            }();
            var s = r(67290),
                a = r(9794);
            const l = function(e) {
                return "function" != typeof e.constructor || (0, a.default)(e) ? {} : i((0, s.default)(e))
            }
        },
        93564: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = /^(?:0|[1-9]\d*)$/;
            const n = function(e, t) {
                var r = typeof e;
                return !!(t = null == t ? 9007199254740991 : t) && ("number" == r || "symbol" != r && o.test(e)) && e > -1 && e % 1 == 0 && e < t
            }
        },
        9794: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = Object.prototype;
            const n = function(e) {
                var t = e && e.constructor;
                return e === ("function" == typeof t && t.prototype || o)
            }
        },
        79730: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => a
            });
            var o = r(48277);
            e = r.hmd(e);
            var n = "object" == typeof exports && exports && !exports.nodeType && exports,
                i = n && e && !e.nodeType && e,
                s = i && i.exports === n && o.default.process;
            const a = function() {
                try {
                    var e = i && i.require && i.require("util").types;
                    return e || s && s.binding && s.binding("util")
                } catch (e) {}
            }()
        },
        4012: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e, t) {
                return function(r) {
                    return e(t(r))
                }
            }
        },
        56169: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(48277),
                n = "object" == typeof self && self && self.Object === Object && self;
            const i = o.default || n || Function("return this")()
        },
        48723: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = Function.prototype.toString;
            const n = function(e) {
                if (null != e) {
                    try {
                        return o.call(e)
                    } catch (e) {}
                    try {
                        return e + ""
                    } catch (e) {}
                }
                return ""
            }
        },
        16152: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => c
            });
            var o = r(89122),
                n = r(56169);
            const i = function() {
                return n.default.Date.now()
            };
            var s = r(47422),
                a = Math.max,
                l = Math.min;
            const c = function(e, t, r) {
                var n, c, u, d, h, p, f = 0,
                    g = !1,
                    m = !1,
                    _ = !0;
                if ("function" != typeof e) throw new TypeError("Expected a function");

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

                function b(e) {
                    return f = e, h = setTimeout(w, t), g ? v(e) : d
                }

                function y(e) {
                    var r = e - p;
                    return void 0 === p || r >= t || r < 0 || m && e - f >= u
                }

                function w() {
                    var e = i();
                    if (y(e)) return S(e);
                    h = setTimeout(w, function(e) {
                        var r = t - (e - p);
                        return m ? l(r, u - (e - f)) : r
                    }(e))
                }

                function S(e) {
                    return h = void 0, _ && n ? v(e) : (n = c = void 0, d)
                }

                function C() {
                    var e = i(),
                        r = y(e);
                    if (n = arguments, c = this, p = e, r) {
                        if (void 0 === h) return b(p);
                        if (m) return clearTimeout(h), h = setTimeout(w, t), v(p)
                    }
                    return void 0 === h && (h = setTimeout(w, t)), d
                }
                return t = (0, s.default)(t) || 0, (0, o.default)(r) && (g = !!r.leading, u = (m = "maxWait" in r) ? a((0, s.default)(r.maxWait) || 0, t) : u, _ = "trailing" in r ? !!r.trailing : _), C.cancel = function() {
                    void 0 !== h && clearTimeout(h), f = 0, n = p = c = h = void 0
                }, C.flush = function() {
                    return void 0 === h ? d : S(i())
                }, C
            }
        },
        52373: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e, t) {
                return e === t || e != e && t != t
            }
        },
        56986: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => c
            });
            var o = r(26818),
                n = r(23195);
            const i = function(e) {
                return (0, n.default)(e) && "[object Arguments]" == (0, o.default)(e)
            };
            var s = Object.prototype,
                a = s.hasOwnProperty,
                l = s.propertyIsEnumerable;
            const c = i(function() {
                return arguments
            }()) ? i : function(e) {
                return (0, n.default)(e) && a.call(e, "callee") && !l.call(e, "callee")
            }
        },
        39350: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = Array.isArray
        },
        5710: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(25069),
                n = r(20523);
            const i = function(e) {
                return null != e && (0, n.default)(e.length) && !(0, o.default)(e)
            }
        },
        29710: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => l
            });
            var o = r(56169);
            const n = function() {
                return !1
            };
            e = r.hmd(e);
            var i = "object" == typeof exports && exports && !exports.nodeType && exports,
                s = i && e && !e.nodeType && e,
                a = s && s.exports === i ? o.default.Buffer : void 0;
            const l = (a ? a.isBuffer : void 0) || n
        },
        65741: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => n
            });
            var o = r(43277);
            const n = function(e, t) {
                return (0, o.default)(e, t)
            }
        },
        25069: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(26818),
                n = r(89122);
            const i = function(e) {
                if (!(0, n.default)(e)) return !1;
                var t = (0,
                    o.default)(e);
                return "[object Function]" == t || "[object GeneratorFunction]" == t || "[object AsyncFunction]" == t || "[object Proxy]" == t
            }
        },
        20523: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e) {
                return "number" == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991
            }
        },
        89122: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e) {
                var t = typeof e;
                return null != e && ("object" == t || "function" == t)
            }
        },
        23195: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function(e) {
                return null != e && "object" == typeof e
            }
        },
        97828: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(26818),
                n = r(23195);
            const i = function(e) {
                return "symbol" == typeof e || (0, n.default)(e) && "[object Symbol]" == (0, o.default)(e)
            }
        },
        40760: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => d
            });
            var o = r(26818),
                n = r(20523),
                i = r(23195),
                s = {};
            s["[object Float32Array]"] = s["[object Float64Array]"] = s["[object Int8Array]"] = s["[object Int16Array]"] = s["[object Int32Array]"] = s["[object Uint8Array]"] = s["[object Uint8ClampedArray]"] = s["[object Uint16Array]"] = s["[object Uint32Array]"] = !0, s["[object Arguments]"] = s["[object Array]"] = s["[object ArrayBuffer]"] = s["[object Boolean]"] = s["[object DataView]"] = s["[object Date]"] = s["[object Error]"] = s["[object Function]"] = s["[object Map]"] = s["[object Number]"] = s["[object Object]"] = s["[object RegExp]"] = s["[object Set]"] = s["[object String]"] = s["[object WeakMap]"] = !1;
            const a = function(e) {
                return (0, i.default)(e) && (0, n.default)(e.length) && !!s[(0, o.default)(e)]
            };
            var l = r(4827),
                c = r(79730),
                u = c.default && c.default.isTypedArray;
            const d = u ? (0, l.default)(u) : a
        },
        15606: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => c
            });
            var o = r(71624),
                n = r(9794);
            const i = (0, r(4012).default)(Object.keys, Object);
            var s = Object.prototype.hasOwnProperty;
            const a = function(e) {
                if (!(0, n.default)(e)) return i(e);
                var t = [];
                for (var r in Object(e)) s.call(e, r) && "constructor" != r && t.push(r);
                return t
            };
            var l = r(5710);
            const c = function(e) {
                return (0, l.default)(e) ? (0, o.default)(e) : a(e)
            }
        },
        54673: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => u
            });
            var o = r(71624),
                n = r(89122),
                i = r(9794);
            const s = function(e) {
                var t = [];
                if (null != e)
                    for (var r in Object(e)) t.push(r);
                return t
            };
            var a = Object.prototype.hasOwnProperty;
            const l = function(e) {
                if (!(0, n.default)(e)) return s(e);
                var t = (0, i.default)(e),
                    r = [];
                for (var o in e)("constructor" != o || !t && a.call(e, o)) && r.push(o);
                return r
            };
            var c = r(5710);
            const u = function(e) {
                return (0, c.default)(e) ? (0, o.default)(e, !0) : l(e)
            }
        },
        39756: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => o
            });
            const o = function() {
                return []
            }
        },
        58848: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => i
            });
            var o = r(16152),
                n = r(89122);
            const i = function(e, t, r) {
                var i = !0,
                    s = !0;
                if ("function" != typeof e) throw new TypeError("Expected a function");
                return (0, n.default)(r) && (i = "leading" in r ? !!r.leading : i, s = "trailing" in r ? !!r.trailing : s), (0, o.default)(e, t, {
                    leading: i,
                    maxWait: t,
                    trailing: s
                })
            }
        },
        47422: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => u
            });
            var o = r(89122),
                n = r(97828),
                i = /^\s+|\s+$/g,
                s = /^[-+]0x[0-9a-f]+$/i,
                a = /^0b[01]+$/i,
                l = /^0o[0-7]+$/i,
                c = parseInt;
            const u = function(e) {
                if ("number" == typeof e) return e;
                if ((0, n.default)(e)) return NaN;
                if ((0, o.default)(e)) {
                    var t = "function" == typeof e.valueOf ? e.valueOf() : e;
                    e = (0,
                        o.default)(t) ? t + "" : t
                }
                if ("string" != typeof e) return 0 === e ? e : +e;
                e = e.replace(i, "");
                var r = a.test(e);
                return r || l.test(e) ? c(e.slice(2), r ? 2 : 8) : s.test(e) ? NaN : +e
            }
        },
        96741: e => {
            e.exports = {
                container: "container-vMoQJXBo",
                top: "top-vMoQJXBo"
            }
        },
        87552: e => {
            e.exports = {
                wrap: "wrap-YTIWpbLa",
                list: "list-YTIWpbLa",
                item: "item-YTIWpbLa",
                selected: "selected-YTIWpbLa",
                bluishItem: "bluishItem-YTIWpbLa",
                noPadding: "noPadding-YTIWpbLa"
            }
        },
        78433: e => {
            e.exports = {
                list: "list-2R-eCARO",
                item: "item-2R-eCARO"
            }
        },
        85738: () => {},
        78031: () => {},
        1961: () => {},
        95387: () => {},
        90268: () => {},
        87262: () => {},
        69954: () => {},
        66551: () => {},
        29761: () => {},
        29206: () => {},
        74977: () => {},
        9906: () => {},
        30831: () => {},
        88e3: () => {},
        28741: () => {},
        24964: () => {},
        1886: () => {},
        46861: () => {},
        83472: () => {},
        43206: () => {},
        16638: () => {},
        97097: () => {},
        43755: () => {},
        33214: e => {
            e.exports = {
                loader: "loader-38qh0l_K",
                static: "static-38qh0l_K",
                item: "item-38qh0l_K",
                "tv-button-loader": "tv-button-loader-38qh0l_K",
                black: "black-38qh0l_K",
                white: "white-38qh0l_K",
                gray: "gray-38qh0l_K",
                primary: "primary-38qh0l_K",
                "loader-initial": "loader-initial-38qh0l_K",
                "loader-appear": "loader-appear-38qh0l_K"
            }
        },
        6920: e => {
            e.exports = {
                switcherWrapper: "switcherWrapper-ZOZ_o9xK",
                "size-small": "size-small-ZOZ_o9xK",
                "size-large": "size-large-ZOZ_o9xK",
                "intent-select": "intent-select-ZOZ_o9xK",
                switcherThumbWrapper: "switcherThumbWrapper-ZOZ_o9xK",
                input: "input-ZOZ_o9xK",
                switcherTrack: "switcherTrack-ZOZ_o9xK",
                "intent-default": "intent-default-ZOZ_o9xK",
                switcherThumb: "switcherThumb-ZOZ_o9xK",
                focus: "focus-ZOZ_o9xK"
            }
        },
        47325: e => {
            e.exports = {
                "css-value-copyright-transition-params": ".6s 0s cubic-bezier(.4, .01, .22, 1)",
                "css-value-copyright-transition-params-half-time": ".3s 0s cubic-bezier(.4, .01, .22, 1)",
                label: "label-39Xi8p6T",
                logoWrap: "logoWrap-39Xi8p6T",
                start: "start-39Xi8p6T",
                end: "end-39Xi8p6T",
                snap: "snap-39Xi8p6T",
                top: "top-39Xi8p6T",
                bottom: "bottom-39Xi8p6T",
                chartBottom: "chartBottom-39Xi8p6T",
                large: "large-39Xi8p6T"
            }
        },
        74025: () => {},
        6323: e => {
            e.exports = {
                wrap: "wrap-2k2kaUdi",
                input: "input-2k2kaUdi",
                box: "box-2k2kaUdi",
                hoverDot: "hoverDot-2k2kaUdi",
                red: "red-2k2kaUdi",
                blue: "blue-2k2kaUdi",
                green: "green-2k2kaUdi",
                orange: "orange-2k2kaUdi",
                purple: "purple-2k2kaUdi",
                cyan: "cyan-2k2kaUdi",
                pink: "pink-2k2kaUdi",
                large: "large-2k2kaUdi",
                pickerDot: "pickerDot-2k2kaUdi"
            }
        },
        42209: e => {
            e.exports = {
                wrapper: "wrapper-1yZn3-zj",
                selector: "selector-1yZn3-zj",
                arrowLeft: "arrowLeft-1yZn3-zj",
                colorSelectButton: "colorSelectButton-1yZn3-zj",
                popup: "popup-1yZn3-zj"
            }
        },
        38530: e => {
            e.exports = {
                modeTitle: "modeTitle-3iGYBWzh",
                modeTitleActive: "modeTitleActive-3iGYBWzh",
                switcherContainer: "switcherContainer-3iGYBWzh"
            }
        },
        11739: e => {
            e.exports = {
                "tv-spinner__container-rotate": "tv-spinner__container-rotate-19aXx8o_",
                "tv-spinner__left-spin": "tv-spinner__left-spin-19aXx8o_",
                "tv-spinner__right-spin": "tv-spinner__right-spin-19aXx8o_"
            }
        },
        52467: () => {},
        70459: () => {},
        4755: e => {
            e.exports = {
                controls: "controls-1qEQsRvz",
                autosizeLabel: "autosizeLabel-1qEQsRvz",
                crossSign: "crossSign-1qEQsRvz",
                autosizeControl: "autosizeControl-1qEQsRvz",
                widthControl: "widthControl-1qEQsRvz",
                heightControl: "heightControl-1qEQsRvz"
            }
        },
        70978: () => {},
        76914: () => {},
        10090: () => {},
        78746: e => {
            e.exports = {
                "common-tooltip": "common-tooltip-36YLR71G",
                "common-tooltip--hidden": "common-tooltip--hidden-36YLR71G",
                "common-tooltip--horizontal": "common-tooltip--horizontal-36YLR71G",
                "common-tooltip--farther": "common-tooltip--farther-36YLR71G",
                "common-tooltip--vertical": "common-tooltip--vertical-36YLR71G",
                "common-tooltip-farther": "common-tooltip-farther-36YLR71G",
                "common-tooltip--direction_normal": "common-tooltip--direction_normal-36YLR71G",
                "common-tooltip__body": "common-tooltip__body-36YLR71G",
                "common-tooltip__button-container": "common-tooltip__button-container-36YLR71G",
                "common-tooltip__body--no-buttons": "common-tooltip__body--no-buttons-36YLR71G",
                "common-tooltip__button": "common-tooltip__button-36YLR71G",
                "common-tooltip--direction_reversed": "common-tooltip--direction_reversed-36YLR71G",
                "common-tooltip__ear-holder": "common-tooltip__ear-holder-36YLR71G",
                "common-tooltip__ear-holder--below": "common-tooltip__ear-holder--below-36YLR71G",
                "common-tooltip__ear-holder--above": "common-tooltip__ear-holder--above-36YLR71G",
                "common-tooltip__ear-holder--before": "common-tooltip__ear-holder--before-36YLR71G",
                "common-tooltip__ear-holder--after": "common-tooltip__ear-holder--after-36YLR71G",
                "common-tooltip__body--with-hotkey": "common-tooltip__body--with-hotkey-36YLR71G",
                "common-tooltip__body--width_wide": "common-tooltip__body--width_wide-36YLR71G",
                "common-tooltip__body--width_narrow": "common-tooltip__body--width_narrow-36YLR71G",
                "common-tooltip__body--no-padding": "common-tooltip__body--no-padding-36YLR71G",
                "common-tooltip__hotkey-block": "common-tooltip__hotkey-block-36YLR71G",
                "common-tooltip__hotkey-block--divider": "common-tooltip__hotkey-block--divider-36YLR71G",
                "common-tooltip__hotkey-text": "common-tooltip__hotkey-text-36YLR71G",
                "common-tooltip__hotkey-button": "common-tooltip__hotkey-button-36YLR71G",
                "common-tooltip__plus-sign": "common-tooltip__plus-sign-36YLR71G"
            }
        },
        66517: e => {
            e.exports = {
                wrapper: "wrapper-2eb-SI2I",
                touch: "touch-2eb-SI2I"
            }
        },
        32455: e => {
            e.exports = {
                "tablet-normal-breakpoint": "screen and (max-width: 768px)",
                "small-height-breakpoint": "screen and (max-height: 360px)",
                "tablet-small-breakpoint": "screen and (max-width: 428px)"
            }
        },
        50879: () => {},
        75074: () => {},
        30160: e => {
            e.exports = {
                item: "item-f5BaKrKq",
                interactive: "interactive-f5BaKrKq",
                hovered: "hovered-f5BaKrKq",
                disabled: "disabled-f5BaKrKq",
                active: "active-f5BaKrKq",
                shortcut: "shortcut-f5BaKrKq",
                normal: "normal-f5BaKrKq",
                big: "big-f5BaKrKq",
                iconCell: "iconCell-f5BaKrKq",
                icon: "icon-f5BaKrKq",
                checkmark: "checkmark-f5BaKrKq",
                content: "content-f5BaKrKq",
                label: "label-f5BaKrKq",
                checked: "checked-f5BaKrKq",
                toolbox: "toolbox-f5BaKrKq",
                showToolboxOnHover: "showToolboxOnHover-f5BaKrKq",
                arrowIcon: "arrowIcon-f5BaKrKq",
                subMenu: "subMenu-f5BaKrKq",
                invisibleHotkey: "invisibleHotkey-f5BaKrKq"
            }
        },
        85848: e => {
            e.exports = {
                item: "item-1-SF84yU",
                emptyIcons: "emptyIcons-1-SF84yU",
                loading: "loading-1-SF84yU",
                disabled: "disabled-1-SF84yU",
                interactive: "interactive-1-SF84yU",
                hovered: "hovered-1-SF84yU",
                normal: "normal-1-SF84yU",
                big: "big-1-SF84yU",
                icon: "icon-1-SF84yU",
                label: "label-1-SF84yU",
                title: "title-1-SF84yU",
                nested: "nested-1-SF84yU",
                shortcut: "shortcut-1-SF84yU",
                remove: "remove-1-SF84yU"
            }
        },
        81885: e => {
            e.exports = {
                separator: "separator-LcIsiH9i"
            }
        },
        64526: e => {
            e.exports = {
                wrap: "wrap-164vy-kj",
                positionBottom: "positionBottom-164vy-kj",
                backdrop: "backdrop-164vy-kj",
                drawer: "drawer-164vy-kj",
                positionLeft: "positionLeft-164vy-kj"
            }
        },
        43953: e => {
            e.exports = {
                elementWrap: "elementWrap-EE_m_Lmj",
                itemsWrap: "itemsWrap-EE_m_Lmj",
                item: "item-EE_m_Lmj",
                active: "active-EE_m_Lmj",
                itemContent: "itemContent-EE_m_Lmj",
                dropdownItem: "dropdownItem-EE_m_Lmj",
                dropdownIcon: "dropdownIcon-EE_m_Lmj",
                dropdownListItem: "dropdownListItem-EE_m_Lmj"
            }
        },
        53363: (e, t, r) => {
            var o = r(55375),
                n = r(48994),
                i = r(62378),
                s = new Uint32Array([3432918353, 461845907]);

            function a(e, t) {
                return e << t | e >>> 32 - t
            }
            e.exports = function(e, t) {
                if (t = t ? 0 | t : 0, "string" == typeof e && (e = i(e)), !(e instanceof ArrayBuffer)) throw new TypeError("Expected key to be ArrayBuffer or string");
                var r = new Uint32Array([t]);
                return function(e, t) {
                        for (var r = e.byteLength / 4 | 0, n = new Uint32Array(e, 0, r), i = 0; i < r; i++) n[i] = o(n[i], s[0]), n[i] = a(n[i], 15), n[i] = o(n[i], s[1]), t[0] = t[0] ^ n[i], t[0] = a(t[0], 13), t[0] = o(t[0], 5) + 3864292196
                    }(e, r),
                    function(e, t) {
                        var r = e.byteLength / 4 | 0,
                            n = e.byteLength % 4,
                            i = 0,
                            l = new Uint8Array(e, 4 * r, n);
                        switch (n) {
                            case 3:
                                i ^= l[2] << 16;
                            case 2:
                                i ^= l[1] << 8;
                            case 1:
                                i ^= l[0] << 0, i = a(i = o(i, s[0]), 15), i = o(i, s[1]), t[0] = t[0] ^ i
                        }
                    }(e, r),
                    function(e, t) {
                        t[0] = t[0] ^ e.byteLength, t[0] = n(t[0])
                    }(e, r), r.buffer
            }
        },
        466: function(e, t) {
            var r, o, n, i;
            i = function(e) {
                var t = Object.prototype.toString,
                    r = Array.isArray || function(e) {
                        return "[object Array]" === t.call(e)
                    };

                function o(e) {
                    return "function" == typeof e
                }

                function n(e) {
                    return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
                }

                function i(e, t) {
                    return null != e && "object" == typeof e && t in e
                }
                var s = RegExp.prototype.test,
                    a = /\S/;

                function l(e) {
                    return ! function(e, t) {
                        return s.call(e, t)
                    }(a, e)
                }
                var c = {
                        "&": "&amp;",
                        "<": "&lt;",
                        ">": "&gt;",
                        '"': "&quot;",
                        "'": "&#39;",
                        "/": "&#x2F;",
                        "`": "&#x60;",
                        "=": "&#x3D;"
                    },
                    u = /\s*/,
                    d = /\s+/,
                    h = /\s*=/,
                    p = /\s*\}/,
                    f = /#|\^|\/|>|\{|&|=|!/;

                function g(e) {
                    this.string = e, this.tail = e, this.pos = 0
                }

                function m(e, t) {
                    this.view = e, this.cache = {
                        ".": this.view
                    }, this.parent = t
                }

                function _() {
                    this.cache = {}
                }
                g.prototype.eos = function() {
                    return "" === this.tail
                }, g.prototype.scan = function(e) {
                    var t = this.tail.match(e);
                    if (!t || 0 !== t.index) return "";
                    var r = t[0];
                    return this.tail = this.tail.substring(r.length), this.pos += r.length, r
                }, g.prototype.scanUntil = function(e) {
                    var t, r = this.tail.search(e);
                    switch (r) {
                        case -1:
                            t = this.tail, this.tail = "";
                            break;
                        case 0:
                            t = "";
                            break;
                        default:
                            t = this.tail.substring(0, r), this.tail = this.tail.substring(r)
                    }
                    return this.pos += t.length, t
                }, m.prototype.push = function(e) {
                    return new m(e, this)
                }, m.prototype.lookup = function(e) {
                    var t, r = this.cache;
                    if (r.hasOwnProperty(e)) t = r[e];
                    else {
                        for (var n, s, a = this, l = !1; a;) {
                            if (e.indexOf(".") > 0)
                                for (t = a.view, n = e.split("."), s = 0; null != t && s < n.length;) s === n.length - 1 && (l = i(t, n[s])), t = t[n[s++]];
                            else t = a.view[e], l = i(a.view, e);
                            if (l) break;
                            a = a.parent
                        }
                        r[e] = t
                    }
                    return o(t) && (t = t.call(this.view)), t
                }, _.prototype.clearCache = function() {
                    this.cache = {}
                }, _.prototype.parse = function(t, o) {
                    var i = this.cache,
                        s = i[t];
                    return null == s && (s = i[t] = function(t, o) {
                        if (!t) return [];
                        var i, s, a, c = [],
                            m = [],
                            _ = [],
                            v = !1,
                            b = !1;

                        function y() {
                            if (v && !b)
                                for (; _.length;) delete m[_.pop()];
                            else _ = [];
                            v = !1, b = !1
                        }

                        function w(e) {
                            if ("string" == typeof e && (e = e.split(d, 2)), !r(e) || 2 !== e.length) throw new Error("Invalid tags: " + e);
                            i = new RegExp(n(e[0]) + "\\s*"), s = new RegExp("\\s*" + n(e[1])), a = new RegExp("\\s*" + n("}" + e[1]))
                        }
                        w(o || e.tags);
                        for (var S, C, k, E, x, T, A = new g(t); !A.eos();) {
                            if (S = A.pos, k = A.scanUntil(i))
                                for (var M = 0, L = k.length; M < L; ++M) l(E = k.charAt(M)) ? _.push(m.length) : b = !0, m.push(["text", E, S, S + 1]), S += 1, "\n" === E && y();
                            if (!A.scan(i)) break;
                            if (v = !0, C = A.scan(f) || "name", A.scan(u), "=" === C ? (k = A.scanUntil(h), A.scan(h), A.scanUntil(s)) : "{" === C ? (k = A.scanUntil(a), A.scan(p), A.scanUntil(s), C = "&") : k = A.scanUntil(s), !A.scan(s)) throw new Error("Unclosed tag at " + A.pos);
                            if (x = [C, k, S, A.pos], m.push(x), "#" === C || "^" === C) c.push(x);
                            else if ("/" === C) {
                                if (!(T = c.pop())) throw new Error('Unopened section "' + k + '" at ' + S);
                                if (T[1] !== k) throw new Error('Unclosed section "' + T[1] + '" at ' + S)
                            } else "name" === C || "{" === C || "&" === C ? b = !0 : "=" === C && w(k)
                        }
                        if (T = c.pop()) throw new Error('Unclosed section "' + T[1] + '" at ' + A.pos);
                        return function(e) {
                            for (var t, r = [], o = r, n = [], i = 0, s = e.length; i < s; ++i) switch ((t = e[i])[0]) {
                                case "#":
                                case "^":
                                    o.push(t), n.push(t), o = t[4] = [];
                                    break;
                                case "/":
                                    n.pop()[5] = t[2], o = n.length > 0 ? n[n.length - 1][4] : r;
                                    break;
                                default:
                                    o.push(t)
                            }
                            return r
                        }(function(e) {
                            for (var t, r, o = [], n = 0, i = e.length; n < i; ++n)(t = e[n]) && ("text" === t[0] && r && "text" === r[0] ? (r[1] += t[1], r[3] = t[3]) : (o.push(t), r = t));
                            return o
                        }(m))
                    }(t, o)), s
                }, _.prototype.render = function(e, t, r) {
                    var o = this.parse(e),
                        n = t instanceof m ? t : new m(t);
                    return this.renderTokens(o, n, r, e)
                }, _.prototype.renderTokens = function(e, t, r, o) {
                    for (var n, i, s, a = "", l = 0, c = e.length; l < c; ++l) s = void 0, "#" === (i = (n = e[l])[0]) ? s = this.renderSection(n, t, r, o) : "^" === i ? s = this.renderInverted(n, t, r, o) : ">" === i ? s = this.renderPartial(n, t, r, o) : "&" === i ? s = this.unescapedValue(n, t) : "name" === i ? s = this.escapedValue(n, t) : "text" === i && (s = this.rawValue(n)), void 0 !== s && (a += s);
                    return a
                }, _.prototype.renderSection = function(e, t, n, i) {
                    var s = this,
                        a = "",
                        l = t.lookup(e[1]);
                    if (l) {
                        if (r(l))
                            for (var c = 0, u = l.length; c < u; ++c) a += this.renderTokens(e[4], t.push(l[c]), n, i);
                        else if ("object" == typeof l || "string" == typeof l || "number" == typeof l) a += this.renderTokens(e[4], t.push(l), n, i);
                        else if (o(l)) {
                            if ("string" != typeof i) throw new Error("Cannot use higher-order sections without the original template");
                            null != (l = l.call(t.view, i.slice(e[3], e[5]), (function(e) {
                                return s.render(e, t, n)
                            }))) && (a += l)
                        } else a += this.renderTokens(e[4], t, n, i);
                        return a
                    }
                }, _.prototype.renderInverted = function(e, t, o, n) {
                    var i = t.lookup(e[1]);
                    if (!i || r(i) && 0 === i.length) return this.renderTokens(e[4], t, o, n)
                }, _.prototype.renderPartial = function(e, t, r) {
                    if (r) {
                        var n = o(r) ? r(e[1]) : r[e[1]];
                        return null != n ? this.renderTokens(this.parse(n), t, r, n) : void 0
                    }
                }, _.prototype.unescapedValue = function(e, t) {
                    var r = t.lookup(e[1]);
                    if (null != r) return r
                }, _.prototype.escapedValue = function(t, r) {
                    var o = r.lookup(t[1]);
                    if (null != o) return e.escape(o)
                }, _.prototype.rawValue = function(e) {
                    return e[1]
                }, e.name = "mustache.js", e.version = "2.2.1", e.tags = ["{{", "}}"];
                var v = new _;
                e.clearCache = function() {
                        return v.clearCache()
                    },
                    e.parse = function(e, t) {
                        return v.parse(e, t)
                    }, e.render = function(e, t, o) {
                        if ("string" != typeof e) throw new TypeError('Invalid template! Template should be a "string" but "' + (r(n = e) ? "array" : typeof n) + '" was given as the first argument for mustache#render(template, view, partials)');
                        var n;
                        return v.render(e, t, o)
                    }, e.to_html = function(t, r, n, i) {
                        var s = e.render(t, r, n);
                        if (!o(i)) return s;
                        i(s)
                    }, e.escape = function(e) {
                        return String(e).replace(/[&<>"'`=\/]/g, (function(e) {
                            return c[e]
                        }))
                    }, e.Scanner = g, e.Context = m, e.Writer = _
            }, t && "string" != typeof t.nodeName ? i(t) : (o = [t], void 0 === (n = "function" == typeof(r = i) ? r.apply(t, o) : r) || (e.exports = n))
        },
        46417: (e, t) => {
            "use strict";
            var r, o = !("undefined" == typeof window || !window.document || !window.document.createElement);

            function n() {
                if (r) return r;
                if (!o || !window.document.body) return "indeterminate";
                var e = window.document.createElement("div");
                return e.appendChild(document.createTextNode("ABCD")), e.dir = "rtl", e.style.fontSize = "14px", e.style.width = "4px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.overflow = "scroll", document.body.appendChild(e), r = "reverse", e.scrollLeft > 0 ? r = "default" : (e.scrollLeft = 1, 0 === e.scrollLeft && (r = "negative")), document.body.removeChild(e), r
            }
            t.detectScrollType = n, t.getNormalizedScrollLeft = function(e, t) {
                var r = e.scrollLeft;
                if ("rtl" !== t) return r;
                var o = n();
                if ("indeterminate" === o) return Number.NaN;
                switch (o) {
                    case "negative":
                        return e.scrollWidth - e.clientWidth + r;
                    case "reverse":
                        return e.scrollWidth - e.clientWidth - r
                }
                return r
            }, t.setNormalizedScrollLeft = function(e, t, r) {
                if ("rtl" === r) {
                    var o = n();
                    if ("indeterminate" !== o) switch (o) {
                        case "negative":
                            e.scrollLeft = e.clientWidth - e.scrollWidth + t;
                            break;
                        case "reverse":
                            e.scrollLeft = e.scrollWidth - e.clientWidth - t;
                            break;
                        default:
                            e.scrollLeft = t
                    }
                } else e.scrollLeft = t
            }
        },
        27418: e => {
            "use strict";
            var t = Object.getOwnPropertySymbols,
                r = Object.prototype.hasOwnProperty,
                o = Object.prototype.propertyIsEnumerable;

            function n(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 = {}, r = 0; r < 10; r++) t["_" + String.fromCharCode(r)] = r;
                    if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) {
                            return t[e]
                        })).join("")) return !1;
                    var o = {};
                    return "abcdefghijklmnopqrst".split("").forEach((function(e) {
                        o[e] = e
                    })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, o)).join("")
                } catch (e) {
                    return !1
                }
            }() ? Object.assign : function(e, i) {
                for (var s, a, l = n(e), c = 1; c < arguments.length; c++) {
                    for (var u in s = Object(arguments[c])) r.call(s, u) && (l[u] = s[u]);
                    if (t) {
                        a = t(s);
                        for (var d = 0; d < a.length; d++) o.call(s, a[d]) && (l[a[d]] = s[a[d]])
                    }
                }
                return l
            }
        },
        53293: (e, t, r) => {
            "use strict";
            r.d(t, {
                LIST_START: () => o,
                getTargetIndex: () => n
            });
            const o = Symbol();

            function n(e, t, r) {
                const n = void 0 === r ? void 0 !== t ? e.indexOf(t) : void 0 : r === o ? 0 : e.indexOf(r) + 1;
                return -1 !== n ? n : void 0
            }
        },
        27699: (e, t, r) => {
            "use strict";

            function o(e) {
                const {
                    id: t,
                    event: r,
                    channel: o,
                    filter: n
                } = e;
                return e => (o.on(r, r => {
                    const {
                        action: o,
                        emitter: i
                    } = JSON.parse(r);
                    i !== t && n(o) && e.dispatch({
                        ...o,
                        payload: { ...o.payload,
                            silent: !0
                        }
                    })
                }), e => i => {
                    const s = e(i);
                    return n(i) && (i.payload.silent || o.emit(r, JSON.stringify({
                        action: i,
                        emitter: t
                    }))), s
                })
            }
            r.d(t, {
                createCrossTabSyncMiddleware: () => o
            })
        },
        807: (e, t, r) => {
            "use strict";
            r.d(t, {
                ListColor: () => o,
                LIST_COLORS: () => d,
                isListColor: () => h,
                markMany: () => _,
                setup: () => v,
                reset: () => b,
                remove: () => y,
                rename: () => w,
                renameSeparator: () => S,
                shiftCommand: () => C,
                share: () => k,
                reducer: () => E,
                createCrossTabSyncMiddleware: () => x,
                getSymbolColor: () => T,
                getListByColor: () => A,
                getSymbolsByColor: () => M,
                getCommands: () => L,
                getTimestamp: () => P
            });
            var o, n = r(76403),
                i = r(16282),
                s = r(27699),
                a = r(44955),
                l = r(27505),
                c = r(53875),
                u = r(53293);
            ! function(e) {
                e.Red = "red", e.Blue = "blue", e.Green = "green", e.Orange = "orange", e.Purple = "purple", e.Cyan = "cyan", e.Pink = "pink"
            }(o || (o = {}));
            const d = [o.Red, o.Blue, o.Green, o.Orange, o.Purple, o.Cyan, o.Pink];

            function h(e) {
                return new Set(d).has(e)
            }
            const p = {
                lists: {
                    colors: [],
                    byColor: {},
                    bySymbol: {}
                },
                commands: [],
                timestamp: null
            };

            function f(e, t) {
                const {
                    lists: r
                } = e, o = r.byColor[t];
                o && 0 === o.symbols.length && (r.colors = r.colors.filter(e => e !== t))
            }

            function g(e) {
                return (0, c.isSeparatorItem)(e)
            }
            const m = (0, n.createSlice)({
                    name: "marked-lists",
                    initialState: p,
                    reducers: {
                        setup: (e, t) => {
                            const {
                                lists: r,
                                timestamp: o
                            } = t.payload, n = {
                                lists: {
                                    colors: [],
                                    byColor: {},
                                    bySymbol: {}
                                },
                                commands: [],
                                timestamp: null
                            };
                            n.timestamp = o;
                            for (const e of function(e, t) {
                                    return [...e].sort((e, r) => t.indexOf(e.color) - t.indexOf(r.color))
                                }(r, d)) {
                                const t = e.symbols.filter(t => void 0 === n.lists.bySymbol[t] && (g(t) || (n.lists.bySymbol[t] = e.color), !0));
                                n.lists.byColor[e.color] = {
                                    color: e.color,
                                    name: e.name,
                                    shared: e.shared,
                                    symbols: t
                                }, t.length > 0 && n.lists.colors.push(e.color)
                            }
                            return n
                        },
                        remove: (e, t) => {
                            const {
                                color: r,
                                symbols: o,
                                silent: n
                            } = t.payload, {
                                lists: i,
                                commands: s
                            } = e, a = i.byColor[r];
                            if (void 0 === a || 0 === a.symbols.length) return;
                            const c = new Set(o),
                                u = a.symbols.filter(e => !c.has(e));
                            if (!(0, l.equalArrays)(u, a.symbols)) {
                                a.symbols = u;
                                for (const e of c) delete i.bySymbol[e];
                                n || s.push({
                                    type: "remove",
                                    color: r,
                                    symbols: [...c]
                                }), f(e, r)
                            }
                        },
                        markMany: (e, t) => {
                            const {
                                color: r,
                                before: o,
                                silent: n
                            } = t.payload, {
                                lists: s,
                                commands: a
                            } = e, {
                                unique: c,
                                exclusions: d
                            } = function(e, t) {
                                var r;
                                const {
                                    color: o,
                                    symbols: n,
                                    separators: s
                                } = t.payload, {
                                    lists: a
                                } = e, l = {}, c = new Set, u = e => g(e) ? ((0, i.assert)(null !== o), o) : a.bySymbol[e];
                                for (let e = 0; e < n.length; ++e) {
                                    const t = n[e];
                                    if (c.has(t) || g(t) && !s) continue;
                                    c.add(t);
                                    const o = u(t);
                                    if (void 0 === o) continue;
                                    (l[o] = null !== (r = l[o]) && void 0 !== r ? r : new Set).add(t)
                                }
                                return {
                                    exclusions: l,
                                    unique: c
                                }
                            }(e, t);
                            if (0 === c.size) return;
                            const h = function(e, t, r, o) {
                                const {
                                    color: n,
                                    before: i
                                } = t.payload, {
                                    lists: s
                                } = e;
                                let a;
                                if (null !== n && void 0 !== i && r.has(i)) {
                                    const e = s.byColor[n];
                                    if (void 0 !== e) {
                                        a = o;
                                        for (let t = e.symbols.indexOf(i); t >= 0; --t)
                                            if (!r.has(e.symbols[t])) {
                                                a = e.symbols[t];
                                                break
                                            }
                                    }
                                }
                                return a
                            }(e, t, c, u.LIST_START);
                            if (null !== r && void 0 !== d[r] && 1 === Object.keys(d).length) {
                                const t = s.byColor[r];
                                (0, i.assert)(void 0 !== t);
                                const p = t.symbols.filter(e => !c.has(e)),
                                    m = (0, u.getTargetIndex)(p, o, h);
                                if (void 0 === m ? p.push(...c) : p.splice(m, 0, ...c), (0, l.equalArrays)(p, t.symbols)) return; {
                                    const o = d[r];
                                    (0, i.assert)(void 0 !== o), t.symbols = p;
                                    for (const e of o) delete s.bySymbol[e];
                                    for (const e of c) g(e) || (s.bySymbol[e] = r);
                                    return f(e, r), void(n || a.push({
                                        type: "replace",
                                        color: r,
                                        symbols: [...t.symbols]
                                    }))
                                }
                            }
                            for (const t in d) {
                                if (!d.hasOwnProperty(t)) continue;
                                const r = d[t];
                                (0, i.assert)(void 0 !== r);
                                const o = s.byColor[t];
                                (0, i.assert)(void 0 !== o), o.symbols = o.symbols.filter(e => !r.has(e) || (delete s.bySymbol[e], !1)), f(e, t)
                            }
                            if (null === r) return void(n || a.push({
                                type: "reset",
                                symbols: [...c]
                            }));
                            const p = s.byColor[r];
                            if (s.colors.includes(r)) {
                                (0, i.assert)(void 0 !== p);
                                const e = (0, u.getTargetIndex)(p.symbols, o, h);
                                void 0 === e ? (p.symbols.push(...c), n || (void 0 === d[r] ? a.push({
                                    type: "append",
                                    color: r,
                                    symbols: [...c]
                                }) : a.push({
                                    type: "replace",
                                    color: r,
                                    symbols: [...p.symbols]
                                }))) : (p.symbols.splice(e, 0, ...c), n || a.push({
                                    type: "replace",
                                    color: r,
                                    symbols: [...p.symbols]
                                }))
                            } else void 0 === p ? s.byColor[r] = {
                                color: r,
                                symbols: [...c],
                                name: null,
                                shared: !1
                            } : p.symbols = [...c], s.colors.push(r), n || a.push({
                                type: "append",
                                color: r,
                                symbols: [...c]
                            });
                            for (const e of c) g(e) || (s.bySymbol[e] = r)
                        },
                        renameSeparator: (e, t) => {
                            const {
                                color: r,
                                separator: o,
                                name: n,
                                silent: s
                            } = t.payload;
                            if (o === n || !g(o) || !g(n)) return;
                            const a = e.lists.byColor[r];
                            (0, i.assert)(void 0 !== a);
                            const l = a.symbols.indexOf(o); - 1 !== l && -1 === a.symbols.indexOf(n) && (a.symbols.splice(l, 1, n), s || e.commands.push({
                                type: "replace",
                                color: r,
                                symbols: a.symbols
                            }))
                        },
                        rename: (e, t) => {
                            const {
                                name: r,
                                color: o,
                                silent: n
                            } = t.payload, s = e.lists.byColor[o];
                            (0, i.assert)(void 0 !== s), s.name !== r && (s.name = r, n || e.commands.push({
                                type: "rename",
                                color: o,
                                name: r
                            }))
                        },
                        reset: (e, t) => {
                            const {
                                silent: r
                            } = t.payload, {
                                lists: o
                            } = e;
                            for (const e of d) {
                                const t = o.byColor[e];
                                void 0 !== t && (t.symbols = [])
                            }
                            o.colors = [], o.bySymbol = {}, r || e.commands.push({
                                type: "reset-all"
                            })
                        },
                        share: (e, t) => {
                            const {
                                lists: r,
                                commands: o
                            } = e, {
                                shared: n,
                                color: i,
                                silent: s
                            } = t.payload, a = r.byColor[i];
                            void 0 !== a && a.shared !== n && (a.shared = n, s || o.push({
                                type: "share",
                                color: i,
                                shared: n
                            }))
                        },
                        shiftCommand: (e, t) => {
                            const {
                                count: r
                            } = t.payload;
                            e.commands.splice(0, r)
                        }
                    }
                }),
                {
                    markMany: _,
                    setup: v,
                    reset: b,
                    remove: y,
                    rename: w,
                    renameSeparator: S,
                    shiftCommand: C,
                    share: k
                } = m.actions,
                {
                    reducer: E
                } = m;

            function x(e, t, r = m) {
                return (0, s.createCrossTabSyncMiddleware)({
                    id: e,
                    channel: t,
                    event: "marked-list-cross-tab-sync",
                    filter: e => function(e, t) {
                        return t.actions.markMany.match(e) || t.actions.rename.match(e) || t.actions.remove.match(e) || t.actions.setup.match(e) || t.actions.renameSeparator.match(e) || t.actions.reset.match(e) || t.actions.share.match(e)
                    }(e, r)
                })
            }

            function T(e, t) {
                var r;
                return null !== (r = e.lists.bySymbol[a.qualified.cast(t)]) && void 0 !== r ? r : null
            }

            function A(e, t) {
                var r;
                return null !== (r = e.lists.byColor[t]) && void 0 !== r ? r : null
            }

            function M(e, t) {
                var r, o;
                return null !== (o = null === (r = A(e, t)) || void 0 === r ? void 0 : r.symbols) && void 0 !== o ? o : null
            }

            function L(e) {
                return e.commands
            }

            function P(e) {
                return e.timestamp
            }
        },
        53875: (e, t, r) => {
            "use strict";
            r.d(t, {
                SEPARATOR_PREFIX: () => o,
                isSeparatorItem: () => n
            });
            const o = "###";

            function n(e) {
                return e.startsWith(o)
            }
        },
        44955: (e, t, r) => {
            "use strict";
            r.d(t, {
                qualified: () => o
            });
            const o = {
                cast: e => e,
                castMany: e => e.map(o.cast)
            }
        },
        27505: (e, t, r) => {
            "use strict";

            function o(e, t) {
                if (e.length !== t.length) return !1;
                for (let r = 0; r < e.length; ++r)
                    if (e[r] !== t[r]) return !1;
                return !0
            }
            r.d(t, {
                equalArrays: () => o
            })
        },
        50214: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                colorsPalette: () => u,
                getHexColorByName: () => d
            });
            const o = JSON.parse('{"color-white":"#ffffff","color-black":"#000000","color-cold-gray-50":"#F8F9FD","color-cold-gray-100":"#F0F3FA","color-cold-gray-150":"#E0E3EB","color-cold-gray-200":"#D1D4DC","color-cold-gray-250":"#C1C4CD","color-cold-gray-300":"#B2B5BE","color-cold-gray-350":"#A3A6AF","color-cold-gray-400":"#9598A1","color-cold-gray-450":"#868993","color-cold-gray-500":"#787B86","color-cold-gray-550":"#6A6D78","color-cold-gray-600":"#5D606B","color-cold-gray-650":"#50535E","color-cold-gray-700":"#434651","color-cold-gray-750":"#363A45","color-cold-gray-800":"#2A2E39","color-cold-gray-850":"#1E222D","color-cold-gray-900":"#131722","color-cold-gray-950":"#0C0E15","color-ripe-red-50":"#FFEBEC","color-ripe-red-100":"#FCCBCD","color-ripe-red-200":"#FAA1A4","color-ripe-red-300":"#F77C80","color-ripe-red-400":"#F7525F","color-ripe-red-500":"#F23645","color-ripe-red-600":"#CC2F3C","color-ripe-red-700":"#B22833","color-ripe-red-800":"#991F29","color-ripe-red-900":"#801922","color-ripe-red-a100":"#FF8080","color-ripe-red-a200":"#FF5252","color-ripe-red-a400":"#FF3333","color-ripe-red-a600":"#CC2929","color-ripe-red-a700":"#802028","color-ripe-red-a800":"#4D191D","color-ripe-red-a900":"#331F20","color-tan-orange-50":"#FFF3E0","color-tan-orange-100":"#FFE0B2","color-tan-orange-200":"#FFCC80","color-tan-orange-300":"#ffb74d","color-tan-orange-400":"#FFA726","color-tan-orange-500":"#FF9800","color-tan-orange-600":"#FB8C00","color-tan-orange-700":"#F57C00","color-tan-orange-800":"#EF6C00","color-tan-orange-900":"#e65100","color-tan-orange-a200":"#ffab40","color-tan-orange-a400":"#ff9100","color-tan-orange-a700":"#FF6D00","color-iguana-green-100":"#C8E6C9","color-iguana-green-200":"#A5D6A7","color-iguana-green-300":"#81c784","color-iguana-green-400":"#66BB6A","color-iguana-green-500":"#4caf50","color-iguana-green-600":"#43a047","color-iguana-green-700":"#388e3c","color-iguana-green-800":"#2E7D32","color-iguana-green-900":"#1B5E20","color-iguana-green-a700":"#00c853","color-banana-yellow-100":"#FFF9C4","color-banana-yellow-200":"#FFF59D","color-banana-yellow-300":"#FFF176","color-banana-yellow-400":"#ffee58","color-banana-yellow-500":"#ffeb3b","color-banana-yellow-600":"#fdd835","color-banana-yellow-700":"#fbc02d","color-banana-yellow-800":"#f9a825","color-banana-yellow-900":"#F57F17","color-banana-yellow-a400":"#ffea00","color-banana-yellow-a700":"#ffd600","color-tv-blue-50":"#E3EFFD","color-tv-blue-100":"#BBD9FB","color-tv-blue-200":"#90BFF9","color-tv-blue-300":"#5B9CF6","color-tv-blue-400":"#3179F5","color-tv-blue-500":"#2962FF","color-tv-blue-600":"#1E53E5","color-tv-blue-700":"#1848CC","color-tv-blue-800":"#143EB3","color-tv-blue-900":"#0C3299","color-tv-blue-a100":"#82b1ff","color-tv-blue-a200":"#448aff","color-tv-blue-a400":"#2979ff","color-tv-blue-a600":"#2962FF","color-tv-blue-a700":"#143A87","color-tv-blue-a800":"#142E61","color-tv-blue-a900":"#132042","color-deep-blue-100":"#D1C4E9","color-deep-blue-200":"#B39DDB","color-deep-blue-300":"#9575cd","color-deep-blue-400":"#7e57c2","color-deep-blue-500":"#673ab7","color-deep-blue-700":"#512da8","color-deep-blue-800":"#4527A0","color-deep-blue-900":"#311B92","color-deep-blue-a100":"#b388ff","color-deep-blue-a400":"#651FFF","color-deep-blue-a700":"#6200EA","color-minty-green-50":"#DAF2EE","color-minty-green-100":"#ACE5DC","color-minty-green-200":"#70CCBD","color-minty-green-300":"#42BDA8","color-minty-green-400":"#22AB94","color-minty-green-500":"#089981","color-minty-green-600":"#06806B","color-minty-green-700":"#056656","color-minty-green-800":"#004D40","color-minty-green-900":"#00332A","color-minty-green-a400":"#2BD9BC","color-minty-green-a700":"#24B29B","color-minty-green-a900":"#082621","color-grapes-purple-50":"#F3E5F5","color-grapes-purple-100":"#E1BEE7","color-grapes-purple-200":"#CE93D8","color-grapes-purple-300":"#ba68c8","color-grapes-purple-400":"#ab47bc","color-grapes-purple-500":"#9c27b0","color-grapes-purple-600":"#8e24aa","color-grapes-purple-700":"#7b1fa2","color-grapes-purple-800":"#6A1B9A","color-grapes-purple-900":"#4A148C","color-grapes-purple-a200":"#E040FB","color-grapes-purple-a400":"#D500F9","color-grapes-purple-a700":"#aa00ff","color-berry-pink-100":"#F8BBD0","color-berry-pink-200":"#f48fb1","color-berry-pink-300":"#f06292","color-berry-pink-400":"#ec407a","color-berry-pink-500":"#e91e63","color-berry-pink-600":"#D81B60","color-berry-pink-700":"#C2185B","color-berry-pink-800":"#AD1457","color-berry-pink-900":"#880E4F","color-berry-pink-a100":"#ff80ab","color-berry-pink-a200":"#ff4081","color-sky-blue-100":"#B2EBF2","color-sky-blue-200":"#80DEEA","color-sky-blue-300":"#4dd0e1","color-sky-blue-400":"#26c6da","color-sky-blue-500":"#00bcd4","color-sky-blue-600":"#00acc1","color-sky-blue-700":"#0097A7","color-sky-blue-800":"#00838F","color-sky-blue-900":"#006064","color-sky-blue-a400":"#00e5ff","color-sky-blue-a700":"#00B8D4","color-deep-blue-600":"#5E35B1","color-facebook":"#1877F2","color-deep-facebook":"#1564CA","color-twitter":"#1DA1F2","color-deep-twitter":"#188CD3","color-youtube":"#FF0000","color-linkedin":"#007BB5","color-aqua-spring":"#ebf9f5","color-army-green":"#3d2c12","color-army-green-2":"#31230d","color-athens-gray-1":"#f2f3f5","color-athens-gray-2":"#f7f8fa","color-athens-gray-3":"#eceff2","color-black-180":"#b4b4b4","color-blue-dianne":"#21384d","color-bluish":"#2185cc","color-bright-gray":"#363c4e","color-brownish-grey":"#8d6e63","color-carnation":"#f04561","color-catskill-white":"#e1ecf2","color-charade":"#2f3241","color-charcoal-grey":"#323337","color-curious-blue":"#299dcd","color-dark-blue-grey":"#123440","color-darkness-blue-grey":"#12213b","color-dark-grey":"#292a2d","color-dark-grey-blue":"#28415a","color-dark-sky-blue":"#37a6ef","color-deep-sea-blue":"#016087","color-ebony-clay":"#262b3e","color-foam":"#d7f0fb","color-gull-gray":"#9db2bd","color-humming-bird":"#d3eef9","color-keppel-1":"#37bc9b","color-keppel-2":"#34b293","color-lavender-blush":"#ffedf0","color-lightish-purple":"#a75ee8","color-loblolly":"#c5cbce","color-manatee":"#878ca8","color-mandy":"#eb4d5c","color-medium-blue":"#2e7bb2","color-milk-chocolate":"#6f2626","color-mirage-1":"#131722","color-mirage-2":"#171b29","color-mirage-3":"#1c2030","color-mischka":"#d6d8e0","color-morning-glory":"#9addcc","color-oslo-gray":"#8b8e95","color-pale":"#fff2cf","color-pale-grey-1":"#f9fafb","color-pale-grey-2":"#e7ebee","color-pale-sky":"#6b7988","color-picton-blue-1":"#3bb3e4","color-puerto-rico":"#3bc2a1","color-purple-brown":"#4e2934","color-purple-brown-2":"#3d2028","color-radical-red":"#ff4a68","color-regent-gray":"#8797a5","color-scooter":"#38acdb","color-silver-tree":"#53b987","color-slate-gray":"#758696","color-sundown":"#ffa4b3","color-sunglow":"#ffca3b","color-tan-hide":"#ff9850","color-trout-1":"#4c525e","color-trout-2":"#4f5966","color-violet-1":"#332738","color-violet-2":"#271d2b","color-white-ice":"#ebf7fc","color-wild-watermelon":"#ff5773","color-readonly-input":"#b4b4b4","color-brand-dark":"#2a2c39","color-seeking-alpha-brand":"#ff7200"}'),
                n = JSON.parse('{"color-bg-primary":"color-white","color-bg-primary-hover":"color-cold-gray-100","color-bg-secondary":"color-white","color-bg-highlight":"color-cold-gray-50","color-bg-scroll-buttons":"color-cold-gray-100","color-legacy-bg-scroll-buttons":"color-cold-gray-850","color-legacy-bg-widget":"color-white","color-text-primary":"color-cold-gray-900","color-text-secondary":"color-cold-gray-500","color-text-tertiary":"color-cold-gray-400","color-text-disabled":"color-cold-gray-300","color-accent-content":"color-cold-gray-900","color-box-shadow":"color-cold-gray-300","color-divider":"color-cold-gray-150","color-divider-hover":"color-cold-gray-100","color-divider-secondary":"color-cold-gray-100","color-active-hover-text":"color-cold-gray-900","color-alert-text":"color-cold-gray-900","color-border-table":"color-cold-gray-100","color-brand":"color-tv-blue-500","color-brand-active":"color-tv-blue-700","color-brand-hover":"color-tv-blue-600","color-chart-page-bg":"color-cold-gray-150","color-common-tooltip-bg":"color-cold-gray-800","color-danger":"color-ripe-red-400","color-danger-hover":"color-ripe-red-500","color-danger-active":"color-ripe-red-600","color-depthrenderer-stroke-style":"color-cold-gray-100","color-highlight-new":"color-tan-orange-50","color-input-bg":"color-white","color-input-publish-bg":"color-white","color-link":"color-tv-blue-500","color-link-hover":"color-tv-blue-600","color-link-active":"color-tv-blue-700","color-list-nth-child-bg":"color-cold-gray-50","color-pane-bg":"color-white","color-pane-secondary-bg":"color-cold-gray-100","color-popup-menu-item-hover-bg":"color-cold-gray-100","color-popup-menu-separator":"color-cold-gray-150","color-screener-description":"color-cold-gray-650","color-success":"color-minty-green-500","color-success-hover":"color-minty-green-600","color-success-active":"color-minty-green-700","color-toolbar-button-text":"color-cold-gray-900","color-toolbar-button-text-hover":"color-cold-gray-900","color-toolbar-button-text-active":"color-tv-blue-500","color-toolbar-button-text-active-hover":"color-tv-blue-600","color-toolbar-button-background-hover":"color-cold-gray-100","color-toolbar-button-background-secondary-hover":"color-cold-gray-150","color-toolbar-toggle-button-background-active":"color-tv-blue-500","color-toolbar-toggle-button-background-active-hover":"color-tv-blue-600","color-toolbar-interactive-element-text-normal":"color-cold-gray-900","color-toolbar-interactive-element-text-hover":"color-cold-gray-900","color-toolbar-opened-element-bg":"color-cold-gray-100","color-tooltip-bg":"color-cold-gray-800","color-tv-dialog-caption":"color-cold-gray-650","color-tv-dropdown-item-hover-bg":"color-cold-gray-100","color-underlined-text":"color-cold-gray-500","color-widget-pages-bg":"color-white","color-warning":"color-tan-orange-500","color-growing":"color-minty-green-400","color-falling":"color-ripe-red-400","color-forex-icon":"color-cold-gray-750","color-list-item-active-bg":"color-tv-blue-400","color-list-item-hover-bg":"color-tv-blue-50","color-list-item-text":"color-cold-gray-800","color-price-axis-label-back":"color-cold-gray-150","color-price-axis-label-text":"color-cold-gray-650","color-price-axis-gear":"color-cold-gray-900","color-price-axis-gear-hover":"color-black","color-price-axis-highlight":"color-cold-gray-150","color-bid":"color-tv-blue-500","color-border":"color-cold-gray-150","color-border-chat-fields":"color-cold-gray-250","color-border-hover":"color-cold-gray-250","color-button-hover-bg":"color-cold-gray-150","color-depthrenderer-fill-style":"color-cold-gray-650","color-disabled-border-and-color":"color-cold-gray-150","color-disabled-input":"color-cold-gray-150","color-empty-container-message":"color-cold-gray-500","color-icons":"color-cold-gray-500","color-input-textarea-readonly":"color-cold-gray-650","color-input-placeholder-text":"color-cold-gray-350","color-item-active-blue":"color-tv-blue-50","color-item-hover-active-bg":"color-tv-blue-100","color-item-hover-bg":"color-tv-blue-100","color-item-hover-blue":"color-tv-blue-100","color-item-selected-blue":"color-tv-blue-50","color-item-active-text":"color-white","color-item-active-bg":"color-tv-blue-500","color-list-item":"color-cold-gray-450","color-news-highlight":"color-tv-blue-100","color-placeholder":"color-cold-gray-350","color-row-hover-active-bg":"color-cold-gray-100","color-sb-scrollbar-body-bg":"color-cold-gray-200","color-section-separator-border":"color-cold-gray-300","color-separator-table-chat":"color-cold-gray-150","color-tag-active-bg":"color-cold-gray-200","color-tag-hover-bg":"color-cold-gray-150","color-text-regular":"color-cold-gray-700","color-tv-button-checked":"color-cold-gray-550","color-scroll-bg":"color-cold-gray-400","color-scroll-border":"color-cold-gray-100","color-widget-border":"color-cold-gray-100","color-scroll-buttons-arrow":"color-white","color-control-intent-default":"color-cold-gray-200","color-control-intent-success":"color-minty-green-600","color-control-intent-primary":"color-tv-blue-500","color-control-intent-warning":"color-tan-orange-500","color-control-intent-danger":"color-ripe-red-500","color-pre-market":"color-tan-orange-600","color-pre-market-bg":"color-tan-orange-400","color-post-market":"color-tv-blue-500","color-post-market-bg":"color-tv-blue-400","color-market-open":"color-minty-green-500","color-market-open-bg":"color-minty-green-400","color-market-closed":"color-cold-gray-400","color-market-holiday":"color-cold-gray-400","color-invalid-symbol":"color-ripe-red-400","color-invalid-symbol-hover":"color-ripe-red-700","color-replay-mode":"color-tv-blue-500","color-replay-mode-icon":"color-white","color-replay-mode-hover":"color-tv-blue-600","color-notaccurate-mode":"color-berry-pink-700","color-notaccurate-mode-bg":"color-berry-pink-400","color-delay-mode":"color-tan-orange-700","color-delay-mode-bg":"color-tan-orange-400","color-eod-mode":"color-grapes-purple-700","color-eod-mode-bg":"color-grapes-purple-400","color-data-problem":"color-ripe-red-600","color-data-problem-bg":"color-ripe-red-400","color-data-problem-hover":"color-ripe-red-700","color-list-item-bg-highlighted":"color-tv-blue-50","color-list-item-bg-selected":"color-tv-blue-100","color-list-item-bg-highlighted-hover":"color-tv-blue-100","color-list-item-bg-selected-hover":"color-tv-blue-200","color-screener-header-bg":"color-white","color-screener-header-bg-hover":"color-cold-gray-100","color-marker-flagged":"color-ripe-red-400","color-marker-flagged-hovered":"color-ripe-red-600","color-ask":"color-ripe-red-400","color-sell":"color-ripe-red-400","color-buy":"color-tv-blue-500","color-neutral":"color-cold-gray-500","color-pro":"color-minty-green-400","color-pro-hover":"color-minty-green-600","color-pro-plus":"color-tv-blue-500","color-pro-plus-hover":"color-tv-blue-600","color-pro-premium":"color-tan-orange-500","color-pro-premium-hover":"color-tan-orange-700","color-trial":"color-cold-gray-500","color-trial-hover":"color-cold-gray-600","color-mod":"color-ripe-red-400","color-mod-hover":"color-ripe-red-600","color-ad":"color-tan-orange-500","color-broker-featured":"color-minty-green-400","color-broker-featured-hover":"color-minty-green-600","color-alert-status-active":"color-minty-green-400","color-alert-status-stopped":"color-ripe-red-500","color-alert-status-triggered":"color-tan-orange-500","color-covid19-confirmed":"color-ripe-red-500","color-covid19-recovered":"color-minty-green-500","color-covid19-deaths":"color-cold-gray-450","color-overlay":"color-cold-gray-400","color-search-button-hover":"color-cold-gray-150","color-common-tooltip-text":"color-cold-gray-100","color-replay-data-mode":"color-radical-red","color-legacy-success":"color-keppel-1","color-collapse-tabs-border":"color-athens-gray-3","color-site-widget-hover":"color-athens-gray-1","color-attention":"color-sunglow","color-card-border":"color-cold-gray-150","color-card-border-hover":"color-cold-gray-300","color-background-special-primary":"color-white","color-stroke-special-primary":"color-cold-gray-150","color-selection-bg":"color-tv-blue-100"}');
            var i = r(16282);
            const s = { ...o,
                    ...n
                },
                a = {},
                l = Object.keys(s).length,
                c = /^#[0-9A-F]{6}$/i;
            Object.keys(s).forEach(e => {
                const t = function e(t, r = []) {
                    const o = s[t];
                    if (!o) return null;
                    if (c.test(o)) return o;
                    const n = o;
                    return r.push(t), -1 !== r.indexOf(n) ? (console.warn("Colors definitions cycled"), o) : r.length > l ? (console.warn("Too many variables-link in HEX-color search: " + r[0]), null) : e(n, r)
                }(e);
                a[e] = (0, i.ensureNotNull)(t)
            });
            const u = a;

            function d(e) {
                const t = u[e];
                if (!t) throw new Error("No such color " + e);
                return t
            }
        },
        82652: (e, t, r) => {
            "use strict";
            r.d(t, {
                dur: () => o,
                easingFunc: () => n,
                CubicBezier: () => i,
                color: () => s
            });
            const o = 350,
                n = {
                    linear: e => e,
                    easeInQuad: e => e * e,
                    easeOutQuad: e => e * (2 - e),
                    easeInOutQuad: e => e < .5 ? 2 * e * e : (4 - 2 * e) * e - 1,
                    easeInCubic: e => e * e * e,
                    easeOutCubic: e => --e * e * e + 1,
                    easeInOutCubic: e => e < .5 ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1,
                    easeInQuart: e => e * e * e * e,
                    easeOutQuart: e => 1 - --e * e * e * e,
                    easeInOutQuart: e => e < .5 ? 8 * e * e * e * e : 1 - 8 * --e * e * e * e,
                    easeInQuint: e => e * e * e * e * e,
                    easeOutQuint: e => 1 + --e * e * e * e * e,
                    easeInOutQuint: e => e < .5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e
                };
            class i {
                constructor(e, t, r, o) {
                    this._mX1 = e, this._mY1 = t, this._mX2 = r, this._mY2 = o
                }
                easingFunc(e) {
                    return this._mX1 === this._mY1 && this._mX2 === this._mY2 ? e : this._calcBezier(this._getTForX(e))
                }
                _a(e, t) {
                    return 1 - 3 * t + 3 * e
                }
                _b(e, t) {
                    return 3 * t - 6 * e
                }
                _c(e) {
                    return 3 * e
                }
                _calcBezier(e) {
                    return ((this._a(this._mY1, this._mY2) * e + this._b(this._mY1, this._mY2)) * e + this._c(this._mY1)) * e
                }
                _getSlope(e) {
                    return 3 * this._a(this._mX1, this._mX2) * e * e + 2 * this._b(this._mX1, this._mX2) * e + this._c(this._mX1)
                }
                _getTForX(e) {
                    let t = e;
                    for (let r = 0; r < 4; ++r) {
                        const r = this._getSlope(t);
                        if (0 === r) return t;
                        t -= (this._calcBezier(t) - e) / r
                    }
                    return t
                }
            }
            const s = {
                black70: "#4A4A4A",
                black80: "#535353"
            }
        },
        30456: (e, t, r) => {
            "use strict";
            r.d(t, {
                Icon: () => n
            });
            var o = r(67294);
            const n = o.forwardRef((e, t) => {
                const {
                    icon: r = "",
                    ...n
                } = e;
                return o.createElement("span", { ...n,
                    ref: t,
                    dangerouslySetInnerHTML: {
                        __html: r
                    }
                })
            })
        },
        60371: (e, t, r) => {
            "use strict";
            r.d(t, {
                Loader: () => c
            });
            var o, n = r(67294),
                i = r(94184),
                s = r(82652),
                a = r(33214),
                l = r.n(a);
            ! function(e) {
                e[e.Initial = 0] = "Initial", e[e.Appear = 1] = "Appear", e[e.Active = 2] = "Active"
            }(o || (o = {}));
            class c extends n.PureComponent {
                constructor(e) {
                    super(e), this._stateChangeTimeout = null, this.state = {
                        state: o.Initial
                    }
                }
                render() {
                    const {
                        className: e,
                        color: t = "black",
                        staticPosition: r
                    } = this.props, o = i(l().item, {
                        [l()[t]]: Boolean(t)
                    });
                    return n.createElement("span", {
                        className: i(l().loader, r && l().static, e, this._getStateClass())
                    }, n.createElement("span", {
                        className: o
                    }), n.createElement("span", {
                        className: o
                    }), n.createElement("span", {
                        className: o
                    }))
                }
                componentDidMount() {
                    this.setState({
                        state: o.Appear
                    }), this._stateChangeTimeout = setTimeout(() => {
                        this.setState({
                            state: o.Active
                        })
                    }, 2 * s.dur)
                }
                componentWillUnmount() {
                    this._stateChangeTimeout && (clearTimeout(this._stateChangeTimeout), this._stateChangeTimeout = null)
                }
                _getStateClass() {
                    switch (this.state.state) {
                        case o.Initial:
                            return l()["loader-initial"];
                        case o.Appear:
                            return l()["loader-appear"];
                        default:
                            return ""
                    }
                }
            }
        },
        47116: (e, t, r) => {
            "use strict";
            r.d(t, {
                SwitchGroup: () => i,
                makeSwitchGroupItem: () => s
            });
            var o = r(67294),
                n = r(45697);
            class i extends o.PureComponent {
                constructor() {
                    super(...arguments),
                        this._subscriptions = new Set, this._getName = () => this.props.name, this._getValues = () => this.props.values, this._getOnChange = () => this.props.onChange, this._subscribe = e => {
                            this._subscriptions.add(e)
                        }, this._unsubscribe = e => {
                            this._subscriptions.delete(e)
                        }
                }
                getChildContext() {
                    return {
                        switchGroupContext: {
                            getName: this._getName,
                            getValues: this._getValues,
                            getOnChange: this._getOnChange,
                            subscribe: this._subscribe,
                            unsubscribe: this._unsubscribe
                        }
                    }
                }
                render() {
                    return this.props.children
                }
                componentDidUpdate(e) {
                    this._notify(this._getUpdates(this.props.values, e.values))
                }
                _notify(e) {
                    this._subscriptions.forEach(t => t(e))
                }
                _getUpdates(e, t) {
                    return [...t, ...e].filter(r => t.includes(r) ? !e.includes(r) : e.includes(r))
                }
            }

            function s(e) {
                var t;
                return (t = class extends o.PureComponent {
                    constructor() {
                        super(...arguments), this._onChange = e => {
                            this.context.switchGroupContext.getOnChange()(e)
                        }, this._onUpdate = e => {
                            e.includes(this.props.value) && this.forceUpdate()
                        }
                    }
                    componentDidMount() {
                        this.context.switchGroupContext.subscribe(this._onUpdate)
                    }
                    render() {
                        return o.createElement(e, { ...this.props,
                            name: this._getName(),
                            onChange: this._onChange,
                            checked: this._isChecked()
                        })
                    }
                    componentWillUnmount() {
                        this.context.switchGroupContext.unsubscribe(this._onUpdate)
                    }
                    _getName() {
                        return this.context.switchGroupContext.getName()
                    }
                    _isChecked() {
                        return this.context.switchGroupContext.getValues().includes(this.props.value)
                    }
                }).contextTypes = {
                    switchGroupContext: n.any.isRequired
                }, t
            }
            i.childContextTypes = {
                switchGroupContext: n.any.isRequired
            }
        },
        30715: (e, t, r) => {
            "use strict";
            r.d(t, {
                Switch: () => l
            });
            var o = r(67294),
                n = r(94184),
                i = r(6920),
                s = r.n(i);

            function a(e) {
                const {
                    className: t = "",
                    intent: r = "default",
                    size: o = "small",
                    disabled: i
                } = e;
                return n(t, s().switcherWrapper, s()["size-" + o], !i && s()["intent-" + r])
            }
            class l extends o.PureComponent {
                render() {
                    const {
                        reference: e,
                        size: t,
                        intent: r,
                        ...i
                    } = this.props, l = n(s().input, -1 !== this.props.tabIndex && s().focus);
                    return o.createElement("div", {
                        className: a(this.props)
                    }, o.createElement("input", { ...i,
                        type: "checkbox",
                        className: l,
                        ref: e
                    }), o.createElement("div", {
                        className: s().switcherThumbWrapper
                    }, o.createElement("div", {
                        className: s().switcherTrack
                    }), o.createElement("div", {
                        className: s().switcherThumb
                    })))
                }
            }
        },
        61581: (e, t, r) => {
            "use strict";
            r.d(t, {
                getTooltipData: () => n,
                setTooltipData: () => i
            });
            const o = new WeakMap;

            function n(e, t) {
                const r = o.get(e);
                return r instanceof Function ? r(t) : r && r[t]
            }

            function i(e, t, r) {
                if (r instanceof Function) return void o.set(e, r);
                const n = o.get(e),
                    i = void 0 === n || n instanceof Function ? {} : n;
                i[t] = r, o.set(e, i)
            }
        },
        83147: (e, t, r) => {
            "use strict";
            r.d(t, {
                hotKeySerialize: () => n,
                hotKeyDeserialize: () => i
            });
            var o = r(44197);

            function n(e) {
                return (0, o.clean)(JSON.stringify(e))
            }

            function i(e) {
                return JSON.parse((0, o.clean)(e, !0))
            }
        },
        94970: (e, t, r) => {
            "use strict";
            r.d(t, {
                hide: () => z,
                show: () => U,
                showOnElement: () => V
            });
            var o = r(95355);
            let n = 0,
                i = 0,
                s = 0;

            function a() {
                clearTimeout(n), clearTimeout(i), clearTimeout(s)
            }

            function l(e, t) {
                n = setTimeout(e, t)
            }
            const c = "tooltip-root-element";
            let u;

            function d() {
                const e = document.getElementById(c);
                e ? u = e : (u = document.createElement("div"), u.id = c, document.body.appendChild(u))
            }

            function h() {
                u && (u.innerHTML = "")
            }
            "interactive" === document.readyState ? d() : document.addEventListener("DOMContentLoaded", d);
            var p = r(16282);
            const f = {
                    default: "",
                    white: "theme-white",
                    "round-shadow": "theme-round-shadow"
                },
                g = Object.keys(f);
            var m = r(61581),
                _ = r(83147),
                v = r(13548),
                b = r(82755),
                y = (r(68421), r(53549)),
                w = r(84162),
                S = r(68724),
                C = r(78746);

            function k(e) {
                const t = function(e) {
                        const t = e.hasAttribute("data-tooltip") ? e.getAttribute("data-tooltip") : e.getAttribute("title");
                        return t && ((0, m.setTooltipData)(e, "text", t), e.removeAttribute("title")), (0, m.getTooltipData)(e, "text") || ""
                    }(e),
                    r = e.getBoundingClientRect(),
                    o = {
                        h: r.height,
                        w: r.width,
                        x: r.left,
                        y: r.top
                    },
                    n = e.getAttribute("data-color-theme") || "",
                    i = e.classList.contains("common-tooltip-html"),
                    s = parseInt(e.getAttribute("data-tooltip-delay") || ""),
                    a = parseInt(e.getAttribute("data-tooltip-debounce") || "");
                let l = {
                    type: "none"
                };
                return t && (l = {
                    type: i ? "html" : "text",
                    data: t
                }), {
                    above: e.classList.contains("common-tooltip-above"),
                    below: e.classList.contains("common-tooltip-below"),
                    otl: e.classList.contains("common-tooltip-otl"),
                    otr: e.classList.contains("common-tooltip-otr"),
                    vertical: e.classList.contains("common-tooltip-vertical"),
                    hotkey: e.getAttribute("data-tooltip-hotkey"),
                    narrow: e.classList.contains("common-tooltip-narrow"),
                    wide: e.classList.contains("common-tooltip-wide"),
                    colorTheme: n,
                    tooltipDelay: s,
                    tooltipDebounce: a,
                    rect: o,
                    content: l,
                    target: e
                }
            }

            function E(e) {
                const t = F.cloneNode(!0),
                    r = O(t),
                    {
                        content: o
                    } = e;
                switch (o.type) {
                    case "element":
                        r.innerHTML = "", r.appendChild(o.data);
                        break;
                    case "html":
                        r.innerHTML = o.data;
                        break;
                    case "text":
                        if (e.hotkey) {
                            const e = D.cloneNode(!0);
                            e.innerText = o.data, r.appendChild(e)
                        } else r.innerText = o.data
                }
                if (e.hotkey) {
                    const t = "none" !== o.type,
                        n = I.cloneNode(!0),
                        i = (0, _.hotKeyDeserialize)(e.hotkey),
                        s = i.keys.map(e => `<span class="${C["common-tooltip__hotkey-button"]}">${e}</span>`);
                    n.innerHTML = function(e, t) {
                        return e.replace(/{\d}|{hotkey_\d}/gi, e => {
                            const r = Number(e.match(/\d/));
                            return t[r]
                        })
                    }(i.text, s).replace(/\s\+\s/g, `<span class="${C["common-tooltip__plus-sign"]}">+</span>`), r.classList.add(C["common-tooltip__body--with-hotkey"]), t && n.classList.add(C["common-tooltip__hotkey-block--divider"]), r.appendChild(n)
                }
                return t.addEventListener("contextmenu", y.preventDefault), t
            }

            function x(e, t) {
                const r = t.rect;
                if (!r) return;
                ! function(e, t) {
                    const r = g.includes(t) ? f[t] : "";
                    e.classList.remove(...g.map(e => f[e]).filter(e => !!e)), r && !e.classList.contains(r) && e.classList.add(r)
                }(e, t.colorTheme || "default"), t.addClass && e.classList.add(t.addClass);
                const o = O(e),
                    n = e.querySelector("." + C["common-tooltip__button-container"]);
                o.classList.toggle(C["common-tooltip__body--width_wide"], Boolean(t.wide)), o.classList.toggle(C["common-tooltip__body--no-padding"], Boolean(t.noPadding)), o.classList.toggle(C["common-tooltip__body--width_narrow"], Boolean(t.narrow)), o.classList.toggle(C["common-tooltip__body--no-buttons"], !0), o.style.left = A(0), o.style.width = A(o.clientWidth + (Boolean(t.noPadding) ? 0 : 2));
                const i = document.body.clientWidth,
                    s = S.CheckMobile.iOS() || (0, S.supportTouch)() && (0,
                        S.isMac)() ? window.innerHeight : document.body.clientHeight,
                    a = t.vertical,
                    l = t.extendMargin || a && r.w < 20 || !a && r.h < 20;
                e.classList.toggle(C["common-tooltip--farther"], l), e.classList.toggle(C["common-tooltip--vertical"], a), e.classList.toggle(C["common-tooltip--horizontal"], !a);
                const c = function(e) {
                        return e.querySelector("." + C["common-tooltip__ear-holder"])
                    }(e),
                    u = e.offsetHeight;
                if (a) {
                    const a = 10,
                        l = s - 10,
                        d = 12,
                        h = a + d,
                        p = l - d,
                        f = (0, w.clamp)(r.y + r.h / 2, h, p) - u / 2,
                        g = f + u;
                    e.style.left = A(r.x + r.w), e.style.top = A(f), f < a ? o.style.top = n.style.top = A(a - f) : g > l && (o.style.top = n.style.top = A(l - g));
                    const {
                        right: m
                    } = (e.querySelector(":last-child") || o).getBoundingClientRect(), _ = m + 10 > i;
                    e.classList.toggle(C["common-tooltip--direction_reversed"], _), e.classList.toggle(C["common-tooltip--direction_normal"], !_);
                    let v = _ ? "after" : "before";
                    (0, b.isRtl)() ? (v = t.otr ? "after" : v, v = t.otl ? "before" : v) : (v = t.otr ? "before" : v, v = t.otl ? "after" : v), c.classList.toggle(C["common-tooltip__ear-holder--before"], "before" === v), c.classList.toggle(C["common-tooltip__ear-holder--after"], "after" === v), "after" === v && (e.style.left = "auto", e.style.right = A(i - r.x))
                } else {
                    const a = r.x - (o.offsetWidth - r.w) / 2,
                        l = i - 10 - e.offsetWidth,
                        d = Math.max(10, Math.min(a, l));
                    e.style.left = A(d);
                    const h = l < a;
                    e.classList.toggle(C["common-tooltip--direction_reversed"], h), e.classList.toggle(C["common-tooltip--direction_normal"], !h);
                    const p = function(e, t, r, o) {
                        if (e.above) return R(t, o) ? "above" : "below";
                        if (e.below) return function(e, t, r) {
                            return r.y + r.h + t + 10 < e
                        }(t, r, o) ? "below" : "above";
                        return R(r, o) ? "above" : "below"
                    }(t, s, u, r);
                    "above" === p ? e.style.bottom = A(s - r.y) : e.style.top = A(r.y + r.h), c.classList.add("above" === p ? C["common-tooltip__ear-holder--above"] : C["common-tooltip__ear-holder--below"]);
                    const {
                        left: f
                    } = o.getBoundingClientRect();
                    let g = Math.trunc(r.x + r.w / 2 - (f + o.clientWidth / 2));
                    e.style.left = A(d + g), e.style.width = A(o.clientWidth + n.clientWidth), g = h ? Math.max(0, g) : Math.min(0, g), n.style.left = A(-g), o.style.left = A(-g)
                }
            }

            function T(e) {
                e.classList.toggle(C["common-tooltip--hidden"], !0)
            }

            function A(e) {
                return Math.floor(e) + "px"
            }
            const M = `\n\t<div id="common-tooltip-wrapper" class="${C["common-tooltip"]}">\n\t\t<div class="${C["common-tooltip__ear-holder"]}" >\n\t\t\t<div class="${C["common-tooltip__body"]} js-tooltip-body"></div>\n\t\t</div>\n\t\t<div class="${C["common-tooltip__button-container"]}"></div>\n\t</div>\n`,
                L = `\n\t<div class="${C["common-tooltip__hotkey-block"]}"></div>\n`,
                P = `\n\t<div class="${C["common-tooltip__hotkey-text"]}"></div>\n`,
                F = (0, v.parseHtmlElement)(M),
                I = (0, v.parseHtmlElement)(L),
                D = (0, v.parseHtmlElement)(P);

            function O(e) {
                return e.querySelector("." + C["common-tooltip__body"])
            }

            function R(e, t) {
                return 10 + e < t.y
            }
            var B = r(26083);
            let N = !1,
                $ = null,
                j = null;
            o.mobiletouch || document.addEventListener("mouseover", (function(e) {
                var t;
                if (null === (t = e.sourceCapabilities) || void 0 === t ? void 0 : t.firesTouchEvents) return;
                const r = e.target,
                    o = e.currentTarget,
                    n = function(e, t, r) {
                        const o = [];
                        for (; e && e !== t;) e.classList && e.classList.contains(r) && o.push(e), e = e.parentElement || (n = e.parentNode) && (n.nodeType === Node.ELEMENT_NODE ? n : null);
                        var n;
                        return o
                    }(r, o, "apply-common-tooltip");
                for (const t of n) {
                    if ("buttons" in e) {
                        if (1 & e.buttons) continue
                    } else if (1 === e.which) continue;
                    const r = () => V(t);
                    if (r()) {
                        const e = e => {
                                e.target instanceof Element && e.target.contains(t) && o(null, !0)
                            },
                            o = (n, i = !1) => {
                                t.removeEventListener("common-tooltip-update", r), t.removeEventListener("mouseleave", o), t.removeEventListener("mousedown", o), document.removeEventListener("scroll", e, {
                                    capture: !0
                                }), j && (j.destroy(), j = null), z(i)
                            };
                        t.addEventListener("common-tooltip-update", r), t.addEventListener("mouseleave", o), t.addEventListener("mousedown", o), document.addEventListener("scroll", e, {
                            capture: !0
                        }), null === j && (j = (0, B.createGroup)({
                            desc: "Tooltip"
                        }), j.add({
                            desc: "Hide",
                            hotkey: 27,
                            handler: o
                        }));
                        break
                    }
                }
            }), !0);
            const W = new MutationObserver(() => {
                    if ($ && $.options.target) {
                        let e;
                        e = "isConnected" in $.options.target ? $.options.target.isConnected : document.body.contains($.options.target), e || z()
                    }
                }),
                V = (e, t = {}) => {
                    const {
                        content: r,
                        ...o
                    } = Y(t), n = k(e), i = Object.assign(n, o);
                    return "none" !== r.type && (i.content = r), !("none" === i.content.type && !i.hotkey) && (i.target = e, U(i), !0)
                },
                U = e => {
                    const t = Y(e),
                        r = E(t);
                    var o;
                    if ($ = {
                            options: t,
                            element: r
                        }, o = r, h(), u && u.appendChild(o), a(), !N) return T(r), void l(() => H(r), function(e) {
                        return "number" != typeof e.tooltipDelay || isNaN(e.tooltipDelay) ? 500 : e.tooltipDelay
                    }(t));
                    const {
                        tooltipDebounce: n
                    } = e;
                    "number" != typeof n || isNaN(n) ? H(r) : l(() => H(r), n)
                };

            function q() {
                h(), N = !1, $ = null
            }
            const z = e => {
                if (a(), W.disconnect(), !$) return;
                if (!e && !N) return;
                const {
                    element: t,
                    options: r
                } = $, o = () => {
                    t.removeEventListener("mouseleave", o), T(t), e ? q() : s = setTimeout(() => {
                        q()
                    }, 250)
                };
                var n, l;
                r.tooltipHideDelay ? (n = () => {
                    t.querySelector(":hover") ? t.addEventListener("mouseleave", o) : o()
                }, l = r.tooltipHideDelay, i = setTimeout(n, l)) : o()
            };

            function H(e) {
                const {
                    options: t
                } = (0, p.ensureNotNull)($);
                if (x(e, t), function(e) {
                        e.classList.toggle(C["common-tooltip--hidden"], !1)
                    }(e), W.observe(document, {
                        childList: !0,
                        subtree: !0
                    }), N = !0, t.forceHideOnMove) {
                    const e = () => {
                        document.removeEventListener("mousemove", e), z()
                    };
                    document.addEventListener("mousemove", e)
                }
            }

            function Y(e) {
                if (function(e) {
                        return "content" in e
                    }(e)) return e;
                const {
                    inner: t,
                    html: r,
                    text: o,
                    ...n
                } = e;
                let i = {
                    type: "none"
                };
                return t && (i = {
                    type: "element",
                    data: t
                }), o && (i = {
                    type: r ? "html" : "text",
                    data: o
                }), {
                    content: i,
                    ...n
                }
            }
        },
        55465: (e, t, r) => {
            "use strict";
            r.d(t, {
                CopyrightPosition: () => o,
                createCopyrightLabel: () => a
            });
            var o, n = r(94184),
                i = r(2444),
                s = r(47325);

            function a({
                svgText: e,
                icon: t,
                theme: r,
                url: a,
                verticalPosition: l = o.Vertical.Bottom,
                horizontalPosition: c = o.Horizontal.End,
                snapToEdge: u = !0,
                isLarge: d = !1
            }) {
                const h = (0, i.mergeThemes)(s, r);
                let p;
                a ? (p = document.createElement("a"), p.href = a, p.target = "_blank", p.rel = "noopener noreferrer") : p = document.createElement("span"), p.className = n(h.label, c === o.Horizontal.Start && h.start, c === o.Horizontal.End && h.end, l === o.Vertical.Top && h.top, l === o.Vertical.Bottom && h.bottom, l === o.Vertical.ChartBottom && h.chartBottom, u && h.snap, d && h.large, "js-copyright-label");
                const f = document.createElement("span");
                f.className = h.logoWrap, f.innerHTML = t;
                const g = document.createElement("span");
                return g.className = h.svgTextWrap, g.innerHTML = e, p.append(f, g), p
            }! function(e) {
                let t, r;
                ! function(e) {
                    e[e.Bottom = 0] = "Bottom", e[e.Top = 1] = "Top", e[e.ChartBottom = 2] = "ChartBottom"
                }(t = e.Vertical || (e.Vertical = {})),
                function(e) {
                    e[e.Start = 0] = "Start", e[e.End = 1] = "End"
                }(r = e.Horizontal || (e.Horizontal = {}))
            }(o || (o = {}))
        },
        67889: (e, t, r) => {
            "use strict";

            function o(e, t, o) {
                return "lentaru" === e ? Promise.all([r.e(45423), r.e(1523)]).then(r.bind(r, 65145)).then(e => e.getLentaCopyrightData()) : "cmoneycomtw" === e ? Promise.all([r.e(63158), r.e(4470), r.e(42091)]).then(r.bind(r, 49631)).then(e => e.getCmoneycomtwCopyrightData(t, o)) : Promise.all([r.e(63158), r.e(53259)]).then(r.bind(r, 2345)).then(e => e.getTradingViewCopyrightData(t, o))
            }
            r.d(t, {
                getCustomerCopyrightData: () => o
            })
        },
        87780: (e, t, r) => {
            "use strict";
            r.d(t, {
                createEmbedWidgetWrapper: () => s
            });
            r(74025);
            var o = r(16282),
                n = r(55465),
                i = r(67889);

            function s(e, t, r = {}) {
                if (null === e.parentElement) return console.warn("Can not wrap 'elWidgetContainer' because it has no parentElement"), e;
                let s = null,
                    a = document.querySelector(".js-embed-widget-body");
                const l = null !== a;
                if (l) {
                    a = (0, o.ensureNotNull)(a), s = (0, o.ensureNotNull)(a.parentElement);
                    let e = document.querySelector(".js-embed-widget-head");
                    null === e && (e = document.createElement("div"), e.classList.add("tv-embed-widget-wrapper__header"), e.classList.add("js-embed-widget-head"), s.insertBefore(e, a))
                } else s = document.createElement("div"), s.classList.add("tv-embed-widget-wrapper"), s.innerHTML = '<div class="tv-embed-widget-wrapper__header js-embed-widget-head"></div><div class="tv-embed-widget-wrapper__body js-embed-widget-body"></div>', a = s.querySelector(".js-embed-widget-body");
                if (r.overflowAuto && a.classList.add("tv-embed-widget-wrapper__body--overflow_auto"), r.showBorderOnTransparent && a.classList.add("tv-embed-widget-wrapper__body--border-on-transparent"), !r.isWhiteLabel) {
                    const e = !document.documentElement.classList.contains("is-transparent") || Boolean(r.showBorderOnTransparent);
                    (0, i.getCustomerCopyrightData)(r.customer, r.locale, t).then(t => {
                        (0, o.ensureNotNull)(a).appendChild((0, n.createCopyrightLabel)({
                            snapToEdge: e,
                            ...r.copyrightOptions,
                            ...t
                        }))
                    })
                }
                return l || (e.parentElement.insertBefore(s, e), a.appendChild(e)), e
            }
        },
        92084: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                LEFT_ARROW: () => o,
                UP_ARROW: () => n,
                RIGHT_ARROW: () => i,
                DOWN_ARROW: () => s,
                ENTER: () => a,
                ESC: () => l,
                SPACE: () => c,
                SLASH: () => u
            });
            const o = 37,
                n = 38,
                i = 39,
                s = 40,
                a = 13,
                l = 27,
                c = 32,
                u = 47
        },
        18826: (e, t, r) => {
            "use strict";
            r.d(t, {
                ColorSelector: () => g
            });
            var o, n = r(67294),
                i = r(807),
                s = r(47116),
                a = r(94184),
                l = r.n(a),
                c = r(30456),
                u = r(22517),
                d = r(25357),
                h = r(13387),
                p = r(6323);
            const f = (0, s.makeSwitchGroupItem)(((o = class extends n.PureComponent {
                constructor() {
                    super(...arguments), this._onClickIfChecked = () => {
                        this.props.onClickIfChecked && this.props.onClickIfChecked(this.props.value)
                    }, this._onChange = () => {
                        this.props.onChange && this.props.onChange(this.props.value)
                    }
                }
                render() {
                    var e, t;
                    const {
                        className: r,
                        value: o,
                        name: i,
                        checked: s
                    } = this.props, a = null !== (t = null === (e = this.context) || void 0 === e ? void 0 : e.type) && void 0 !== t ? t : "menu", u = o;
                    return n.createElement("label", {
                        className: l()(r, p.wrap, "drawer" === a && p.large)
                    }, n.createElement("input", {
                        className: p.input,
                        type: "radio",
                        name: i,
                        value: o,
                        checked: s,
                        onChange: this._onChange,
                        onClick: s ? this._onClickIfChecked : void 0
                    }), n.createElement("div", {
                        className: l()(p.box, p[u], "drawer" === a && p.large)
                    }, s ? n.createElement(c.Icon, {
                        icon: d
                    }) : n.createElement("div", {
                        className: p.pickerDot
                    }, n.createElement(c.Icon, {
                        className: p.hoverDot,
                        icon: h
                    }))))
                }
            }).contextType = u.ContextMenuContext, o.defaultProps = {
                value: i.ListColor.Red
            }, o));
            class g extends n.PureComponent {
                constructor() {
                    super(...arguments), this._onChange = e => {
                        this.props.onChange && this.props.onChange(e)
                    }
                }
                render() {
                    const {
                        buttonClassName: e,
                        value: t,
                        onSelectedClick: r
                    } = this.props, o = i.LIST_COLORS.map((t, o) => n.createElement(f, {
                        className: e,
                        onClickIfChecked: r,
                        key: o,
                        value: t
                    }));
                    return n.createElement(s.SwitchGroup, {
                        name: "color-selector",
                        onChange: this._onChange,
                        values: [t || ""]
                    }, o)
                }
            }
        },
        76242: (e, t, r) => {
            "use strict";
            r.d(t, {
                PopupColorSelector: () => y
            });
            var o = r(67294),
                n = r(73935),
                i = r(29791),
                s = r(15233),
                a = r(79405),
                l = r(48693),
                c = r(22643),
                u = r(94615),
                d = r(82755),
                h = r(72625),
                p = r(18826),
                f = r(95355),
                g = r(42209);
            class m extends o.PureComponent {
                constructor() {
                    super(...arguments), this._popUpElem = null, this._onChange = e => {
                        this.props.onSelectColor(e), this.props.hide()
                    }, this._onTargetMouseLeave = e => {
                        const t = !!e.relatedTarget.nodeName,
                            r = e.relatedTarget === this._popUpElem,
                            o = this._popUpElem && t && this._popUpElem.contains(e.relatedTarget);
                        r || o || this.props.hide()
                    }, this._onPopUpMouseLeave = e => {
                        const t = !!e.nativeEvent.relatedTarget.nodeName,
                            r = e.nativeEvent.relatedTarget === this.props.elem,
                            o = t && this.props.elem.contains(e.nativeEvent.relatedTarget);
                        r || o || this.props.hide()
                    }, this._onTouchStart = e => {
                        const t = !!e.target.nodeName,
                            r = e.target === this.props.elem,
                            o = e.target === this._popUpElem,
                            n = t && this.props.elem.contains(e.target),
                            i = this._popUpElem && t && this._popUpElem.contains(e.target);
                        r || n || o || i || this.props.hide()
                    }, this._setPopUpElem = e => {
                        this._popUpElem = e
                    }
                }
                componentDidMount() {
                    document.documentElement && (f.mobiletouch ? document.documentElement.addEventListener("touchstart", this._onTouchStart) : (this.props.elem.addEventListener("mouseleave", this._onTargetMouseLeave), document.body.addEventListener("scroll", this.props.hide)))
                }
                componentWillUnmount() {
                    document.documentElement && (f.mobiletouch ? document.documentElement.removeEventListener("touchstart", this._onTouchStart) : this.props.elem && (this.props.elem.removeEventListener("mouseleave", this._onTargetMouseLeave), document.documentElement.removeEventListener("scroll", this.props.hide)))
                }
                render() {
                    const e = {
                        top: 0,
                        left: 0
                    };
                    if (this.props.elem) {
                        const t = this.props.elem.getBoundingClientRect();
                        e.top = t.top + t.height / 2, e.left = t.left + ((0, d.isRtl)() ? 0 : t.width)
                    }
                    return o.createElement(h.Portal, null, o.createElement("div", {
                        style: e,
                        className: g.popup,
                        ref: this._setPopUpElem,
                        onMouseLeave: f.mobiletouch ? void 0 : this._onPopUpMouseLeave
                    }, o.createElement("div", {
                        className: g.wrapper
                    }, o.createElement("div", {
                        className: g.selector
                    }, o.createElement("div", {
                        className: g.arrowLeft
                    }), o.createElement(p.ColorSelector, {
                        buttonClassName: g.colorSelectButton,
                        value: this.props.currentColor,
                        onChange: this._onChange
                    })))))
                }
            }
            var _ = r(22517);

            function v(e) {
                const {
                    actions: t,
                    ...r
                } = e;
                return o.createElement(a.MatchMedia, {
                    rule: s.DialogBreakpoints.TabletSmall
                }, e => e && t ? o.createElement(l.DrawerManager, null, o.createElement(_.ContextMenuContext.Provider, {
                    value: {
                        type: "drawer"
                    }
                }, o.createElement(u.Drawer, {
                    onClose: r.hide,
                    position: "Bottom"
                }, o.createElement(c.ContextMenuList, {
                    items: t
                })))) : o.createElement(m, { ...r
                }))
            }
            let b = null;
            var y;
            ! function(e) {
                function t() {
                    b && n.unmountComponentAtNode(b)
                }
                e.show = function(e) {
                    b || (b = document.createElement("div")), t(), n.render(o.createElement(i.SlotContext.Provider, {
                        value: e.manager || null
                    }, o.createElement(v, { ...e,
                        hide: t
                    })), b)
                }, e.hide = t
            }(y || (y = {}))
        },
        1970: (e, t, r) => {
            "use strict";
            r.d(t, {
                candlestickRanges: () => P
            });
            var o = r(8107),
                n = r(84613),
                i = r(85233),
                s = r(68258),
                a = r(14477),
                l = r(194),
                c = r(88923),
                u = r(54769),
                d = r(79776),
                h = r(90983),
                p = r(79799),
                f = r(73345),
                g = r(5066),
                m = r(59647),
                _ = r(53568),
                v = r(9008),
                b = r(93152),
                y = r(35923),
                w = r(95931),
                S = r(2843),
                C = r(77719),
                k = r(54587),
                E = r(37775),
                x = r(25346),
                T = r(1166),
                A = r(51572),
                M = r(50661),
                L = r(24273);
            const P = [{
                key: "Candle.3BlackCrows",
                name: (0, o.t)("Three Black Crows"),
                svg: n
            }, {
                key: "Candle.3WhiteSoldiers",
                name: (0, o.t)("Three White Soldiers"),
                svg: i
            }, {
                key: "Candle.AbandonedBaby.Bearish",
                name: (0, o.t)("Abandoned Baby Bearish"),
                svg: s
            }, {
                key: "Candle.AbandonedBaby.Bullish",
                name: (0, o.t)("Abandoned Baby Bullish"),
                svg: a
            }, {
                key: "Candle.Doji",
                name: (0, o.t)("Doji"),
                svg: l
            }, {
                key: "Candle.Doji.Dragonfly",
                name: (0, o.t)("Dragonfly Doji"),
                svg: c
            }, {
                key: "Candle.Doji.Gravestone",
                name: (0, o.t)("Gravestone Doji"),
                svg: u
            }, {
                key: "Candle.Engulfing.Bearish",
                name: (0, o.t)("Bearish Engulfing"),
                svg: d
            }, {
                key: "Candle.Engulfing.Bullish",
                name: (0, o.t)("Bullish Engulfing"),
                svg: h
            }, {
                key: "Candle.EveningStar",
                name: (0, o.t)("Evening Star"),
                svg: p
            }, {
                key: "Candle.Hammer",
                name: (0, o.t)("Hammer"),
                svg: f
            }, {
                key: "Candle.HangingMan",
                name: (0, o.t)("Hanging Man"),
                svg: g
            }, {
                key: "Candle.Harami.Bearish",
                name: (0, o.t)("Bearish Harami"),
                svg: m
            }, {
                key: "Candle.Harami.Bullish",
                name: (0, o.t)("Bullish Harami"),
                svg: _
            }, {
                key: "Candle.InvertedHammer",
                name: (0, o.t)("Inverted Hammer"),
                svg: v
            }, {
                key: "Candle.Kicking.Bearish",
                name: (0, o.t)("Kicking Bearish"),
                svg: b
            }, {
                key: "Candle.Kicking.Bullish",
                name: (0, o.t)("Kicking Bullish"),
                svg: y
            }, {
                key: "Candle.LongShadow.Lower",
                name: (0, o.t)("Long Lower Shadow"),
                svg: w
            }, {
                key: "Candle.LongShadow.Upper",
                name: (0, o.t)("Long Upper Shadow"),
                svg: S
            }, {
                key: "Candle.Marubozu.Black",
                name: (0, o.t)("Marubozu Black"),
                svg: C
            }, {
                key: "Candle.Marubozu.White",
                name: (0, o.t)("Marubozu White"),
                svg: k
            }, {
                key: "Candle.MorningStar",
                name: (0, o.t)("Morning Star"),
                svg: E
            }, {
                key: "Candle.ShootingStar",
                name: (0, o.t)("Shooting Star"),
                svg: x
            }, {
                key: "Candle.SpinningTop.Black",
                name: (0, o.t)("Spinning Top Black"),
                svg: T
            }, {
                key: "Candle.SpinningTop.White",
                name: (0, o.t)("Spinning Top White"),
                svg: A
            }, {
                key: "Candle.TriStar.Bearish",
                name: (0, o.t)("Tri Star Bearish"),
                svg: M
            }, {
                key: "Candle.TriStar.Bullish",
                name: (0, o.t)("Tri Star Bullish"),
                svg: L
            }].sort((e, t) => e.name.localeCompare(t.name))
        },
        86872: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    ScreenerMarketDialogMode: () => o
                }),
                function(e) {
                    e.Single = "single", e.Multi = "multi"
                }(o || (o = {}))
        },
        39637: (e, t, r) => {
            "use strict";
            var o = r(8107).t;
            t.operators = {
                less: o("Below"),
                eless: o("Below or Equal"),
                greater: o("Above"),
                egreater: o("Above or Equal"),
                crosses: o("Crosses"),
                crosses_above: o("Crosses Up"),
                crosses_below: o("Crosses Down"),
                in_range: o("Between"),
                not_in_range: o("Outside"),
                equal: o("Equal"),
                nequal: o("Not Equal")
            }
        },
        24481: (e, t, r) => {
            "use strict";
            r.d(t, {
                ScanFields: () => o,
                earningsCalendarFieldSets: () => l,
                getDefaultFieldSetsByScreenerType: () => c
            });
            var o, n = r(8107),
                i = r(16282),
                s = r(53808);
            ! function(e) {
                e.BaseCurrencyLogoId = "base_currency_logoid", e.Change = "change", e.Country = "country", e.CurrencyLogoId = "currency_logoid", e.Description = "description", e.Industry = "industry", e.LogoId = "logoid", e.Name = "name", e.Performance1M = "Perf.1M", e.Performance3M = "Perf.3M", e.Performance6M = "Perf.6M", e.PerformanceW = "Perf.W", e.PerformanceY = "Perf.Y", e.PerformanceYTD = "Perf.YTD", e.Sector = "sector"
            }(o || (o = {}));
            const a = [{
                    id: "overview",
                    title: (0, n.t)("Overview"),
                    screenerTypeContent: {
                        stock: {
                            stock: [o.LogoId, o.Name, "close", "change", "change_abs", "Recommend.All", "volume", "Value.Traded", "market_cap_basic", "price_earnings_ttm", "earnings_per_share_basic_ttm", "number_of_employees", o.Sector, "description", "type"],
                            _sector: [o.LogoId, o.Name, "close", "change", "change_abs", "Recommend.All", "volume", "Value.Traded", "market_cap_basic", "price_earnings_ttm", "earnings_per_share_basic_ttm", "number_of_employees", "industry", "description", "type"]
                        },
                        forex: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "close", "change", "change_abs", "bid", "ask", "high", "low", "Recommend.All", "description", "type"],
                        crypto: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "close", "change", "change_abs", "high", "low", "volume", "Recommend.All", "exchange", "description"],
                        crypto_mkt: [o.BaseCurrencyLogoId, o.Sector, "market_cap_calc", "market_cap_diluted_calc", "close", "total_shares_outstanding", "total_shares_diluted", "total_value_traded", "change"],
                        crypto_mkt_by_symbol: [o.CurrencyLogoId, o.Name, "close", "change", "change_abs", "high", "low", "volume", "Recommend.All", "exchange", "description"],
                        crypto_by_symbol: [o.CurrencyLogoId, o.Name, "exchange", "close", "change", "change_abs", "high", "low", "volume", "Recommend.All", "description"],
                        futures: [o.LogoId, o.Name, "close", "change", "change_abs", "high", "low", "Recommend.All", "description"],
                        continuous_futures: [o.LogoId, o.Name, "expiration", "close", "change", "change_abs", "high", "low", "Recommend.All", "description"],
                        cfd: [o.LogoId, o.Name, "close", "change", "change_abs", "high", "low", "Recommend.All", "description"],
                        sector: ["description", "market_cap_basic", "dividend_yield_recent", "change", "volume", "elements", "basic_elements"],
                        industry: ["description", "market_cap_basic", "dividend_yield_recent", "change", "volume", o.Sector, "elements"],
                        currency: [o.LogoId, o.Name, "close", "change", "change_abs", "high", "low", "Recommend.All", "description"],
                        bonds: [o.LogoId, o.Name, "coupon", "maturity_date", "close", "change", "change_abs", "high", "low", "Recommend.All", "description"],
                        pre_market: [o.LogoId, o.Name, "premarket_close", "premarket_change_abs", "premarket_change", "premarket_volume", "premarket_gap", "close", "change", "volume", "market_cap_basic"],
                        post_market: [o.LogoId, o.Name, "postmarket_close", "postmarket_change_abs", "postmarket_change", "postmarket_volume", "close", "change", "volume", "market_cap_basic"]
                    },
                    content: [],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.Forex, s.ScreenerType.Futures, s.ScreenerType.ContinuousFutures, s.ScreenerType.Cfd, s.ScreenerType.Crypto, s.ScreenerType.CryptoMkt, s.ScreenerType.CryptoMktBySymbol, s.ScreenerType.CryptoBySymbol, s.ScreenerType.Sector, s.ScreenerType.Industry, s.ScreenerType.Currency, s.ScreenerType.Bonds, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "performance",
                    title: (0, n.t)("Performance"),
                    screenerTypeContent: {
                        stock: [o.LogoId, o.Name, "description", "type", "change.1", "change.5", "change.15", "change.60", "change.240", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "beta_1_year", "Volatility.D"],
                        futures: [o.LogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        continuous_futures: [o.LogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        forex: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        crypto: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        crypto_mkt: [o.BaseCurrencyLogoId, o.Sector, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        crypto_mkt_by_symbol: [o.CurrencyLogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        crypto_by_symbol: [o.CurrencyLogoId, o.Name, "exchange", "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        cfd: [o.LogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        sector: ["description", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y"],
                        industry: ["description", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y"],
                        currency: [o.LogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"],
                        bonds: [o.LogoId, o.Name, "description", "type", "change", "change.1W", "change.1M", "Perf.3M", "Perf.6M", "Perf.YTD", "Perf.Y", "Volatility.D"]
                    },
                    content: [],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.Forex, s.ScreenerType.Futures, s.ScreenerType.ContinuousFutures, s.ScreenerType.Cfd, s.ScreenerType.Crypto, s.ScreenerType.CryptoMkt, s.ScreenerType.CryptoBySymbol, s.ScreenerType.CryptoMktBySymbol, s.ScreenerType.Sector, s.ScreenerType.Industry, s.ScreenerType.Currency, s.ScreenerType.Bonds, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "extended_hours",
                    title: (0, n.t)("Extended Hours"),
                    content: [o.LogoId, o.Name, "description", "premarket_close", "premarket_change", "premarket_gap", "premarket_volume", "close", "change", "volume", "postmarket_close", "postmarket_change", "postmarket_volume", "Recommend.All", "market_cap_basic"],
                    screeners: [s.ScreenerType.Stock],
                    showOnWidget: !1
                }, {
                    id: "valuation",
                    title: (0, n.t)("Valuation"),
                    content: [o.LogoId, o.Name, "description", "type", "close", "market_cap_basic", "price_earnings_ttm", "price_revenue_ttm", "earnings_per_share_basic_ttm", "last_annual_eps", "enterprise_value_ebitda_ttm", "enterprise_value_fq", "total_shares_outstanding_fundamental"],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "dividends",
                    title: (0, n.t)("Dividends"),
                    content: [o.LogoId, o.Name, "description", "type", "close", "dividend_yield_recent", "dividends_paid", "dps_common_stock_prim_issue_fy"],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "margins",
                    title: (0, n.t)("Margins", {
                        context: "screener"
                    }),
                    content: [o.LogoId, o.Name, "description", "type", "gross_margin", "operating_margin", "pre_tax_margin", "after_tax_margin"],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "income_statement",
                    title: (0, n.t)("Income Statement"),
                    content: [o.LogoId, o.Name, "description", "type", "basic_eps_net_income", "earnings_per_share_basic_ttm", "earnings_per_share_diluted_ttm", "ebitda", "gross_profit_fq", "gross_profit", "total_revenue", "last_annual_eps", "last_annual_revenue", "net_income"],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "balance_sheet",
                    title: (0, n.t)("Balance Sheet"),
                    content: [o.LogoId, o.Name, "description", "type", "current_ratio", "debt_to_equity", "net_debt", "quick_ratio", "total_assets", "total_debt", "total_current_assets"],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "oscillators",
                    title: (0, n.t)("Oscillators"),
                    screenerTypeContent: {
                        stock: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        forex: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        futures: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        continuous_futures: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        crypto: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        crypto_mkt: [o.BaseCurrencyLogoId, o.Sector, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        crypto_mkt_by_symbol: [o.CurrencyLogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        crypto_by_symbol: [o.CurrencyLogoId, o.Name, "exchange", "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        cfd: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        currency: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"],
                        bonds: [o.LogoId, o.Name, "Recommend.Other", "ADX", "AO", "ATR", "CCI20", "MACD.macd", "MACD.signal", "Mom", "RSI", "Stoch.K", "Stoch.D", "description", "type"]
                    },
                    content: [],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.Forex, s.ScreenerType.Futures, s.ScreenerType.ContinuousFutures, s.ScreenerType.Cfd, s.ScreenerType.Crypto, s.ScreenerType.CryptoMkt, s.ScreenerType.CryptoMktBySymbol, s.ScreenerType.CryptoBySymbol, s.ScreenerType.Currency, s.ScreenerType.Bonds, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }, {
                    id: "moving_averages",
                    title: (0, n.t)("Trend-Following"),
                    screenerTypeContent: {
                        stock: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        forex: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        futures: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        continuous_futures: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        crypto: [o.BaseCurrencyLogoId, o.CurrencyLogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        crypto_mkt: [o.BaseCurrencyLogoId, o.Sector, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        crypto_mkt_by_symbol: [o.CurrencyLogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        crypto_by_symbol: [o.CurrencyLogoId, o.Name, "exchange", "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        cfd: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        currency: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"],
                        bonds: [o.LogoId, o.Name, "Recommend.MA", "close", "SMA20", "SMA50", "SMA200", "BB.upper", "BB.lower", "description", "type"]
                    },
                    content: [],
                    screeners: [s.ScreenerType.Stock, s.ScreenerType.StockCompact, s.ScreenerType.Forex, s.ScreenerType.Futures, s.ScreenerType.ContinuousFutures, s.ScreenerType.Cfd, s.ScreenerType.Crypto, s.ScreenerType.CryptoMkt, s.ScreenerType.CryptoMktBySymbol, s.ScreenerType.CryptoBySymbol, s.ScreenerType.Currency, s.ScreenerType.Bonds, s.ScreenerType.PreMarket, s.ScreenerType.PostMarket],
                    showOnWidget: !0
                }],
                l = [o.LogoId, "name", "market_cap_basic", "earnings_per_share_forecast_next_fq", "earnings_per_share_fq", "eps_surprise_fq", "eps_surprise_percent_fq", "revenue_forecast_next_fq", "revenue_fq", "earnings_release_next_date", "earnings_release_next_calendar_date", "earnings_release_next_time", "description", "type"];

            function c(e) {
                const t = {
                    screenerType: s.ScreenerType.Stock,
                    markets: ["stock"],
                    isCompact: !1,
                    subtype: "",
                    isOnWidget: !1
                };
                let r = a;
                const o = Object.assign(t, e),
                    {
                        screenerType: n,
                        isCompact: l,
                        subtype: c,
                        isOnWidget: u
                    } = o,
                    {
                        markets: d
                    } = o;
                return r = r.filter(e => {
                    if (n === s.ScreenerType.Stock) {
                        const t = l ? n + "_compact" : n;
                        return e.screeners.includes(t)
                    }
                    return e.screeners.includes(n)
                }), u && (r = r.filter(e => !0 === e.showOnWidget)), r.forEach(e => {
                    if (void 0 !== e.screenerTypeContent) {
                        const r = e.screenerTypeContent[(0, i.ensureDefined)(n)] || e.screenerTypeContent.stock;
                        if (t = r, Array.isArray(t)) e.content = (0, i.ensureDefined)(r);
                        else {
                            const t = Object.keys(r),
                                o = d.reduce((e, t) => (e.push(`${(0,i.ensureDefined)(t)}_${(0,i.ensureDefined)(c)}`), e.push("" + (0, i.ensureDefined)(c)), e.push((0, i.ensureDefined)(t)), e), []),
                                n = function(e, t) {
                                    for (const r of e)
                                        if (t.includes(r)) return r;
                                    return "stock"
                                }([...new Set(o)], t);
                            e.content = r[n]
                        }
                    }
                    var t;
                    u && (e.content = e.content.filter(e => "description" !== e))
                }), r
            }
        },
        34346: (e, t, r) => {
            "use strict";
            r.d(t, {
                getBackendUrl: () => n
            });
            const o = window.SCREENER_HOST || "https://scanner.tradingview.com";

            function n(e, t = e) {
                return Array.isArray(e) ? e.length > 1 ? o + "/global/" : `${o}/${t[0]}/` : `${o}/${t}/`
            }
        },
        53808: (e, t, r) => {
            "use strict";
            var o;

            function n(e) {
                return void 0 === e ? o.Stock : ["forex", "crypto"].includes(e) ? e : o.Stock
            }
            r.d(t, {
                    ScreenerType: () => o,
                    getScreenerType: () => n
                }),
                function(e) {
                    e.Bonds = "bonds", e.Cfd = "cfd", e.ContinuousFutures = "continuous_futures", e.Crypto = "crypto", e.CryptoBySymbol = "crypto_by_symbol", e.CryptoMkt = "crypto_mkt", e.CryptoMktBySymbol = "crypto_mkt_by_symbol", e.Currency = "currency", e.Forex = "forex", e.Futures = "futures", e.Industry = "industry", e.PostMarket = "post_market", e.PreMarket = "pre_market", e.Sector = "sector", e.Stock = "stock", e.StockCompact = "stock_compact"
                }(o || (o = {}))
        },
        84806: (e, t, r) => {
            "use strict";
            r.d(t, {
                mutateSimpleDate: () => n
            });
            var o = r(75496);

            function n(e) {
                if (e && (0, o.isNumber)(e)) {
                    const t = e.toString();
                    return `${t.substring(0,4)}-${t.substring(4,6)}-${t.substring(6)}`
                }
                return "—"
            }
        },
        5303: (e, t, r) => {
            "use strict";

            function o(e) {
                return {
                    standalone: Boolean(e.standalone),
                    originalStandalone: Boolean(e.originalStandalone),
                    onWidget: Boolean(e.onWidget)
                }
            }

            function n(e) {
                const t = o(e);
                return t.standalone && t.originalStandalone && !t.onWidget
            }

            function i(e) {
                const t = o(e);
                return t.standalone && !t.originalStandalone && !t.onWidget
            }

            function s(e) {
                const t = o(e);
                return !t.standalone && t.originalStandalone && !t.onWidget
            }

            function a(e) {
                return o(e).onWidget
            }

            function l(e) {
                return n(e) ? "screener" : i(e) ? "market" : s(e) ? "chart" : "widget"
            }
            r.d(t, {
                isScreenerPage: () => n,
                isMarketPage: () => i,
                isChartPage: () => s,
                isExternalWidget: () => a,
                getScreenerPage: () => l
            })
        },
        94801: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    UserActionState: () => o
                }),
                function(e) {
                    e.Click = "clicked", e.ApplyFilters = "filters_applied", e.Type = "typed", e.Slide = "slided", e.Drag = "drag"
                }(o || (o = {}))
        },
        72102: (e, t, r) => {
            "use strict";
            r.d(t, {
                DispatchContextMenuActionEvent: () => n
            });
            var o = r(94801);
            class n {
                constructor(e, t, r) {
                    this.event = "context_menu_action", this.state = o.UserActionState.Click, this.source = e, this.value = r.toString(), this.location = t
                }
            }
        },
        62185: (e, t, r) => {
            "use strict";
            r.d(t, {
                ChangeMarketEvent: () => o,
                ChangeMarketSelectionModeEvent: () => n
            });
            class o {
                constructor(e) {
                    this.event = "change_market", this.source = "market_selector", this.location = "toolbar", this.state = "", this.value = e
                }
            }
            class n {
                constructor(e) {
                    this.event = "change_market_selection_mode", this.source = "market_selection_mode_switch", this.location = "market_dialog", this.state = "", this.value = e
                }
            }
        },
        38723: (e, t, r) => {
            "use strict";
            r.d(t, {
                initScreenerInstance: () => s,
                sendSnowPlowData: () => a,
                getSnowPlowRefreshInterval: () => l,
                getColumnSetNameForSnowPlow: () => c,
                getFilterSetNameForSnowPlow: () => u
            });
            var o = r(71073),
                n = r(5303);
            let i;

            function s(e) {
                i = e
            }

            function a(e) {
                let t = "",
                    r = "";
                i && (t = (0, n.getScreenerPage)(i.screenerBridge), r = i.screenerType);
                (!i || !(0, n.isExternalWidget)(i.screenerBridge)) && (0, o.getTracker)().then(o => {
                    o && o.trackScreenerHighLevel(e, r, t)
                })
            }

            function l(e) {
                return 1 === e ? "auto" : -1 === e ? "manual" : "" + e
            }

            function c(e) {
                return i.defaultFieldSets.find(t => t.id === e) ? e : "custom"
            }

            function u(e) {
                return i.defaultFilterSets.find(t => t.id === e) ? e : "custom"
            }
        },
        49617: (e, t, r) => {
            "use strict";
            r.d(t, {
                applyEarningsCalendarNextReleaseDate: () => ce,
                applyEarningsCalendarReleaseDate: () => de,
                applyEarningsCalendarToFields: () => se,
                applyScreenerTypeToFields: () => oe,
                conditionByField: () => ee,
                fields: () => X,
                getAliasFiledName: () => Z,
                getFieldFormatter: () => he,
                getFieldTitle: () => me,
                getPriceFieldFormatter: () => fe,
                isFieldToDisplay: () => ge,
                isValueAbsent: () => R,
                translatedMetaFieldNames: () => F
            });
            var o = r(24754),
                n = r(11228),
                i = r(81293),
                s = r(14704),
                a = r(8107);
            const l = new RegExp(/0+$/);
            class c extends n.PriceFormatter {
                constructor(e, t, r, o) {
                    if (void 0 !== r) throw new Error("Fractional should not be used with this formatter");
                    super(e, t, r, o)
                }
                format(e, t, r) {
                    const o = e.toString();
                    if (-1 !== o.indexOf("e-")) {
                        const e = o.split("e-"),
                            t = Number(e[0]),
                            r = Number(e[1]);
                        return this._fractionalLength && r > this._fractionalLength + 1 ? Number(0).toFixed(2) : `${t<0?"−":""}0.${"0".repeat(r-1)}${Math.abs(Math.round(t))}`
                    } {
                        let o = super.format(e, t, r);
                        o = o.replace(l, "");
                        const [i, s] = o.split(n.formatterOptions.decimalSign);
                        return s && s.length >= 2 ? o : `${i}${n.formatterOptions.decimalSign}${((s||"")+"00").substring(0,2)}`
                    }
                }
            }
            var u = r(15701),
                d = r(5956),
                h = r(80691),
                p = r(13548),
                f = r(7137),
                g = r(84806),
                m = r(94972);
            const _ = {
                    common: ["common", "foreign-issuer"],
                    stock: ["common"],
                    dr: ["", "foreign-issuer"],
                    preferred: ["preferred"],
                    fund: ["fund"],
                    structured: [""]
                },
                v = {
                    closedend: ["closedend"],
                    etf: ["etf", "etf,odd", "etf,otc", "etf,cfd"],
                    etn: ["etn"],
                    mutual: ["mutual"],
                    reit: ["reit", "reit,cfd", "trust,reit"],
                    trust: ["trust"],
                    unit: ["unit"]
                };

            function b(e) {
                let t = [],
                    r = [];
                return ! function(e) {
                    return e in v
                }(e) ? ! function(e) {
                    return "common" === e || "preferred" === e || "stock" === e
                }(e) ? ! function(e) {
                    return e in _
                }(e) ? t = [e] : (t = [e], r = _[e]) : (t.push("stock"), r = _[e]) : (t.push("fund"), r = v[e]), [t, r]
            }

            function y(e, t) {
                const r = (0, m.uniq)(t),
                    o = 1 === r.length;
                return {
                    left: e,
                    operation: o ? "equal" : "in_range",
                    right: o ? r[0] : r
                }
            }
            var w = r(18194),
                S = r(4033),
                C = r(94911),
                k = r(1970);
            const E = new c(1e8, 1),
                x = new n.PriceFormatter(100, 1, !1),
                T = new n.PriceFormatter(1, 1, !1),
                A = new i.VolumeFormatter,
                M = new s.PercentageFormatter,
                L = new s.PercentageFormatter(1),
                P = new class {
                    constructor(e) {
                        this._formatStr = e || "%y-%m-%d"
                    }
                    format(e) {
                        const t = new Date(1e3 * e);
                        return this._formatStr.replace("%y", (0, n.numberToStringWithLeadingZero)(t.getUTCFullYear(), 4)).replace("%m", (0, n.numberToStringWithLeadingZero)(t.getUTCMonth() + 1, 2)).replace("%d", (0, n.numberToStringWithLeadingZero)(t.getUTCDate(), 2))
                    }
                },
                F = {
                    Any: (0, a.t)("Any"),
                    Exotic: (0, a.t)("Exotic"),
                    Major: (0, a.t)("Major"),
                    Minor: (0, a.t)("Minor"),
                    Africa: (0, a.t)("Africa"),
                    Americas: (0, a.t)("Americas"),
                    Asia: (0, a.t)("Asia"),
                    Europe: (0, a.t)("Europe"),
                    Pacific: (0, a.t)("Pacific"),
                    "Middle East": (0, a.t)("Middle East")
                },
                I = [{
                    key: "today",
                    name: (0, a.t)("Today")
                }, {
                    key: "tomorrow",
                    name: (0, a.t)("Tomorrow")
                }, {
                    key: "yesterday",
                    name: (0, a.t)("Yesterday")
                }, {
                    key: "next_five",
                    name: (0, a.t)("Next 5 Days")
                }, {
                    key: "prev_five",
                    name: (0, a.t)("Previous 5 Days")
                }, {
                    key: "this_week",
                    name: (0, a.t)("This Week")
                }, {
                    key: "next_week",
                    name: (0, a.t)("Next Week")
                }, {
                    key: "prev_week",
                    name: (0, a.t)("Previous Week")
                }, {
                    key: "this_month",
                    name: (0, a.t)("This Month")
                }],
                D = ["today", "yesterday", "prev_five", "prev_week", "this_week", "this_month"],
                O = ["today", "tomorrow", "next_five", "next_week", "this_week", "this_month"],
                R = e => null == e || "" === e.toString().trim(),
                B = e => t => {
                    const r = W(t, I);
                    if (r) {
                        const t = V(r);
                        if (t) return ((e, t, r = "earnings_release_date,earnings_release_next_date") => [{
                            left: r,
                            operation: "in_range",
                            right: [e / 1e3, t / 1e3]
                        }, {
                            left: r,
                            operation: "nequal",
                            right: t / 1e3
                        }])(t[0], t[1], e)
                    }
                    return !1
                },
                N = (e, t) => Object.keys(t).find(r => t[r] === e) || e,
                $ = (e, t, r, o) => {
                    const n = o.filter(t => t[e] === r);
                    return n.length > 0 ? n[0][t] : ""
                },
                j = (e, t) => $("key", "name", e, t),
                W = (e, t) => $("name", "key", e, t),
                V = e => {
                    const t = S.get_timezone((0, C.getCurrentTimezone)()),
                        r = (() => {
                            const e = S.get_timezone((0, C.getCurrentTimezone)()),
                                t = new Date,
                                r = S.utc_to_cal(e, t.getTime());
                            return S.get_cal(e, r.getUTCFullYear(), r.getUTCMonth(), r.getUTCDate())
                        })();
                    let o, n;
                    if ("today" === e) o = r.getTime(), n = S.add_days_considering_dst(t, r, 1).getTime();
                    else if ("tomorrow" === e) o = S.add_days_considering_dst(t, r, 1).getTime(), n = S.add_days_considering_dst(t, r, 2).getTime();
                    else if ("yesterday" === e) {
                        const e = 6e4;
                        o = S.add_days_considering_dst(t, r, -1).getTime(), n = r.getTime() - e
                    } else if ("next_five" === e) o = S.add_days_considering_dst(t, r, 1).getTime(), n = S.add_days_considering_dst(t, r, 5).getTime();
                    else if ("prev_five" === e) o = S.add_days_considering_dst(t, r, -5).getTime(), n = r.getTime();
                    else if ("this_week" === e) {
                        const e = (r.getDay() + 6) % 7;
                        o = S.add_days_considering_dst(t, r, -e).getTime(),
                            n = S.add_days_considering_dst(t, r, 7 - e).getTime()
                    } else if ("next_week" === e) {
                        const e = (r.getDay() + 6) % 7 - 7;
                        o = S.add_days_considering_dst(t, r, -e).getTime(), n = S.add_days_considering_dst(t, r, 7 - e).getTime()
                    } else if ("prev_week" === e) {
                        const e = (r.getDay() + 6) % 7 + 7;
                        o = S.add_days_considering_dst(t, r, -e).getTime(), n = S.add_days_considering_dst(t, r, 7 - e).getTime()
                    } else if ("this_month" === e) {
                        const e = r.getDate(),
                            i = new Date(r.getFullYear(), r.getMonth(), 0).getDate();
                        o = S.add_days_considering_dst(t, r, 1 - e).getTime(), n = S.add_days_considering_dst(t, r, i - e).getTime()
                    }
                    return !(!o || !n) && [o, n]
                },
                U = {
                    dr: [(0, a.t)("Depositary Receipt"), (0, a.t)("DR"), {
                        nowrap: !0
                    }],
                    etf: [(0, a.t)("ETF"), (0, a.t)("ETF")],
                    common: [(0, a.t)("Common Stock"), ""],
                    preferred: [(0, a.t)("Preferred Stock"), (0, a.t)("P")],
                    closedend: [(0, a.t)("Closed-end fund"), (0, a.t)("CEF")],
                    etn: [(0, a.t)("ETN"), (0, a.t)("ETN")],
                    reit: [(0, a.t)("REIT"), (0, a.t)("REIT")],
                    unit: [(0, a.t)("UIT"), (0, a.t)("UIT")],
                    mutual: [(0, a.t)("Mutual fund"), (0, a.t)("MF")],
                    trust: [(0, a.t)("Trust fund"), (0, a.t)("TF")],
                    structured: [(0, a.t)("Structured"), (0, a.t)("ETC")]
                },
                q = e => ["open", "high", "low", "close"].filter(t => t !== e),
                z = e => ["SMA5", "SMA10", "SMA20", "SMA30", "SMA50", "SMA100", "SMA200", "EMA5", "EMA10", "EMA20", "EMA30", "EMA50", "EMA100", "EMA200"].filter(t => t !== e),
                H = e => ["Ichimoku.BLine", "Ichimoku.CLine", "Ichimoku.Lead1", "Ichimoku.Lead2"].filter(t => t !== e),
                Y = ["crosses", "crosses_above", "crosses_below"];

            function K(e, ...t) {
                const r = t[t.length - 1];
                if (r.searchValue) {
                    const t = (0, p.parseHtml)(e).childNodes;
                    let o = "";
                    for (let e = 0; e < t.length; e++) t[e].classList && (t[e].classList.contains("tv-screener__symbol") && (t[e].innerHTML = G(t[e].textContent.trim(), r.searchValue)), o += t[e].outerHTML);
                    return o + " "
                }
                return e
            }
            const X = {
                name: {
                    fixed: !0,
                    control: "select",
                    category: 1,
                    inplaceEditorLeftOffset: 10,
                    filterTitle: w.quoteFieldTitles.type[0],
                    rangeTitles: U,
                    additionalColumns: ["description", "name", "type", "subtype", "update_mode"],
                    additionalFormatter: (e, t, r, n, i, s = "") => ((e, t, r, n, i) => {
                        const s = new u.DataModeIndicator({
                            classSuffix: "--for-screener",
                            short: !0
                        });
                        if (null !== i && "string" == typeof i) {
                            const e = (0, o.parseUpdateMode)(i);
                            null === e ? s.setMode(i) : s.setMode(e.mode, e.interval)
                        }
                        if (X.description.disabled || !X.description.checked) return s.getElement().outerHTML;
                        const a = {
                            description: e,
                            pro_name: n,
                            short_name: r
                        };
                        let l = e ? (0, d.getTranslatedSymbolDescription)(a).toString().toUpperCase() : "";
                        X.name.searchValue && (l = G(l, X.name.searchValue));
                        const c = !X.description.disabled || X.description.checked ? `<span class="tv-screener__description">${l} ${t}</span>` : "";
                        return `${s.getElement().outerHTML}${c}`
                    })(e, ((e, t) => X.type.disabled || !X.type.checked ? "" : `<span class="tv-screener__type" title="${X.type.mutateDisplayValue(e,t)}"><sup>${X.type.mutateDisplayValue(e,t,!0)}</sup></span>`)(r, n), t, s, i),
                    mutateDisplayValue: K,
                    tooltip: (e, t) => X.description.disabled || !X.description.checked ? t : e,
                    useDefaultRange: !0,
                    defaultRange: ["dr", "etf", "common", "preferred", "closedend", "etn", "reit", "unit", "mutual", "trust", "structured"],
                    customFilterCondition: e => X.type.customFilterCondition(e),
                    search: !0
                },
                description: {
                    hiddenColumn: !0,
                    hideSetupColumn: !0
                },
                logoid: {
                    hiddenColumn: !1,
                    hideSetupColumn: !0,
                    skipField: !0
                },
                currency_logoid: {
                    hiddenColumn: !1,
                    hideSetupColumn: !0,
                    skipField: !0
                },
                base_currency_logoid: {
                    hiddenColumn: !1,
                    hideSetupColumn: !0,
                    skipField: !0
                },
                exchange: {
                    control: "select",
                    category: 1,
                    mutateDisplayValue: e => "AMEX" === e ? "NYSE ARCA" : e,
                    rangeTitles: {
                        AMEX: ["NYSE ARCA", "NYSE ARCA", {
                            nowrap: !0
                        }]
                    }
                },
                submarket: {
                    control: "select",
                    category: 1
                },
                sector: {
                    category: 1,
                    filterCondition: "select",
                    sourceRange: ["Major", "Minor", "Exotic"],
                    mutateDisplayValue: (e, ...t) => {
                        const r = K(e, t);
                        return (0, a.t)(r)
                    }
                },
                index: {
                    control: "select",
                    isSingle: !0,
                    category: 1,
                    hideSetupColumn: !0,
                    groupFilter: !0,
                    customFilterCondition: e => {
                        const t = X.index.sourceRange ? X.index.sourceRange.find(t => t.name === e) : null;
                        return !!t && {
                            type: "index",
                            values: [t.id]
                        }
                    }
                },
                industry: {
                    control: "select",
                    category: 1
                },
                country: {
                    control: "select",
                    category: 1
                },
                type: {
                    hiddenColumn: !0,
                    hideSetupColumn: !0,
                    filterCondition: "select",
                    category: 1,
                    rangeTitles: U,
                    sortableColumn: !1,
                    resettableFilter: !1,
                    useDefaultRange: !0,
                    defaultRange: ["dr", "etf", "common", "preferred", "closedend", "etn", "reit", "unit", "mutual", "trust", "structured"],
                    additionalColumns: ["subtype"],
                    mutateDisplayValue: (e, t, r = !1) => t && U[t] ? U[t][r ? 1 : 0] : U[e] ? U[e][r ? 1 : 0] : "",
                    customFilterCondition: function(e) {
                        let t = [],
                            r = [];
                        if (Array.isArray(e))
                            for (const o of e) {
                                const [e, n] = b(o);
                                t = [...t, ...e], r = [...r, ...n]
                            } else [t, r] = b(e);
                        return r = [...new Set(r)], t.length && r.length ? [y("type", t), y("subtype", r)] : t.length ? [y("type", t)] : [y("subtype", r)]
                    }
                },
                market_cap_basic: {
                    control: "range",
                    formatter: A,
                    category: 1
                },
                market_cap_calc: {
                    control: "range",
                    formatter: A,
                    category: 1
                },
                market_cap_diluted_calc: {
                    control: "range",
                    formatter: A,
                    category: 1
                },
                volume: {
                    control: "range",
                    formatter: A,
                    category: 1
                },
                average_volume_10d_calc: {
                    title: w.quoteFieldTitles.average_volume[0],
                    shortTitle: w.quoteFieldTitles.average_volume[1],
                    control: "range",
                    formatter: A,
                    category: 1,
                    useDefaultTimeInterval: !0
                },
                average_volume_30d_calc: {
                    control: "range",
                    formatter: A,
                    category: 1,
                    useDefaultTimeInterval: !0
                },
                average_volume_60d_calc: {
                    control: "range",
                    formatter: A,
                    category: 1,
                    useDefaultTimeInterval: !0
                },
                average_volume_90d_calc: {
                    control: "range",
                    formatter: A,
                    category: 1,
                    useDefaultTimeInterval: !0
                },
                relative_volume_10d_calc: {
                    title: w.quoteFieldTitles.relative_volume[0],
                    shortTitle: w.quoteFieldTitles.relative_volume[1],
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                change: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.1": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.5": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.15": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.60": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.240": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.1W": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                "change.1M": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: {
                        stock: ["change", "premarket_change", "postmarket_change"],
                        default: []
                    },
                    formatter: M,
                    category: 3,
                    highlightChange: !0
                },
                change_abs: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.1": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.5": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.15": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.60": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.240": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.1W": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "change_abs.1M": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                bid: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    forexFormatter: E,
                    category: 1,
                    mutateDisplayValue: e => `<span>${e}</span>`
                },
                ask: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    forexFormatter: E,
                    category: 1,
                    mutateDisplayValue: e => `<span>${e}</span>`
                },
                open: {
                    control: "condition",
                    conditionFields: {
                        stock: q("open").concat("premarket_open", "postmarket_open", "premarket_close", "postmarket_close", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        forex: q("open").concat("bid", "ask", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        default: q("open").concat(z(), "BB.upper", "BB.lower", "HullMA9", H())
                    },
                    formatter: E,
                    forexFormatter: E,
                    category: 1
                },
                close: {
                    title: (0, a.t)("Last"),
                    shortTitle: (0, a.t)("Last"),
                    control: "condition",
                    conditionFields: {
                        stock: q("close").concat("premarket_close", "postmarket_close", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        forex: q("close").concat("bid", "ask", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        default: q("close").concat(z(), "BB.upper", "BB.lower", "HullMA9", H())
                    },
                    formatter: E,
                    forexFormatter: E,
                    category: 1,
                    mutateDisplayValue: e => `<span>${e}</span>`
                },
                high: {
                    control: "condition",
                    conditionFields: {
                        stock: q("high").concat("premarket_high", "postmarket_high", "premarket_close", "postmarket_close", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        forex: q("high").concat("bid", "ask", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        default: q("high").concat(z(), "BB.upper", "BB.lower", "HullMA9", H())
                    },
                    formatter: E,
                    forexFormatter: E,
                    category: 1
                },
                low: {
                    control: "condition",
                    conditionFields: {
                        stock: q("low").concat("premarket_low", "postmarket_low", "premarket_close", "postmarket_close", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        forex: q("low").concat("bid", "ask", z(), "HullMA9", "BB.upper", "BB.lower", H()),
                        default: q("low").concat(z(), "BB.upper", "BB.lower", "HullMA9", H())
                    },
                    formatter: E,
                    forexFormatter: E,
                    category: 1
                },
                gap: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                price_earnings_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                price_sales_ratio: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                return_on_assets: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                return_on_equity: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                debt_to_equity: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    category: 2
                },
                current_ratio: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                quick_ratio: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                price_book_fq: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                price_book_ratio: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                price_free_cash_flow_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                beta_1_year: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    category: 3
                },
                operating_margin: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                earnings_per_share_basic_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                ebitda: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                change_from_open: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                change_from_open_abs: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.W": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.1M": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.3M": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.6M": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.Y": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Perf.YTD": {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                "Volatility.W": {
                    control: "condition",
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3
                },
                "Volatility.M": {
                    control: "condition",
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3
                },
                "Volatility.D": {
                    control: "condition",
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3
                },
                RSI: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["RSI", "RSI[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processRSISignal,
                    signalComputation: h.signalComputationFunctions.computeRSISignal
                },
                RSI7: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["RSI7", "RSI7[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processRSISignal,
                    signalComputation: h.signalComputationFunctions.computeRSISignal
                },
                ADX: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["ADX", "ADX+DI", "ADX-DI", "ADX+DI[1]", "ADX-DI[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processADXSignal,
                    signalComputation: h.signalComputationFunctions.computeADXSignal
                },
                "ADX+DI": {
                    control: "condition",
                    conditionFields: ["ADX-DI"],
                    formatter: x,
                    filterFormatter: T,
                    category: 3
                },
                "ADX-DI": {
                    control: "condition",
                    conditionFields: ["ADX+DI"],
                    formatter: x,
                    filterFormatter: T,
                    category: 3
                },
                ATR: {
                    control: "condition",
                    conditionFields: [],
                    formatter: E,
                    category: 3
                },
                Mom: {
                    control: "condition",
                    conditionFields: [],
                    formatter: E,
                    filterFormatter: T,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Mom", "Mom[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMomSignal,
                    signalComputation: h.signalComputationFunctions.computeMomSignal
                },
                "High.All": {
                    control: "toggle",
                    filter: {
                        operator: "eless",
                        value: "high"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "Low.All": {
                    control: "toggle",
                    filter: {
                        operator: "egreater",
                        value: "low"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                price_52_week_high: {
                    control: "toggle",
                    filter: {
                        operator: "eless",
                        value: "high"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                price_52_week_low: {
                    control: "toggle",
                    filter: {
                        operator: "egreater",
                        value: "low"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                is_primary: {
                    title: w.quoteFieldTitles.is_primary[0],
                    control: "toggle",
                    filter: {
                        operator: "equal",
                        value: !0
                    },
                    category: 1
                },
                "High.6M": {
                    control: "toggle",
                    filter: {
                        operator: "eless",
                        value: "high"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "Low.6M": {
                    control: "toggle",
                    filter: {
                        operator: "egreater",
                        value: "low"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "High.3M": {
                    control: "toggle",
                    filter: {
                        operator: "eless",
                        value: "high"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "Low.3M": {
                    control: "toggle",
                    filter: {
                        operator: "egreater",
                        value: "low"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "High.1M": {
                    control: "toggle",
                    filter: {
                        operator: "eless",
                        value: "high"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                "Low.1M": {
                    control: "toggle",
                    filter: {
                        operator: "egreater",
                        value: "low"
                    },
                    formatter: x,
                    forexFormatter: E,
                    category: 3
                },
                EMA5: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA5")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA5", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA10: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA10")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA10", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA20: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA20")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA20", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA30: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA30")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA30", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA50: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA50")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA50", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA100: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA100")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA100", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                EMA200: {
                    control: "condition",
                    conditionFields: q().concat(z("EMA200")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["EMA200", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA5: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA5")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA5", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA10: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA10")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA10", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA20: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA20")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA20", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA30: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA30")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA30", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA50: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA50")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA50", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA100: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA100")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA100", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                SMA200: {
                    control: "condition",
                    conditionFields: q().concat(z("SMA200")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["SMA200", "close"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMASignal,
                    signalComputation: h.signalComputationFunctions.computeMASignal
                },
                "Stoch.K": {
                    control: "condition",
                    conditionFields: q().concat(["Stoch.D"]),
                    formatter: x,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Stoch.K", "Stoch.D", "Stoch.K[1]", "Stoch.D[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processStochSignal,
                    signalComputation: h.signalComputationFunctions.computeStochSignal
                },
                "Stoch.D": {
                    control: "condition",
                    conditionFields: q().concat(["Stoch.K"]),
                    formatter: x,
                    category: 3
                },
                "MACD.macd": {
                    control: "condition",
                    conditionFields: q().concat(["MACD.signal"]),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["MACD.macd", "MACD.signal"],
                    mutateDisplayValue: h.signalDisplayFunctions.processMACDSignal,
                    signalComputation: h.signalComputationFunctions.computeMACDSignal
                },
                "MACD.signal": {
                    control: "condition",
                    conditionFields: q().concat(["MACD.macd"]),
                    formatter: E,
                    category: 3
                },
                "Aroon.Up": {
                    control: "condition",
                    conditionFields: ["Aroon.Down"],
                    formatter: x,
                    category: 3
                },
                "Aroon.Down": {
                    control: "condition",
                    conditionFields: ["Aroon.Up"],
                    formatter: x,
                    category: 3
                },
                "BB.upper": {
                    control: "condition",
                    conditionFields: q().concat(["BB.lower", "KltChnl.upper", "KltChnl.lower"]),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["close", "BB.upper"],
                    mutateDisplayValue: h.signalDisplayFunctions.processBBSellSignal,
                    signalComputation: h.signalComputationFunctions.computeBBSellSignal
                },
                "BB.lower": {
                    control: "condition",
                    conditionFields: q().concat(["BB.upper", "KltChnl.upper", "KltChnl.lower"]),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["close", "BB.lower"],
                    mutateDisplayValue: h.signalDisplayFunctions.processBBBuySignal,
                    signalComputation: h.signalComputationFunctions.computeBBBuySignal
                },
                "KltChnl.upper": {
                    control: "condition",
                    conditionFields: q().concat(["KltChnl.lower", "BB.upper", "BB.lower"]),
                    formatter: E,
                    category: 3
                },
                "KltChnl.lower": {
                    control: "condition",
                    conditionFields: q().concat(["KltChnl.upper", "BB.upper", "BB.lower"]),
                    formatter: E,
                    category: 3
                },
                "P.SAR": {
                    control: "condition",
                    conditionFields: q(),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["P.SAR", "open"],
                    mutateDisplayValue: h.signalDisplayFunctions.processPSARSignal,
                    signalComputation: h.signalComputationFunctions.computePSARSignal
                },
                "Value.Traded": {
                    control: "range",
                    formatter: A,
                    category: 1
                },
                MoneyFlow: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3
                },
                ChaikinMoneyFlow: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3
                },
                goodwill: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                net_debt: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_debt: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                revenue_per_employee: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                return_on_invested_capital: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                after_tax_margin: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                pre_tax_margin: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                gross_margin: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                dividends_paid: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                dividend_yield_recent: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 2,
                    highlightChange: !0
                },
                basic_eps_net_income: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                net_income: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                gross_profit: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                gross_profit_fq: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                number_of_shareholders: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                float_shares_outstanding: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_shares_outstanding_fundamental: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_shares_outstanding: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_shares_diluted: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_value_traded: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_assets: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_current_assets: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_revenue: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_liabilities_fy: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                total_liabilities_fq: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                dividends_per_share_fq: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                earnings_per_share_diluted_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                enterprise_value_ebitda_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                enterprise_value_fq: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                price_revenue_ttm: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                number_of_employees: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                last_annual_eps: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                last_annual_revenue: {
                    control: "range",
                    formatter: A,
                    category: 2
                },
                CCI20: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["CCI20", "CCI20[1]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processCCI20Signal,
                    signalComputation: h.signalComputationFunctions.computeCCI20Signal
                },
                "DonchCh20.Upper": {
                    control: "condition",
                    conditionFields: q().concat(["DonchCh20.Lower"]),
                    formatter: E,
                    category: 3
                },
                "DonchCh20.Lower": {
                    control: "condition",
                    conditionFields: q().concat(["DonchCh20.Upper"]),
                    formatter: E,
                    category: 3
                },
                HullMA9: {
                    control: "condition",
                    conditionFields: q().concat(z("HullMA9")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.HullMA9"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                AO: {
                    control: "condition",
                    conditionFields: [],
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["AO", "AO[1]", "AO[2]"],
                    mutateDisplayValue: h.signalDisplayFunctions.processAOSignal,
                    signalComputation: h.signalComputationFunctions.computeAOSignal
                },
                "Pivot.M.Classic.Middle": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.R1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.R2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.R3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.S1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.S2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Classic.S3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.Middle": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.R1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.R2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.R3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.S1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.S2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Fibonacci.S3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.Middle": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.R1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.R2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.R3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.S1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.S2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Camarilla.S3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.Middle": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.R1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.R2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.R3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.S1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.S2": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Woodie.S3": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Demark.Middle": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Demark.R1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                "Pivot.M.Demark.S1": {
                    formatter: x,
                    forexFormatter: E,
                    category: 3,
                    align: "right"
                },
                candlestick: {
                    alias: "name",
                    control: "select",
                    category: 3,
                    sortableColumn: !1,
                    additionalColumns: k.candlestickRanges.map(e => e.key),
                    mutateDisplayValue: (e, ...t) => {
                        const r = [];
                        for (let e = 0; e < k.candlestickRanges.length; ++e) t[e] && r.push(k.candlestickRanges[e]);
                        return r.length ? r.map(e => `<span class="tv-screener-table__pattern_icon apply-common-tooltip common-tooltip-fixed common-tooltip-below common-tooltip-html" data-color-theme="round-shadow" title='<div class="tv-screener-table__pattern_tooltip_container">${e.svg}<div>${e.name}</div></div>'>${e.svg}</span>`).join(" ") : '<span class="tv-screener-table__pattern_empty">—</span>'
                    },
                    range: k.candlestickRanges.map(e => e.name),
                    sourceRange: k.candlestickRanges,
                    customFilterCondition: e => {
                        Array.isArray(e) || (e = [e]);
                        return {
                            left: e.map(e => W(e, k.candlestickRanges)).join(","),
                            operation: "equal",
                            right: 1
                        }
                    }
                },
                update_mode: {
                    hiddenColumn: !1,
                    hideSetupColumn: !0,
                    skipField: !0
                },
                premarket_change: {
                    title: (0, a.t)("Pre-market Change %"),
                    shortTitle: (0, a.t)("Pre-market chg %"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: ["change"],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                premarket_change_abs: {
                    title: (0, a.t)("Pre-market Change"),
                    shortTitle: (0, a.t)("Pre-market chg"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: ["change_abs"],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                premarket_change_from_open: {
                    title: (0, a.t)("Pre-market Change from Open %"),
                    shortTitle: (0, a.t)("Pre-market chg from Open %"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                premarket_change_from_open_abs: {
                    title: (0, a.t)("Pre-market Change from Open"),
                    shortTitle: (0, a.t)("Pre-market chg from Open"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                premarket_close: {
                    title: (0, a.t)("Pre-market Close"),
                    shortTitle: (0, a.t)("Pre-market Close"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                premarket_gap: {
                    title: (0, a.t)("Pre-market Gap %"),
                    shortTitle: (0, a.t)("Pre-market Gap %"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: ["gap"],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                premarket_high: {
                    title: (0, a.t)("Pre-market High"),
                    shortTitle: (0, a.t)("Pre-market High"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                premarket_low: {
                    title: (0, a.t)("Pre-market Low"),
                    shortTitle: (0, a.t)("Pre-market Low"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                premarket_open: {
                    title: (0, a.t)("Pre-market Open"),
                    shortTitle: (0, a.t)("Pre-market Open"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                premarket_volume: {
                    title: (0, a.t)("Pre-market Volume"),
                    shortTitle: (0, a.t)("Pre-market Volume"),
                    control: "range",
                    formatter: A,
                    category: 1
                },
                postmarket_change: {
                    title: (0, a.t)("Post-market Change %"),
                    shortTitle: (0, a.t)("Post-market chg %"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: ["change"],
                    formatter: M,
                    filterFormatter: L,
                    category: 3,
                    highlightChange: !0
                },
                postmarket_change_abs: {
                    title: (0, a.t)("Post-market Change"),
                    shortTitle: (0, a.t)("Post-market chg"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: ["change_abs"],
                    formatter: E,
                    forexFormatter: E,
                    category: 3,
                    highlightChange: !0
                },
                postmarket_close: {
                    title: (0, a.t)("Post-market Close"),
                    shortTitle: (0, a.t)("Post-market Close"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                postmarket_high: {
                    title: (0, a.t)("Post-market High"),
                    shortTitle: (0, a.t)("Post-market High"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                postmarket_low: {
                    title: (0, a.t)("Post-market Low"),
                    shortTitle: (0, a.t)("Post-market Low"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                postmarket_open: {
                    title: (0, a.t)("Post-market Open"),
                    shortTitle: (0, a.t)("Post-market Open"),
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 1
                },
                postmarket_volume: {
                    title: (0, a.t)("Post-market Volume"),
                    shortTitle: (0, a.t)("Post-market Volume"),
                    control: "range",
                    formatter: A,
                    category: 1
                },
                earnings_per_share_forecast_next_fq: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                earnings_per_share_fq: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                },
                earnings_release_date: {
                    control: "select",
                    isSingle: !0,
                    category: 2,
                    sortable: !1,
                    useDefaultRange: !0,
                    defaultRange: I.filter(e => -1 !== D.indexOf(e.key)).map(e => e.name),
                    sourceRange: I,
                    customFilterCondition: B("earnings_release_date"),
                    formatter: P
                },
                earnings_release_next_date: {
                    control: "select",
                    isSingle: !0,
                    category: 2,
                    sortable: !1,
                    useDefaultRange: !0,
                    defaultRange: I.filter(e => -1 !== O.indexOf(e.key)).map(e => e.name),
                    sourceRange: I,
                    customFilterCondition: B("earnings_release_next_date"),
                    formatter: P
                },
                "Recommend.All": {
                    control: "select",
                    category: 3,
                    mutateDisplayValue: h.signalDisplayFunctions.processRecommendSignal,
                    signalComputation: h.signalComputationFunctions.computeRecommendSignal,
                    useDefaultRange: !0,
                    sortable: !1,
                    sortSelectedFirst: !1,
                    defaultRange: h.recommendsRange,
                    customFilterCondition: e => (0, h.generateRecommendsRequest)(e, "Recommend.All")
                },
                "Recommend.MA": {
                    control: "select",
                    category: 3,
                    mutateDisplayValue: h.signalDisplayFunctions.processRecommendSignal,
                    signalComputation: h.signalComputationFunctions.computeRecommendSignal,
                    useDefaultRange: !0,
                    sortable: !1,
                    sortSelectedFirst: !1,
                    defaultRange: h.recommendsRange,
                    customFilterCondition: e => (0, h.generateRecommendsRequest)(e, "Recommend.MA")
                },
                "Recommend.Other": {
                    control: "select",
                    category: 3,
                    mutateDisplayValue: h.signalDisplayFunctions.processRecommendSignal,
                    signalComputation: h.signalComputationFunctions.computeRecommendSignal,
                    useDefaultRange: !0,
                    sortable: !1,
                    sortSelectedFirst: !1,
                    defaultRange: h.recommendsRange,
                    customFilterCondition: e => (0, h.generateRecommendsRequest)(e, "Recommend.Other")
                },
                "Stoch.RSI.K": {
                    control: "condition",
                    conditionFields: ["Stoch.RSI.D"],
                    formatter: x,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.Stoch.RSI"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                "Stoch.RSI.D": {
                    control: "condition",
                    conditionFields: ["Stoch.RSI.K"],
                    formatter: x,
                    category: 3
                },
                "W.R": {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.WR"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                ROC: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3
                },
                BBPower: {
                    control: "condition",
                    conditionFields: [],
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.BBPower"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                UO: {
                    control: "condition",
                    conditionFields: [],
                    formatter: x,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.UO"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                VWAP: {
                    control: "condition",
                    conditionFields: q().concat(z()),
                    formatter: E,
                    category: 3
                },
                VWMA: {
                    control: "condition",
                    conditionFields: q().concat(z()),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.VWMA"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                ADR: {
                    control: "condition",
                    conditionFields: q(),
                    formatter: E,
                    category: 3
                },
                "Ichimoku.CLine": {
                    control: "condition",
                    conditionFields: q().concat(H("Ichimoku.CLine")),
                    formatter: E,
                    category: 3
                },
                "Ichimoku.BLine": {
                    control: "condition",
                    conditionFields: q().concat(H("Ichimoku.BLine")),
                    formatter: E,
                    category: 3,
                    displaySignal: !0,
                    additionalColumns: ["Rec.Ichimoku"],
                    mutateDisplayValue: h.signalDisplayFunctions.processSimpleSignal,
                    signalComputation: h.signalComputationFunctions.computeSimpleSignal
                },
                "Ichimoku.Lead1": {
                    control: "condition",
                    conditionFields: q().concat(H("Ichimoku.Lead1")),
                    formatter: E,
                    category: 3
                },
                "Ichimoku.Lead2": {
                    control: "condition",
                    conditionFields: q().concat(H("Ichimoku.Lead2")),
                    formatter: E,
                    category: 3
                },
                elements: {
                    hiddenOperators: Y,
                    title: (0, a.t)("Industries"),
                    shortTitle: (0, a.t)("Industries"),
                    control: "condition",
                    conditionFields: [],
                    formatter: T,
                    category: 1
                },
                basic_elements: {
                    hiddenOperators: Y,
                    title: (0, a.t)("Stocks"),
                    shortTitle: (0, a.t)("Stocks"),
                    control: "condition",
                    conditionFields: [],
                    formatter: T,
                    category: 1
                },
                dps_common_stock_prim_issue_fy: {
                    control: "condition",
                    hiddenOperators: Y,
                    conditionFields: [],
                    formatter: x,
                    filterFormatter: T,
                    category: 2
                }
            };

            function G(e, t) {
                t = t.replace(/(\s+)/, "(<[^>]+>)*$1(<[^>]+>)*");
                const r = new RegExp("(" + t + ")", "gi");
                return e.replace(r, "<mark>$1</mark>")
            }

            function Q(e, t) {
                for (let r = 0; r < e.length; ++r) {
                    const o = e[r];
                    o.left && X[o.left] && (o.left = (0, f.getFieldNameWithResolution)(o.left, t))
                }
            }

            function J(e, t, r, o) {
                if (Array.isArray(t) && 0 === t.length) throw new Error("Empty value");
                let n = r && r[e] ? r[e] : t;
                if ("function" == typeof X[e].customFilterCondition) {
                    const t = X[e].customFilterCondition(n);
                    if (t) return Array.isArray(t) ? Q(t, o) : ("candlestick" === e && (t.left = t.left.split(",").map(e => (0,
                        f.getFieldNameWithResolution)(e, o)).join(",")), t.left && X[t.left] && (t.left = (0, f.getFieldNameWithResolution)(t.left, o))), t.filterOR && (Q(t.filter, o), Q(t.filterOR, o)), t.filter2Flag && (Q(t.filter, o), Q(t.filter2AndPart, o)), t
                }
                if ("function" == typeof X[e].mutateFilterConditionValue) {
                    const t = X[e].mutateFilterConditionValue(n);
                    t && (n = t)
                }
                const i = Array.isArray(n);
                if (n && "object" == typeof n && !i) {
                    const t = {
                        left: e,
                        operation: n.operator
                    };
                    return n.value && (t.right = n.value), t
                }
                return {
                    left: (0, f.getFieldNameWithResolution)(e, o),
                    operation: i ? "in_range" : "equal",
                    right: i ? n.slice() : n
                }
            }

            function Z(e) {
                return X[e] && X[e].alias ? X[e].alias : e
            }

            function ee(e, t, r, o) {
                if (R(t) && R(r)) throw new Error("Empty value");
                let n, i = {};
                switch (X[e].control) {
                    case "range":
                        if (t && "object" == typeof t && !Array.isArray(t)) {
                            i = {
                                left: e,
                                operation: t.operator
                            }, t.value && (i.right = t.value);
                            break
                        }
                        var s = r ? Array.isArray(r[e]) && r[e].slice() || [] : t.slice();
                        i = {
                            left: (0, f.getFieldNameWithResolution)(e, o),
                            operation: "in_range",
                            right: s
                        }, 2 === s.length && isNumber(s[0]) && isNumber(s[1]) && (-1e100 == +s[0] ? i = {
                            left: (0, f.getFieldNameWithResolution)(e, o),
                            operation: "eless",
                            right: s[1]
                        } : 1e100 == +s[1] && (i = {
                            left: (0, f.getFieldNameWithResolution)(e, o),
                            operation: "egreater",
                            right: s[0]
                        }));
                        break;
                    case "condition":
                        if (R(t.operator)) throw new Error("Empty value operator");
                        if (R(t.value)) throw new Error("Empty value");
                        n = r && r[e].value ? r[e].value : t.value, X[n] && (n = (0, f.getFieldNameWithResolution)(n, o)), i = {
                            left: (0, f.getFieldNameWithResolution)(e, o),
                            operation: r && r[e].operator ? r[e].operator : t.operator,
                            right: n
                        };
                        break;
                    case "toggle":
                        i = {
                            left: (0, f.getFieldNameWithResolution)(e, o),
                            operation: r && r[e].operator ? r[e].operator : X[e].filter.operator,
                            right: r && r[e].value ? r[e].value : X[e].filter.value
                        };
                        break;
                    case "select":
                        i = J(e, t, r, o);
                        break;
                    default:
                        "select" === X[e].filterCondition && (i = J(e, t, r, o))
                }
                return i
            }

            function te(e, t) {
                ! function(e, t) {
                    for (const r in e) e[r].disabled = 2 === e[r].category || t.includes(r)
                }(e, (t || []).concat("type", "industry", "market_cap_basic", "beta_1_year", "Value.Traded", "MoneyFlow", "ChaikinMoneyFlow", "elements", "basic_elements", "premarket_change", "premarket_change_abs", "premarket_change_from_open", "premarket_change_from_open_abs", "premarket_close", "premarket_gap", "premarket_high", "premarket_low", "premarket_open", "premarket_volume", "postmarket_change", "postmarket_change_abs", "postmarket_close", "postmarket_high", "postmarket_low", "postmarket_open", "postmarket_volume"))
            }

            function re() {
                for (const e of Object.keys(w.quoteFieldTitles)) e in X && (X[e].title = X[e].title || w.quoteFieldTitles[e][0], X[e].shortTitle = X[e].shortTitle || w.quoteFieldTitles[e][1])
            }

            function oe(e, t) {
                if (delete X.name.control, re(), "forex" === e && (X.country.title = (0, a.t)("Region"), X.country.shortTitle = (0, a.t)("Region"), delete X.sector.control, X.sector.title = (0, a.t)("Group"), X.sector.shortTitle = (0, a.t)("Group"), X.sector.resettableFilter = !1, X.sector.mutateFilterConditionValue = e => !!e && (Array.isArray(e) ? e.map(e => N(e, F)) : N(e, F))), "stock" === e) {
                    X.sector.title = (0, a.t)("Sector"), X.sector.shortTitle = (0, a.t)("Sector"), X.name.control = "select", X.sector.control = "select", X.sector.resettableFilter = !0,
                        delete X.sector.mutateFilterConditionValue;
                    const e = ["bid", "ask"];
                    for (const t in X) X[t].disabled = e.includes(t)
                }
                "crypto" === e && (X.sector.title = (0, a.t)("Coin"), X.sector.shortTitle = (0, a.t)("Coin"), X.sector.control = "select", X.sector.resettableFilter = !0, delete X.sector.mutateFilterConditionValue), "crypto_mkt" === e && (X.sector.title = (0, a.t)("Name"), X.sector.shortTitle = (0, a.t)("Name")), ["crypto", "crypto_mkt"].includes(e) && (X.total_shares_outstanding.title = (0, a.t)("Available Coins"), X.total_shares_outstanding.shortTitle = (0, a.t)("Avail Coins")), "sector" === e && (X.description.hiddenColumn = !1, X.description.title = (0, a.t)("Sector"), X.description.shortTitle = (0, a.t)("Sector"), X.description.mutateDisplayValue = K), "industry" === e && (X.description.hiddenColumn = !1, X.description.title = (0, a.t)("Industry"), X.description.shortTitle = (0, a.t)("Industry"), X.description.mutateDisplayValue = K, X.elements.title = (0, a.t)("Stocks"), X.elements.shortTitle = (0, a.t)("Stocks"), X.sector.control = "select", X.sector.resettableFilter = !0), ["sector", "industry"].includes(t) && (X.sector.hiddenColumn = !0), "bonds" === e && (X.close.title = (0, a.t)("Yield", {
                        context: "Bonds"
                    }), X.close.shortTitle = (0, a.t)("Yield", {
                        context: "Bonds"
                    }), X.coupon = {
                        title: (0, a.t)("Coupon"),
                        shortTitle: (0, a.t)("Coupon"),
                        align: "right",
                        formatter: M
                    }, X.maturity_date = {
                        title: (0, a.t)("Maturity Date"),
                        shortTitle: (0, a.t)("Maturity Date"),
                        align: "right",
                        mutateDisplayValue: g.mutateSimpleDate
                    }), "continuous_futures" === e && (X.expiration = {
                        title: (0, a.t)("Expiration"),
                        shortTitle: (0, a.t)("Expiration"),
                        align: "right",
                        mutateDisplayValue: g.mutateSimpleDate
                    }),
                    function(e, t) {
                        switch (e) {
                            case "forex":
                                te(t, ["exchange", "volume", "relative_volume_10d_calc", "average_volume_10d_calc", "average_volume_30d_calc", "average_volume_60d_calc", "average_volume_90d_calc"]);
                                break;
                            case "futures":
                            case "cfd":
                                te(t, ["bid", "ask"]);
                                break;
                            case "crypto":
                                te(t, ["country", "sector"])
                        }
                    }(e, X);
                ["market_cap_calc", "market_cap_diluted_calc", "total_shares_outstanding", "total_shares_diluted", "total_value_traded"].forEach(t => {
                    X[t].disabled = !["crypto", "crypto_mkt"].includes(e)
                });
                ["elements", "basic_elements"].forEach(t => {
                    X[t].disabled = !["sector", "industry"].includes(e)
                })
            }
            re();
            const ne = [{
                    key: "-1",
                    name: (0, a.t)("Before Open")
                }, {
                    key: "1",
                    name: (0, a.t)("After Close")
                }],
                ie = [{
                    key: "-1",
                    name: '<div class="tv-screener-table__market-icon">' + r(98610) + "</div>"
                }, {
                    key: "1",
                    name: '<div class="tv-screener-table__market-icon">' + r(50310) + "</div>"
                }];

            function se() {
                const e = (e, t, r, o) => {
                    const n = W(e, I) || null,
                        i = n ? V(n) : null;
                    return i && i[0] <= 1e3 * t && 1e3 * t <= i[1] ? o : r
                };
                X.earnings_release_next_time = {
                        isSingle: !0,
                        title: (0, a.t)("Time"),
                        tooltip: (t, r, o) => {
                            const n = X.earnings_release_next_date.value,
                                i = e(n, t, r, o);
                            return i ? j((s = i).toString(), ne) || s : void 0;
                            var s
                        },
                        shortTitle: (0, a.t)("Time"),
                        disableHeaderControl: !0,
                        align: "center",
                        additionalColumns: ["earnings_release_next_date", "earnings_release_time", "earnings_release_next_time"],
                        mutateDisplayValue: (t, r, o, n) => {
                            const i = X.earnings_release_next_date.value,
                                s = e(i, r, o, n);
                            return s ? j((a = s).toString(), ie) || a : ae;
                            var a
                        },
                        category: 2
                    }, X.close.title = (0, a.t)("Last"), X.close.shortTitle = (0, a.t)("Last"),
                    X.earnings_release_next_date = Object.assign(X.earnings_release_next_date, {
                        title: (0, a.t)("Date"),
                        shortTitle: (0, a.t)("Date"),
                        noAny: !0,
                        additionalColumns: ["earnings_release_date", "earnings_release_next_date"],
                        defaultRange: I.map(e => e.name),
                        resettableFilter: !1,
                        mutateDisplayValue: (e, t, r, o) => {
                            if (!r && t) return P.format(t);
                            if (o.value) {
                                const e = W(o.value, I);
                                if (e) {
                                    const o = V(e);
                                    if (o) {
                                        if (t && le(t, o)) return P.format(t);
                                        if (r && le(r, o)) return P.format(r)
                                    }
                                }
                            }
                            return e
                        },
                        customFilterCondition: B()
                    }), X.earnings_release_next_calendar_date = {
                        title: (0, a.t)("Period Ending"),
                        shortTitle: (0, a.t)("Period Ending"),
                        formatter: P,
                        category: 1,
                        additionalColumns: ["earnings_release_next_date", "earnings_release_calendar_date"],
                        mutateDisplayValue: (e, t, r) => {
                            const o = W(X.earnings_release_next_date.value, I);
                            if (o) {
                                const r = V(o);
                                if (r && le(t, r)) return e
                            }
                            return r ? P.format(r) : ae
                        }
                    }, delete X.earnings_per_share_forecast_next_fq.control, X.earnings_per_share_forecast_next_fq.title = (0, a.t)("EPS Estimate"), X.earnings_per_share_forecast_next_fq.shortTitle = (0, a.t)("EPS Estimate"), X.earnings_per_share_forecast_next_fq.disableHeaderControl = !0, X.earnings_per_share_forecast_next_fq.align = "right", X.earnings_per_share_forecast_next_fq.additionalColumns = ["earnings_release_next_date", "earnings_per_share_forecast_fq"], X.earnings_per_share_forecast_next_fq.mutateDisplayValue = (e, t, r) => {
                        const o = W(X.earnings_release_next_date.value, I);
                        if (o) {
                            const r = V(o);
                            if (r && le(t, r)) return e
                        }
                        return r ? x.format(r) : ae
                    }, X.earnings_per_share_fq.title = (0, a.t)("Reported EPS"), X.earnings_per_share_fq.shortTitle = (0, a.t)("Reported EPS"), X.eps_surprise_fq = {
                        control: "condition",
                        hiddenOperators: Y,
                        conditionFields: [],
                        title: w.quoteFieldTitles.eps_surprise_fq[0],
                        shortTitle: w.quoteFieldTitles.eps_surprise_fq[1],
                        formatter: x,
                        filterFormatter: T,
                        category: 2,
                        highlightChange: !0
                    }, X.eps_surprise_percent_fq = {
                        control: "condition",
                        hiddenOperators: Y,
                        conditionFields: [],
                        title: w.quoteFieldTitles.eps_surprise_percent_fq[0],
                        shortTitle: w.quoteFieldTitles.eps_surprise_percent_fq[1],
                        formatter: M,
                        filterFormatter: L,
                        category: 2,
                        highlightChange: !0
                    }, X.revenue_fq = {
                        control: "condition",
                        hiddenOperators: Y,
                        conditionFields: [],
                        title: (0, a.t)("Revenue Actual"),
                        shortTitle: (0, a.t)("Revenue Actual"),
                        formatter: A,
                        category: 1
                    }, X.revenue_forecast_next_fq = {
                        control: "condition",
                        hiddenOperators: Y,
                        conditionFields: [],
                        title: (0, a.t)("Revenue Forecast"),
                        shortTitle: (0, a.t)("Revenue Forecast"),
                        formatter: A,
                        category: 1,
                        additionalColumns: ["earnings_release_next_date", "revenue_forecast_fq"],
                        mutateDisplayValue: (e, t, r) => {
                            const o = W(X.earnings_release_next_date.value, I);
                            if (o) {
                                const r = V(o);
                                if (r && le(t, r)) return "0" === e ? ae : e
                            }
                            return r ? A.format(r) : ae
                        }
                    }, de()
            }
            const ae = '<span class="tv-screener-table__cell--color-normal">—</span>';

            function le(e, t) {
                return function(e, t) {
                    const r = t[0],
                        o = t[1];
                    return r <= e && e <= o
                }(1e3 * e, t)
            }

            function ce() {
                X.earnings_per_share_fq.mutateDisplayValue = () => ae, X.eps_surprise_fq.mutateDisplayValue = () => ae, X.eps_surprise_percent_fq.mutateDisplayValue = () => ae, X.revenue_fq.mutateDisplayValue = () => ae
            }
            const ue = e => {
                e.additionalColumns = ["earnings_release_next_date"], e.mutateDisplayValue = (e, t) => {
                    const r = W(X.earnings_release_next_date.value, I);
                    if (r) {
                        const e = V(r);
                        if (e && le(t, e)) return ae
                    }
                    return e
                }
            };

            function de() {
                ue(X.earnings_per_share_fq), ue(X.eps_surprise_fq), ue(X.eps_surprise_percent_fq), ue(X.revenue_fq)
            }

            function he(e, t = "stock", r = !0) {
                if (!e) return null;
                if (["crypto_mkt"].includes(t) && e.cryptoFormatter) return e.cryptoFormatter;
                if (["forex", "crypto", "crypto_mkt", "cfd", "futures"].includes(t)) {
                    if (e.forexFilterFormatter) return e.forexFilterFormatter;
                    if (e.forexFormatter) return e.forexFormatter
                }
                return r && e.filterFormatter ? e.filterFormatter : e.formatter ? e.formatter : null
            }
            const pe = {};

            function fe(e, t, r, o) {
                const i = e + ";" + t + ";" + r + ";" + o;
                return pe[i] || (pe[i] = new n.PriceFormatter(e, t, r, o)), pe[i]
            }

            function ge(e) {
                return X[e] && !X[e].fixed && !X[e].disabled && !X[e].hideSetupColumn
            }

            function me(e) {
                return e.filterTitle || e.title
            }
        },
        7137: (e, t, r) => {
            "use strict";
            r.d(t, {
                INTERVALS: () => i,
                DEFAULT_INTERVAL_ID: () => s,
                getIntervalById: () => a,
                getAlertsMessageText: () => l,
                getFieldNameWithResolution: () => c
            });
            var o = r(49617),
                n = r(8107);
            const i = [{
                    id: "1m",
                    title: (0, n.t)("{number} minute", {
                        plural: "{number} minutes",
                        count: 1
                    }).format({
                        number: 1
                    }),
                    shortTitle: `1<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("m",{context:"interval_short"})}</sup>`,
                    value: 1
                }, {
                    id: "5m",
                    title: (0, n.t)("{number} minute", {
                        plural: "{number} minutes",
                        count: 5
                    }).format({
                        number: 5
                    }),
                    shortTitle: `5<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("m",{context:"interval_short"})}</sup>`,
                    value: 5
                }, {
                    id: "15m",
                    title: (0, n.t)("{number} minute", {
                        plural: "{number} minutes",
                        count: 15
                    }).format({
                        number: 15
                    }),
                    shortTitle: `15<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("m",{context:"interval_short"})}</sup>`,
                    value: 15
                }, {
                    id: "30m",
                    title: (0, n.t)("{number} minute", {
                        plural: "{number} minutes",
                        count: 30
                    }).format({
                        number: 30
                    }),
                    shortTitle: `30<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("m",{context:"interval_short"})}</sup>`,
                    value: 30
                }, {
                    id: "1h",
                    title: (0, n.t)("{number} hour", {
                        plural: "{number} hours",
                        count: 1
                    }).format({
                        number: 1
                    }),
                    shortTitle: `1<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("h",{context:"interval_short"})}</sup>`,
                    value: 60
                }, {
                    id: "2h",
                    title: (0, n.t)("{number} hour", {
                        plural: "{number} hours",
                        count: 2
                    }).format({
                        number: 2
                    }),
                    shortTitle: `2<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("h",{context:"interval_short"})}</sup>`,
                    value: 120
                }, {
                    id: "4h",
                    title: (0, n.t)("{number} hour", {
                        plural: "{number} hours",
                        count: 4
                    }).format({
                        number: 4
                    }),
                    shortTitle: `4<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("h",{context:"interval_short"})}</sup>`,
                    value: 240
                }, {
                    id: "1D",
                    title: (0, n.t)("{number} day", {
                        plural: "{number} days",
                        count: 1
                    }).format({
                        number: 1
                    }),
                    shortTitle: `1<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("D",{context:"interval_short"})}</sup>`,
                    value: null
                }, {
                    id: "1W",
                    title: (0, n.t)("{number} week", {
                        plural: "{number} weeks",
                        count: 1
                    }).format({
                        number: 1
                    }),
                    shortTitle: `1<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("W",{context:"interval_short"})}</sup>`,
                    value: "1W"
                }, {
                    id: "1M",
                    title: (0, n.t)("{number} month", {
                        plural: "{number} months",
                        count: 1
                    }).format({
                        number: 1
                    }),
                    shortTitle: `1<sup class="tv-screener-toolbar__interval-sup">${(0,n.t)("M",{context:"interval_short"})}</sup>`,
                    value: "1M"
                }],
                s = "1D";

            function a(e) {
                return i.find(t => t.id === e)
            }

            function l(e) {
                if (e === s) return;
                const t = a(e);
                return t ? t.title : void 0
            }

            function c(e, t) {
                if (e = (0, o.getAliasFiledName)(e), /(change|change_abs).\d{1,3}/.test(e)) return e.replace(".", "|");
                if (!t || t === s || o.fields[e] && o.fields[e].useDefaultTimeInterval) return e;
                const r = a(t);
                if (r) {
                    const t = r.value || "";
                    if (o.fields[e] && o.fields[e].customResolutions) {
                        const r = o.fields[e].customResolutions;
                        if (t && -1 !== r.indexOf(t.toString())) return `${e}|${t}`
                    }
                }
                return e
            }
        },
        28788: (e, t, r) => {
            "use strict";
            r.d(t, {
                getDefaultMarketForLocale: () => d,
                getMarketsByScreenerType: () => h,
                getMarketFieldValuesByScreenerType: () => _,
                marketFilterValues: () => v,
                getMarketFromSymbol: () => y,
                getExchangesByMarkets: () => C,
                getUnavailableWidgetMarkets: () => E
            });
            var o = r(8107).t;
            const n = r(55357),
                i = r(22949),
                s = {};
            for (const e of i) {
                const t = n[e];
                t.screenerName && (s[t.screenerName] = {
                    flag: t.flag || e,
                    title: o(t.title),
                    stocks: t.exchangesStocks || [],
                    timezone: t.screenerTimezone,
                    group: t.group,
                    country: e
                })
            }
            const a = {
                forex: "forex",
                cfd: "cfd",
                crypto: "crypto"
            };
            for (const e of i) {
                const t = n[e];
                t.screenerName && (a[t.tvLocale || e] = t.screenerName)
            }
            const l = r(53985),
                c = {
                    forex: {
                        icon: `<span class="tv-screener-market-select__item-forex">${r(44050)}</span>`,
                        title: o("Forex"),
                        stocks: []
                    }
                },
                u = {
                    crypto: {
                        icon: `<span class="tv-screener-market-select__item-bitcoin">${l}</span>`,
                        title: o("Cryptocurrencies"),
                        stocks: []
                    }
                };

            function d(e, t = "stock") {
                return "forex" === t ? "forex" : "crypto" === t ? "crypto" : a[e] || "america"
            }

            function h(e) {
                return "stock" === e ? s : "forex" === e ? c : "crypto" === e ? u : s
            }
            const p = {
                    america: {
                        market_cap_basic: [5e7, 3e8, 2e9, 1e10, 5e10, 1e11, 2e12],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        average_volume_30d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        average_volume_60d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        average_volume_90d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        relative_volume_10d_calc: [0, 5, 10, 15, 20, 50, 75, 100],
                        premarket_volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        postmarket_volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        change_abs: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        change: [-50, -20, -10, 0, 10, 20, 50],
                        open: [10, 20, 50, 100],
                        close: [10, 20, 50, 100],
                        high: [10, 20, 50, 100],
                        low: [10, 20, 50, 100],
                        gap: [-50, -20, -10, 0, 10, 20, 50],
                        price_earnings_ttm: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                        price_earnings_to_growth_ttm: [0, 1, 2, 3],
                        price_sales_ratio: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                        return_on_assets: [-50, -30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30, 50],
                        return_on_equity: [-50, -30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30, 50],
                        debt_to_equity: [.1, .2, .3, .4, .5, .6, .7, .8, .9, 1],
                        current_ratio: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                        quick_ratio: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                        price_book_fq: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                        price_book_ratio: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                        price_free_cash_flow_ttm: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100],
                        beta_1_year: [-2, -1.5, -1, -.5, 0, .5, 1, 1.5, 2],
                        operating_margin: [-50, -20, -10, 0, 10, 20, 50],
                        earnings_per_share_basic_ttm: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        ebitda: [5e5, 1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 2e9, 5e9, 1e10, 25e9, 5e10],
                        change_from_open: [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.W": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.1M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.3M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.6M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.Y": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.YTD": [-50, -20, -10, 0, 10, 20, 50],
                        "Volatility.W": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.M": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.D": [0, 5, 10, 15, 20, 30, 50, 70],
                        ADX: [10, 20, 30, 40, 50, 60, 70, 80, 90],
                        ATR: [.25, .5, .75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
                        Mom: [-30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30],
                        goodwill: [5e7, 3e8, 2e9, 1e10, 2e11],
                        net_debt: [-2e11, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        total_debt: [5e7, 3e8, 2e9, 1e10, 2e11],
                        revenue_per_employee: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        return_on_invested_capital: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        after_tax_margin: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        pre_tax_margin: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        gross_margin: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        dividends_paid: [-2e11, -1e10, -2e9, -3e8, -5e7, 0],
                        dividend_yield_recent: [0, 5, 10, 15, 20, 25, 50, 100],
                        basic_eps_net_income: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        net_income: [-5e10, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        gross_profit: [-2e11, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        gross_profit_fq: [-2e11, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        number_of_shareholders: [100, 500, 1e3, 1e4, 1e5, 1e6],
                        float_shares_outstanding: [5e7, 3e8, 2e9, 1e10, 2e11],
                        total_shares_outstanding_fundamental: [5e7, 3e8, 2e9, 1e10, 2e11],
                        total_assets: [5e7, 3e8, 2e9, 1e10, 2e11],
                        total_current_assets: [5e7, 3e8, 2e9, 1e10, 2e11],
                        total_revenue: [0, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11],
                        total_liabilities_fy: [5e7, 3e8, 2e9, 1e10, 2e11],
                        total_liabilities_fq: [5e7, 3e8, 2e9, 1e10, 2e11],
                        earnings_per_share_diluted_ttm: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        earnings_per_share_forecast_next_fq: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        earnings_per_share_fq: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        enterprise_value_ebitda_ttm: [-5e3, -1e3, 0, 1e3, 5e3],
                        enterprise_value_fq: [-2e11, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        eps_surprise_fq: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        eps_surprise_percent_fq: [-30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30],
                        price_revenue_ttm: [0, 5, 10, 50, 100, 1e3, 5e3, 1e4],
                        number_of_employees: [100, 500, 1e3, 1e4, 1e5, 1e6],
                        last_annual_eps: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        last_annual_revenue: [5e7, 3e8, 2e9, 1e10, 2e11],
                        CCI20: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        ChaikinMoneyFlow: [-1, -.9, -.8, -.7, -.6, -.5, -.4, -.3, -.2, -.1, 0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1],
                        MoneyFlow: [0, 5, 10, 15, 25, 50, 100],
                        "Value.Traded": [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 5e8, 75e7]
                    },
                    uk: {
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8],
                        open: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        close: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        high: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        low: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        current_ratio: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 75, 100],
                        total_shares_outstanding_fundamental: [5e6, 1e7, 5e7, 3e8, 2e9, 1e10, 5e10, 1e11],
                        dividends_paid: [-2e11, -15e10, -5e10, -1e10, -2e9, -3e8, -1e8, -5e7, 0],
                        gross_profit: [-1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11]
                    },
                    india: {
                        market_cap_basic: [1e7, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11, 1e12, 2e12],
                        open: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        close: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        high: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        low: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3, 1e4, 2e4],
                        quick_ratio: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 100, 500],
                        change_from_open: [-20, -10, 0, 10, 20, 50],
                        revenue_per_employee: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 3e8, 5e8],
                        dividends_paid: [-5e10, -1e10, -2e9, -3e8, -1e8, -5e7, 0],
                        gross_profit: [-1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        total_shares_outstanding_fundamental: [5e7, 3e8, 2e9, 5e9, 1e10],
                        number_of_employees: [100, 500, 1e3, 1e4, 1e5, 2e5]
                    },
                    spain: {
                        market_cap_basic: [1e7, 3e7, 5e7, 1e8, 3e8, 5e8, 1e9, 1e10, 5e10],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7],
                        relative_volume_10d_calc: [0, 1, 2, 3, 4, 5, 10],
                        change: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        gap: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        quick_ratio: [0, 1, 2, 3, 4, 5, 10],
                        ebitda: [5e5, 1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 2e9, 5e9, 1e10, 15e9],
                        "Volatility.W": [0, 5, 10, 15, 20],
                        "Volatility.M": [0, 5, 10, 15, 20],
                        "Volatility.D": [0, 5, 10, 15, 20],
                        Mom: [-15, -10, -5, 0, 5, 10, 15],
                        goodwill: [5e7, 3e8, 2e9, 1e10, 25e9],
                        revenue_per_employee: [1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7],
                        dividends_paid: [-5e9, -2e9, -3e8, -1e8, -5e7, 0],
                        gross_profit: [-2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e10],
                        price_revenue_ttm: [0, 5, 10, 50, 100]
                    },
                    russia: {
                        market_cap_basic: [1e7, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11, 1e12, 2e12],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 25e7, 5e8, 1e9],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 25e7, 5e8, 1e9],
                        relative_volume_10d_calc: [0, 1, 2, 3, 4, 5, 10, 15, 20, 50],
                        change: [-30, -20, -15, -10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        open: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        close: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        high: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        low: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        gap: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        quick_ratio: [0, 1, 2, 3, 4, 5, 10, 15, 20],
                        price_free_cash_flow_ttm: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                        change_from_open: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        "Volatility.W": [0, 5, 10, 15, 20, 30, 50],
                        "Volatility.M": [0, 5, 10, 15, 20, 30, 50],
                        "Volatility.D": [0, 5, 10, 15, 20, 30, 50],
                        goodwill: [1e7, 5e7, 3e8, 2e9, 1e10, 1e11],
                        revenue_per_employee: [1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 3e7],
                        dividends_paid: [-15e10, -5e10, -1e10, -2e9, -3e8, -1e8, -5e7, 0],
                        gross_profit: [-1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e11],
                        price_revenue_ttm: [0, 5, 10, 50, 100],
                        number_of_employees: [100, 500, 1e3, 1e4, 1e5, 5e5],
                        last_annual_eps: [-100, -50, -20, -10, 0, 10, 20, 50, 100, 500, 1e3]
                    },
                    australia: {
                        market_cap_basic: [5e7, 3e8, 2e9, 1e10, 5e10, 1e11, 15e10],
                        earnings_per_share_basic_ttm: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        ebitda: [5e5, 1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 2e9, 5e9, 1e10, 2e10],
                        dividends_paid: [-5e9, -2e9, -3e8, -5e7, 0]
                    },
                    brazil: {
                        market_cap_basic: [1e7, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11, 1e12],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7],
                        relative_volume_10d_calc: [0, 1, 2, 3, 4, 5, 10, 15, 20, 50],
                        open: [10, 20, 50, 100, 200, 500, 1e3],
                        close: [10, 20, 50, 100, 200, 500, 1e3],
                        high: [10, 20, 50, 100, 200, 500, 1e3],
                        low: [10, 20, 50, 100, 200, 500, 1e3],
                        earnings_per_share_basic_ttm: [-50, -20, -10, 0, 10, 20, 50],
                        change_from_open: [-20, -10, 0, 10, 20],
                        "Volatility.W": [0, 5, 10, 15, 20],
                        "Volatility.M": [0, 5, 10, 15, 20],
                        goodwill: [5e7, 3e8, 2e9, 1e10],
                        revenue_per_employee: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6],
                        dividends_paid: [-1e10, -2e9, -3e8, -1e8, -5e7, 0],
                        net_income: [-2e10, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 1e10, 2e10],
                        gross_profit: [-1e8, -5e7, 5e7, 3e8, 2e9, 1e10, 1e11],
                        total_shares_outstanding_fundamental: [5e7, 3e8, 2e9, 5e9, 1e10],
                        total_current_assets: [5e7, 3e8, 2e9, 1e10, 1e11],
                        total_revenue: [0, 5e7, 3e8, 2e9, 1e10, 2e11],
                        price_revenue_ttm: [0, 5, 10, 50, 100, 1e3],
                        number_of_employees: [100, 500, 1e3, 1e4, 1e5],
                        last_annual_eps: [-100, -50, -20, -10, 0, 10, 20]
                    },
                    japan: {
                        market_cap_basic: [1e7, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11, 1e12, 2e12, 5e12],
                        price_revenue_ttm: [0, 5, 10, 50, 100],
                        relative_volume_10d_calc: [0, 5, 10, 15, 20, 50],
                        change: [-30, -20, -10, 0, 10, 20, 30],
                        open: [10, 20, 50, 100, 200, 500, 1e3, 1e4, 1e5],
                        close: [10, 20, 50, 100, 200, 500, 1e3, 1e4, 1e5],
                        high: [10, 20, 50, 100, 200, 500, 1e3, 1e4, 1e5],
                        low: [10, 20, 50, 100, 200, 500, 1e3, 1e4, 1e5],
                        gap: [-20, -10, 0, 10, 20],
                        ebitda: [5e5, 1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 2e9, 5e9, 1e10, 25e9, 5e10, 1e11, 2e11, 5e11],
                        change_from_open: [-20, -10, -5, 0, 5, 10, 20],
                        "Volatility.W": [0, 5, 10, 15, 20, 30],
                        "Volatility.M": [0, 5, 10, 15, 20, 30],
                        "Volatility.D": [0, 5, 10, 15, 20, 30],
                        revenue_per_employee: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 5e7]
                    },
                    newzealand: {
                        market_cap_basic: [5e7, 3e8, 2e9, 1e10, 5e10, 1e11],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7],
                        relative_volume_10d_calc: [0, 1, 2, 3, 4, 5, 10, 15],
                        open: [5, 10, 20, 50],
                        close: [5, 10, 20, 50],
                        high: [5, 10, 20, 50],
                        low: [5, 10, 20, 50],
                        current_ratio: [0, 5, 10, 15, 20, 25],
                        quick_ratio: [0, 5, 10, 15, 20, 25],
                        earnings_per_share_basic_ttm: [-10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10],
                        ebitda: [5e5, 1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 2e9, 5e9, 1e10, 2e10],
                        change_from_open: [-20, -15, -10, -5, 0, 5, 10, 15, 20],
                        "Volatility.W": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.M": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.D": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        ATR: [.25, .5, .75, 1, 1.5, 2],
                        Mom: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        goodwill: [25e6, 5e7, 1e8, 25e7, 5e8, 2e9],
                        revenue_per_employee: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6],
                        dividends_paid: [-5e9, -2e9, -3e8, -5e7, 0],
                        basic_eps_net_income: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        net_income: [-5e10, -1e10, -2e9, -3e8, -5e7, 5e7, 3e8, 2e9, 5e9],
                        gross_profit: [0, 25e6, 5e7, 25e7, 5e8, 2e9, 1e10],
                        total_shares_outstanding_fundamental: [5e7, 3e8, 2e9, 1e10],
                        total_current_assets: [5e7, 3e8, 2e9, 1e10],
                        total_revenue: [0, 5e7, 3e8, 2e9, 1e10, 25e9],
                        earnings_per_share_diluted_ttm: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        earnings_per_share_forecast_next_fq: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        earnings_per_share_fq: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        price_revenue_ttm: [0, 5, 10, 50, 100],
                        number_of_employees: [100, 500, 1e3, 1e4, 5e4],
                        last_annual_eps: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5],
                        "Value.Traded": [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7]
                    },
                    turkey: {
                        market_cap_basic: [5e6, 1e7, 5e7, 3e8, 2e9, 1e10, 3e10, 5e10],
                        relative_volume_10d_calc: [0, 1, 2, 3, 4, 5, 10, 15],
                        change: [-20, -15, -10, -5, 0, 5, 10, 15, 20],
                        gap: [-20, -10, -5, 0, 5, 10, 20],
                        "Volatility.W": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.M": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.D": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Value.Traded": [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7]
                    },
                    switzerland: {
                        volume: [5e4, 1e5, 25e4, 5e5, 75e4, 1e6, 2e6, 5e6],
                        average_volume_10d_calc: [5e4, 1e5, 25e4, 5e5, 75e4, 1e6, 2e6, 5e6],
                        change: [-20, -15, -10, -5, 0, 5, 10, 15, 20]
                    },
                    hongkong: {
                        market_cap_basic: [5e7, 3e8, 2e9, 1e10, 5e10, 1e11, 2e11, 25e10, 5e11, 75e10, 1e12],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 25e7],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 1e8, 25e7]
                    },
                    taiwan: {
                        change: [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                        "Volatility.W": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.M": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        "Volatility.D": [0, 1, 2, 3, 4, 5, 10, 15, 20, 30]
                    },
                    netherlands: {},
                    belgium: {},
                    portugal: {},
                    france: {},
                    mexico: {
                        market_cap_basic: [1e7, 5e7, 3e8, 2e9, 1e10, 2e11, 5e11, 1e12, 2e12],
                        change: [-30, -20, -15, -10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10, 15, 20, 30],
                        open: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        close: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        high: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3],
                        low: [10, 20, 50, 100, 200, 500, 1e3, 2e3, 5e3]
                    },
                    canada: {
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7]
                    },
                    colombia: {},
                    uae: {},
                    nigeria: {},
                    singapore: {},
                    germany: {
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 25e6]
                    },
                    peru: {},
                    poland: {
                        volume: [5e4, 1e5, 2e5, 5e5, 75e4, 1e6, 2e6]
                    },
                    italy: {},
                    argentina: {
                        volume: [5e4, 1e5, 2e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7]
                    },
                    israel: {},
                    egypt: {},
                    serbia: {},
                    chile: {},
                    china: {},
                    malaysia: {},
                    ksa: {},
                    bahrain: {},
                    qatar: {},
                    indonesia: {},
                    finland: {},
                    iceland: {},
                    denmark: {},
                    romania: {},
                    sweden: {},
                    slovakia: {},
                    lithuania: {},
                    luxembourg: {},
                    estonia: {},
                    latvia: {},
                    vietnam: {},
                    rsa: {},
                    thailand: {},
                    korea: {},
                    norway: {},
                    philippines: {},
                    greece: {}
                },
                f = {
                    forex: {
                        change_abs: [-50, -20, -10, 0, 10, 20, 50],
                        change: [-5, -1, -.5, -.4, -.3, -.2, -.1, 0, -.1, .2, .3, .4, .5, 1, 5],
                        bid: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        ask: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        open: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        close: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        high: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        low: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        change_from_open: [-5, -2.5, -1, -.5, -.4, -.3, -.2, -.1, 0, -.1, .2, .3, .4, .5, 1, 2.5, 5],
                        "Perf.W": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.1M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.3M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.6M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.Y": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.YTD": [-50, -20, -10, 0, 10, 20, 50],
                        "Volatility.W": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.M": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.D": [0, 5, 10, 15, 20, 30, 50, 70],
                        ADX: [10, 20, 30, 40, 50, 60, 70, 80, 90],
                        ATR: [.25, .5, .75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
                        Mom: [-30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30],
                        CCI20: [-100, -50, -20, -10, 0, 10, 20, 50, 100]
                    }
                },
                g = {
                    crypto: {
                        market_cap_calc: [1e4, 1e5, 5e5, 1e6, 1e7, 3e8, 2e9, 1e10, 5e10, 1e11],
                        market_cap_diluted_calc: [1e4, 1e5, 5e5, 1e6, 1e7, 3e8, 2e9, 1e10, 5e10, 1e11],
                        total_shares_outstanding: [1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 5e9, 1e10, 5e10, 1e11],
                        total_shares_diluted: [1e6, 5e6, 1e7, 5e7, 1e8, 5e8, 1e9, 5e9, 1e10, 5e10, 1e11],
                        total_value_traded: [1e4, 1e5, 5e5, 1e6, 1e7, 3e8, 2e9, 1e10, 5e10],
                        volume: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7],
                        average_volume_10d_calc: [5e4, 1e5, 5e5, 75e4, 1e6, 2e6, 5e6, 1e7, 2e7, 5e7, 3e8, 5e8, 2e9],
                        relative_volume_10d_calc: [0, .5, 1, 1.5, 2, 2.5, 5],
                        change_abs: [-100, -50, -20, -10, 0, 10, 20, 50, 100],
                        change: [-50, -20, -10, 0, 10, 20, 50],
                        bid: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        ask: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        open: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        close: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        high: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        low: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        change_from_open: [-10, -5, -4, -3, -2, -1, -.5, 0, .5, 1, 2, 3, 4, 5, 10],
                        "Perf.W": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.1M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.3M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.6M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.Y": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.YTD": [-50, -20, -10, 0, 10, 20, 50],
                        "Volatility.W": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.M": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.D": [0, 5, 10, 15, 20, 30, 50, 70],
                        ADX: [10, 20, 30, 40, 50, 60, 70, 80, 90],
                        ATR: [.25, .5, .75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
                        Mom: [-30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30],
                        CCI20: [-100, -50, -20, -10, 0, 10, 20, 50, 100]
                    }
                },
                m = {
                    cfd: {
                        volume: [1e3, 5e3, 1e4, 5e4, 1e5],
                        average_volume_10d_calc: [5e3, 1e4, 5e4, 1e5, 1e6, 1e7, 1e8, 1e9],
                        relative_volume_10d_calc: [0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1],
                        change_abs: [-50, -20, -10, 0, 10, 20, 50],
                        change: [-5, -1, -.5, -.4, -.3, -.2, -.1, 0, -.1, .2, .3, .4, .5, 1, 5],
                        bid: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        ask: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        open: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        close: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        high: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        low: [5, 10, 20, 50, 100, 500, 1e3, 5e3],
                        change_from_open: [-5, -4, -3, -2, -1, -.5, 0, .5, 1, 2, 3, 4, 5],
                        "Perf.W": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.1M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.3M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.6M": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.Y": [-50, -20, -10, 0, 10, 20, 50],
                        "Perf.YTD": [-50, -20, -10, 0, 10, 20, 50],
                        "Volatility.W": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.M": [0, 5, 10, 15, 20, 30, 50, 70],
                        "Volatility.D": [0, 5, 10, 15, 20, 30, 50, 70],
                        ADX: [10, 20, 30, 40, 50, 60, 70, 80, 90],
                        ATR: [.25, .5, .75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
                        Mom: [-30, -20, -15, -10, -5, 0, 5, 10, 15, 20, 30],
                        CCI20: [-100, -50, -20, -10, 0, 10, 20, 50, 100]
                    }
                };

            function _(e) {
                switch (e) {
                    case "stock":
                    case "futures":
                        return p;
                    case "forex":
                        return f;
                    case "crypto":
                    case "crypto_mkt":
                        return g;
                    case "cfd":
                        return m
                }
                return p
            }
            const v = {
                    america: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: 1
                            }
                        },
                        earnings_this_week: {
                            earnings_release_next_date: o("This Week")
                        }
                    },
                    uk: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    india: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: 2
                            }
                        }
                    },
                    spain: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .1
                            }
                        }
                    },
                    russia: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    australia: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        }
                    },
                    brazil: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    japan: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    newzealand: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .2
                            }
                        }
                    },
                    turkey: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .2
                            }
                        }
                    },
                    switzerland: {
                        top_gainers: {
                            close: [.1, 1e4]
                        },
                        top_losers: {
                            close: [.1, 1e4]
                        }
                    },
                    hongkong: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    taiwan: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    netherlands: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    belgium: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    portugal: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    france: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    mexico: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    canada: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    singapore: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    germany: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        }
                    },
                    poland: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    israel: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    italy: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .5
                            }
                        }
                    },
                    argentina: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        },
                        unusual_volume: {
                            relative_volume_10d_calc: {
                                operator: "greater",
                                value: .2
                            }
                        }
                    },
                    forex: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        },
                        most_capitalized: null,
                        earnings_this_week: null,
                        volume_leaders: null,
                        most_volatile: {
                            "Volatility.D": {
                                operator: "greater",
                                value: 1
                            }
                        },
                        unusual_volume: null,
                        high_dividend: null
                    },
                    crypto: {
                        top_gainers: {
                            close: null
                        },
                        top_losers: {
                            close: null
                        },
                        most_capitalized: null,
                        earnings_this_week: null,
                        volume_leaders: null,
                        most_volatile: {
                            "Volatility.D": {
                                operator: "greater",
                                value: 1
                            }
                        },
                        unusual_volume: null,
                        high_dividend: null
                    },
                    china: {
                        top_gainers: {
                            close: [2, 1e4]
                        },
                        top_losers: {
                            close: [2, 1e4]
                        }
                    },
                    chile: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        }
                    },
                    bahrain: {
                        top_gainers: {
                            close: [.01, 1e4]
                        },
                        top_losers: {
                            close: [.01, 1e4]
                        }
                    },
                    malaysia: {
                        top_gainers: {
                            close: [.01, 1e4]
                        },
                        top_losers: {
                            close: [.01, 1e4]
                        }
                    },
                    serbia: {
                        top_gainers: {
                            close: [.1, 1e4]
                        },
                        top_losers: {
                            close: [.1, 1e4]
                        }
                    },
                    ksa: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        }
                    },
                    egypt: {
                        top_gainers: {
                            close: [1, 1e4]
                        },
                        top_losers: {
                            close: [1, 1e4]
                        }
                    }
                },
                b = {
                    bond: "cfd",
                    cfd: "cfd",
                    crypto: "crypto",
                    dr: "stock",
                    forex: "forex",
                    fund: "stock",
                    futures: "futures",
                    index: "index",
                    right: "stock",
                    stock: "stock",
                    structured: "stock",
                    warrant: "stock"
                },
                y = (e, t, r) => {
                    if (r && 0 !== r.length) {
                        if (r.includes("government")) return "cfd";
                        if (r.includes("warrant") || r.includes("right") || r.includes("structured") || r.includes("bond") || r.includes("convertible") || r.includes("corporate")) return S(e)
                    }
                    const o = b[t];
                    return "stock" === o || "index" === o || "futures" === o ? S(e) : o || t
                },
                w = {
                    EURONEXT: "euronext"
                };

            function S(e) {
                return w[e] || a[(e => {
                    let t = "us";
                    for (const r of i) {
                        const o = n[r];
                        if (o.exchangesStocks && o.exchangesStocks.includes(e) || o.defaultExchange === e) {
                            t = o.tvLocale || r;
                            break
                        }
                    }
                    return t
                })(e)]
            }

            function C(e) {
                return e.reduce((e, t) => e.concat(function(e) {
                    return s[e] && s[e].stocks || []
                }(t)), [])
            }
            const k = ["luxembourg", "greece", "norway", "slovakia", "sweden", "philippines"];

            function E() {
                return k
            }
        },
        80691: (e, t, r) => {
            "use strict";
            r.d(t, {
                SIGNAL: () => n,
                signalComputationFunctions: () => s,
                signalDisplayFunctions: () => a,
                recommendsRange: () => l,
                generateRecommendsRequest: () => u
            });
            var o = r(8107);
            const n = {
                    STRONG_BUY: {
                        key: "Strong Buy",
                        title: (0, o.t)("Strong Buy", {
                            context: "screener_rating"
                        }),
                        shortTitle: (0, o.t)("Strong Buy", {
                            context: "screener_rating"
                        }),
                        cssClass: "tv-screener-table__signal--strong-buy"
                    },
                    BUY: {
                        key: "Buy",
                        title: (0, o.t)("Buy", {
                            context: "screener_rating"
                        }),
                        shortTitle: (0, o.t)("B", {
                            context: "first_letter_of_Buy"
                        }),
                        cssClass: "tv-screener-table__signal--buy"
                    },
                    STRONG_SELL: {
                        key: "Strong Sell",
                        title: (0, o.t)("Strong Sell", {
                            context: "screener_rating"
                        }),
                        shortTitle: (0, o.t)("Strong Sell", {
                            context: "screener_rating"
                        }),
                        cssClass: "tv-screener-table__signal--strong-sell"
                    },
                    SELL: {
                        key: "Sell",
                        title: (0, o.t)("Sell", {
                            context: "screener_rating"
                        }),
                        shortTitle: (0, o.t)("S", {
                            context: "first_letter_of_Sell"
                        }),
                        cssClass: "tv-screener-table__signal--sell"
                    },
                    NEUTRAL: {
                        key: "Neutral",
                        title: (0, o.t)("Neutral", {
                            context: "screener_rating"
                        }),
                        shortTitle: (0, o.t)("N", {
                            context: "first_letter_of_Neutral"
                        }),
                        cssClass: "tv-screener-table__signal--neutral"
                    }
                },
                i = (e, t = !1, r = !1) => {
                    const o = t ? "" : " i-hidden";
                    return r ? `<span title="${e.title}" class="tv-screener-table__signal apply-common-tooltip ${e.cssClass}${o}">${e.shortTitle}</span>` : `<span class="tv-screener-table__signal ${e.cssClass}${o}">${e.title}</span>`
                },
                s = {
                    computeMASignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e < t && (r = n.BUY), e > t && (r = n.SELL), r
                    },
                    computeRSISignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e < 30 && t < e && (r = n.BUY), e > 70 && t > e && (r = n.SELL), r
                    },
                    computeStochSignal: (e, t, r, o) => {
                        let i = n.NEUTRAL;
                        return e < 20 && t < 20 && e > t && r < o && (i = n.BUY), e > 80 && t > 80 && e < t && r > o && (i = n.SELL), i
                    },
                    computeCCI20Signal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e < -100 && e > t && (r = n.BUY), e > 100 && e < t && (r = n.SELL), r
                    },
                    computeADXSignal: (e, t, r, o, i) => {
                        let s = n.NEUTRAL;
                        return e > 20 && o < i && t > r && (s = n.BUY), e > 20 && o > i && t < r && (s = n.SELL), s
                    },
                    computeAOSignal: (e, t, r) => {
                        let o = n.NEUTRAL;
                        return (e > 0 && t < 0 || e > 0 && t > 0 && e > t && r > t) && (o = n.BUY), (e < 0 && t > 0 || e < 0 && t < 0 && e < t && r < t) && (o = n.SELL), o
                    },
                    computeMomSignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e > t && (r = n.BUY), e < t && (r = n.SELL), r
                    },
                    computeMACDSignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e > t && (r = n.BUY), e < t && (r = n.SELL), r
                    },
                    computeBBBuySignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e < t && (r = n.BUY), r
                    },
                    computeBBSellSignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e > t && (r = n.SELL), r
                    },
                    computePSARSignal: (e, t) => {
                        let r = n.NEUTRAL;
                        return e < t && (r = n.BUY), e > t && (r = n.SELL), r
                    },
                    computeRecommendSignal: e => {
                        let t;
                        return e >= -1 && e < -.5 && (t = n.STRONG_SELL), e >= -.5 && e < -.1 && (t = n.SELL), e >= -.1 && e <= .1 && (t = n.NEUTRAL), e > .1 && e <= .5 && (t = n.BUY), e > .5 && e <= 1 && (t = n.STRONG_BUY), t
                    },
                    computeSimpleSignal: e => {
                        let t = n.NEUTRAL;
                        return -1 === e && (t = n.SELL), 1 === e && (t = n.BUY), t
                    }
                },
                a = {
                    processMASignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeMASignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processRSISignal: (e, t, r, o) => {
                        if (null === t) return e;
                        const n = s.computeRSISignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processStochSignal: (e, t, r, o, n, a) => {
                        if (null === t || null === r) return e;
                        const l = s.computeStochSignal(t, r, o, n);
                        return `${e} ${i(l,a.displaySignal,!0)}`
                    },
                    processCCI20Signal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeCCI20Signal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processADXSignal: (e, t, r, o, n, a, l) => {
                        if (null === t || null === r || null === o) return e;
                        const c = s.computeADXSignal(t, r, o, n, a);
                        return `${e} ${i(c,l.displaySignal,!0)}`
                    },
                    processAOSignal: (e, t, r, o, n) => {
                        if (null === t || null === r || null === o) return e;
                        const a = s.computeAOSignal(t, r, o);
                        return `${e} ${i(a,n.displaySignal,!0)}`
                    },
                    processMomSignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeMomSignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processMACDSignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeMACDSignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processBBBuySignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeBBBuySignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processBBSellSignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computeBBSellSignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processPSARSignal: (e, t, r, o) => {
                        if (null === t || null === r) return e;
                        const n = s.computePSARSignal(t, r);
                        return `${e} ${i(n,o.displaySignal,!0)}`
                    },
                    processRecommendSignal: e => {
                        if (null === e || !isNumber(e)) return e;
                        const t = s.computeRecommendSignal(e);
                        return void 0 === t ? e : "" + i(t, !0)
                    },
                    processSimpleSignal: (e, t, r) => {
                        if (null === t || "&mdash;" === e) return e;
                        const o = s.computeSimpleSignal(t);
                        return `${e} ${i(o,r.displaySignal,!0)}`
                    }
                },
                l = [n.STRONG_BUY.title, n.BUY.title, n.NEUTRAL.title, n.SELL.title, n.STRONG_SELL.title],
                c = e => {
                    let t, r;
                    return e === n.STRONG_SELL.title && (t = [-1, -.5], r = -.5), e === n.SELL.title && (t = [-.5, -.1], r = -.1), e === n.NEUTRAL.title && (t = [-.1, .1]), e === n.BUY.title && (t = [.1, .5], r = .1), e === n.STRONG_BUY.title && (t = [.5, 1], r = .5), {
                        right: t,
                        notEqual: r
                    }
                },
                u = (e, t) => {
                    if (Array.isArray(e)) {
                        const r = e.map(e => c(e)),
                            o = [],
                            n = [];
                        for (const e of r) {
                            if (void 0 !== e.notEqual) {
                                r.filter(t => t.notEqual !== e.notEqual && (t.equal === e.notEqual || t.right && (t.right[0] === e.notEqual || t.right[1] === e.notEqual))).length || o.push({
                                    left: t,
                                    operation: "nequal",
                                    right: e.notEqual
                                })
                            }
                            e.right && n.push({
                                left: t,
                                operation: "in_range",
                                right: e.right
                            }), void 0 !== e.equal && n.push({
                                left: t,
                                operation: "equal",
                                right: e.equal
                            })
                        }
                        return {
                            filter: o,
                            filter2AndPart: n,
                            filter2Flag: !0
                        }
                    }
                    const r = c(e);
                    if (0 === r.equal) return {
                        left: t,
                        operation: "equal",
                        right: 0
                    };
                    const o = [{
                        left: t,
                        operation: "in_range",
                        right: r.right
                    }];
                    return void 0 !== r.notEqual && o.push({
                        left: t,
                        operation: "nequal",
                        right: r.notEqual
                    }), o
                }
        },
        94911: (e, t, r) => {
            "use strict";
            r.d(t, {
                getCurrentTimezone: () => i,
                setCurrentTimezone: () => s,
                getTimezoneByMarket: () => a
            });
            var o = r(28788);
            let n = null;
            const i = () => n,
                s = e => {
                    e && e !== n && (n = e)
                };

            function a(e) {
                const t = (0, o.getMarketsByScreenerType)("stock")[e];
                return t ? t.timezone : null
            }
        },
        28089: (e, t, r) => {
            "use strict";
            r.d(t, {
                getProductIdFromStockExchange: () => a,
                hasStockScannerExchange: () => s,
                isEmbedUnrestrictedExchange: () => l
            });
            var o = r(55357);
            const n = JSON.parse('{"NASDAQ":"exchange-nasdaq","NYSE":"exchange-nyse","NYSE ARCA":"exchange-amex","AMEX":"exchange-amex","OTC":"exchange-otc","DFM":"exchange-dfm","BCBA":"exchange-bcba","ASX":"exchange-asx","EURONEXT":"exchange-euronext_stocks","EURONEXTBRU":"exchange-euronext_stocks","EURONEXTPAR":"exchange-euronext_stocks","EURONEXTLIS":"exchange-euronext_stocks","EURONEXTAMS":"exchange-euronext_stocks","BAHRAIN":"exchange-bahrain","BMFBOVESPA":"exchange-bovespa_stocks","TSX":"exchange-tsx","TSXV":"exchange-tsxv","CSE":"exchange-cse","SIX":"exchange-six","BCS":"exchange-bcs","SSE":"exchange-sse","SZSE":"exchange-szse","BVC":"exchange-bvc","FWB":"exchange-fwb","SWB":"exchange-swb","XETR":"exchange-xetr","OMXCOP":"exchange-omxcop","OMXTSE":"exchange-omxtse","EGX":"exchange-egx","BME":"exchange-bme","OMXHEX":"exchange-omxhex","HKEX":"exchange-hkex","IDX":"exchange-idx","TASE":"exchange-tase","BSE":"exchange-bse","NSE":"exchange-nse","OMXICE":"exchange-omxice","MIL":"exchange-mil","MILSEDEX":"exchange-mil","FSE":"exchange-fse","NAG":"exchange-nag","SAPSE":"exchange-sapse","TSE":"exchange-omxtse","KRX":"exchange-krx_stocks","OMXVSE":"exchange-omxvse","OMXRSE":"exchange-omxrse","BMV":"exchange-bmv","MYX":"exchange-myx","NSENG":"exchange-nseng","NZX":"exchange-nzx","BVL":"exchange-bvl","GPW":"exchange-gpw","QSE":"exchange-qse","BELEX":"exchange-belex","MOEX":"exchange-moex_stocks","TADAWUL":"exchange-tadawul","OMXSTO":"exchange-omxsto","SGX":"exchange-sgx_stocks","SET":"exchange-set","BIST":"exchange-bist","TWSE":"exchange-twse","LSE":"exchange-lse","LSIN":"exchange-lsin","HOSE":"exchange-hose_stocks","JSE":"exchange-jse_stocks","OSE":"exchange-osl"}'),
                i = [];
            for (const e in o) o.hasOwnProperty(e) && o[e].hasOwnProperty("exchangesStocks") && o[e].exchangesStocks.forEach(e => {
                i.push(e)
            });
            const s = e => (e = {
                OSL: "EURONEXTOSE",
                BCBA: "BYMA",
                AMEX: "NYSE ARCA"
            }[e] || e, i.includes(e));

            function a(e) {
                return n[e] || null
            }

            function l(e) {
                return "ASX" === e
            }
        },
        32161: (e, t, r) => {
            "use strict";
            r.d(t, {
                getScreenerSymbolLogoUrl: () => h,
                symbolNameWrap: () => d
            });
            var o = r(72777),
                n = r(95496),
                i = r(95417);

            function s(e) {
                const {
                    symbolHtml: t,
                    logoUrl: r,
                    symbolFirstLetter: o,
                    size: i = "xsmall"
                } = e;
                return a({
                    symbolHtml: t,
                    logoHtml: (0, n.getCircleLogoHtml)({
                        logoUrl: r,
                        size: i,
                        placeholderLetter: o,
                        className: "tv-screener-table__logo-container"
                    })
                })
            }

            function a(e) {
                const {
                    logoHtml: t = "",
                    symbolHtml: r = "",
                    wrapHtmlClass: o = ""
                } = e;
                return `\n\t\t<div class="tv-screener-table__symbol-container ${o}">\n\t\t\t<div class="tv-screener-table__symbol-addition"></div>\n\t\t\t${t}\n\t\t\t<div class="tv-screener-table__symbol-container-description">\n\t\t\t\t${r}\n\t\t\t</div>\n\t\t</div>\n\t`
            }
            var l = r(24481),
                c = r(73715);
            const u = (0, o.getLogoUrlResolver)();

            function d(e) {
                const {
                    fieldsOrder: t,
                    proSymbol: r,
                    rowData: o,
                    symbolHtml: n
                } = e, c = t.indexOf(l.ScanFields.LogoId);
                if (-1 !== c) {
                    const e = o[c];
                    return s({
                        symbolHtml: n,
                        symbolFirstLetter: p(r),
                        logoUrl: h(e)
                    })
                }
                const u = t.indexOf(l.ScanFields.BaseCurrencyLogoId),
                    d = -1 !== u,
                    f = t.indexOf(l.ScanFields.CurrencyLogoId),
                    g = -1 !== f;
                if (d && g) {
                    const e = o[u],
                        t = o[f];
                    return function(e, t, r) {
                        return a({
                            symbolHtml: e,
                            logoHtml: (0, i.getCircleLogoPairHtml)({
                                primaryLogoUrl: t,
                                secondaryLogoUrl: r,
                                size: "xsmall",
                                className: "tv-screener-table__logo-container"
                            })
                        })
                    }(n, h(e), h(t))
                }
                if (d) {
                    const e = o[u];
                    return s({
                        symbolHtml: n,
                        symbolFirstLetter: p(r),
                        logoUrl: h(e)
                    })
                }
                if (g) {
                    const e = o[f];
                    return s({
                        symbolHtml: n,
                        symbolFirstLetter: p(r),
                        logoUrl: h(e)
                    })
                }
                return a({
                    symbolHtml: n
                })
            }

            function h(e) {
                if (e && "null" !== e) return u.getSymbolLogoUrl(e, o.LogoSize.Medium)
            }

            function p(e) {
                return (0, c.shortName)(e)[0]
            }
        },
        63735: (e, t, r) => {
            "use strict";
            r.d(t, {
                isUserPro: () => s,
                saveMarketSelectModeSetting: () => a,
                getMarketDialogMode: () => l
            });
            var o = r(42098),
                n = r.n(o),
                i = r(86872);

            function s() {
                return Boolean(window.pro && window.pro.isPro())
            }

            function a(e) {
                n().setValue("screener-market-select-mode", e)
            }

            function l() {
                return window.is_authenticated && s() ? n().getValue("screener-market-select-mode", i.ScreenerMarketDialogMode.Single) : i.ScreenerMarketDialogMode.Single
            }
        },
        74401: (e, t, r) => {
            "use strict";
            r.d(t, {
                markets: () => o
            });
            const o = (0, r(6927).getMarkets)()
        },
        6927: (e, t, r) => {
            "use strict";
            r.d(t, {
                getMarkets: () => n,
                splitMarketsByGroup: () => i,
                getMarketsByScreenerNames: () => s
            });
            var o = r(28788);

            function n() {
                return e = (0, o.getMarketsByScreenerType)("stock"), Object.entries(e).map(([e, t]) => {
                    const r = t.group;
                    return {
                        flag: t.flag,
                        name: t.title,
                        desc: t.stocks.join(", "),
                        country: t.country,
                        group: r,
                        value: e
                    }
                });
                var e
            }

            function i(e) {
                const t = new Map;
                return e.forEach(e => {
                    t.has(e.group) ? t.get(e.group).push(e) : t.set(e.group, [e])
                }), t
            }

            function s(e, t) {
                return t.map(t => e.find(e => e.value === t))
            }
        },
        29786: (e, t, r) => {
            "use strict";
            r.d(t, {
                DEFAULT_SIZE: () => o,
                spinnerSizeMap: () => n
            });
            const o = "large",
                n = {
                    mini: "xsmall",
                    xsmall: "xsmall",
                    small: "small",
                    medium: "medium",
                    large: "large"
                }
        },
        80238: (e, t, r) => {
            "use strict";
            r.d(t, {
                Spinner: () => s
            });
            r(11739);
            var o = r(13548),
                n = r(29786);
            const i = (0, o.parseHtmlElement)('\n\t\t<div class="tv-spinner" role="progressbar">\n\t\t\t<div class="tv-spinner__spinner-layer">\n\t\t\t\t<div class="tv-spinner__background tv-spinner__width_element"></div>\n\t\t\t\t<div class="tv-spinner__circle-clipper tv-spinner__width_element tv-spinner__circle-clipper--left"></div>\x3c!--\n\t\t\t\t--\x3e<div class="tv-spinner__circle-clipper tv-spinner__width_element tv-spinner__circle-clipper--right"></div>\n\t\t\t</div>\n\t\t</div>\n\t');
            class s {
                constructor(e) {
                    this._shown = !1, this._el = i.cloneNode(!0), this.setSize(n.spinnerSizeMap[e || n.DEFAULT_SIZE])
                }
                spin(e) {
                    return this._el.classList.add("tv-spinner--shown"), void 0 === this._container && (this._container = e, void 0 !== e && e.appendChild(this._el)), this._shown = !0, this
                }
                stop(e) {
                    return e && void 0 !== this._container && this._container.removeChild(this._el), this._el.classList.remove("tv-spinner--shown"), this._shown = !1, this
                }
                setStyle(e) {
                    return Object.keys(e).forEach(t => {
                        const r = e[t];
                        void 0 !== r && this._el.style.setProperty(t, r)
                    }), this
                }
                style() {
                    return this._el.style
                }
                setSize(e) {
                    const t = void 0 !== e ? "tv-spinner--size_" + e : "";
                    return this._el.className = `tv-spinner ${t} ${this._shown?"tv-spinner--shown":""}`, this
                }
                getEl() {
                    return this._el
                }
                destroy() {
                    this.stop(), delete this._el, delete this._container
                }
            }
        },
        33735: (e, t, r) => {
            "use strict";
            r.d(t, {
                AbstractIndicator: () => a
            });
            var o = r(87380),
                n = r(75443),
                i = r(6798);
            r(94970);
            const s = (0, o.getLogger)("GUI.Blocks.AbstractIndicator");
            class a {
                constructor(e) {
                    this._classSuffix = "", this._quoteSessionPrefix = "abstract-indicator", this._shortMode = !1, this._showTooltip = !0, this._subscribed = !1, this._tooltipType = "custom", this._lastTooltipText = "", this._quoteSession = e.quoteSession
                }
                getValue() {
                    return this._value
                }
                getTooltipText() {
                    return this._labelMap[this._value] || ""
                }
                getLabel() {
                    return this._labelMap[this._value] || ""
                }
                getElement() {
                    return this._el
                }
                update(e, t) {
                    this._updateValue(e, t), this._render()
                }
                setTooltipEnabled(e = !1) {
                    this._showTooltip !== e && (this._showTooltip = e, this._renderTooltip())
                }
                enableShortMode() {
                    !0 !== this._shortMode && (this._shortMode = !0, this._render())
                }
                disableShortMode() {
                    !1 !== this._shortMode && (this._shortMode = !1, this._render())
                }
                isShortModeEnabled() {
                    return this._shortMode
                }
                start() {
                    !this._subscribed && this._symbolName && (this._quoteSession || (this._quoteSession = (0, i.getQuoteSessionInstance)("simple")), this._quoteSession.subscribe(this._getQuoteSessionId(), this._symbolName, this.update.bind(this)), this._subscribed = !0)
                }
                stop() {
                    this._subscribed && this._quoteSession && this._symbolName && (this._quoteSession.unsubscribe(this._getQuoteSessionId(), this._symbolName), this._subscribed = !1)
                }
                _init(e) {
                    this._el = e.el ? e.el : document.createElement("span"), this._el.innerHTML = "", this._classMap = e.classMap, this._labelMap = e.labelMap, this._showTooltip = e.showTooltip, this._classSuffix = e.classSuffix, this._symbolName = e.symbol, e.tooltipType && (this._tooltipType = e.tooltipType), this._quoteSessionGUID = (0, n.guid)(), !0 === e.short && this.enableShortMode(), e.data && this._updateValue(e.data)
                }
                _clearClasses() {
                    Object.values(this._classMap).map(e => {
                        this._el.classList.remove("" + e), this._el.classList.remove(`${e}${this._classSuffix}`)
                    })
                }
                _render() {
                    this._renderClasses(), this._renderTooltip(), this._renderLabel()
                }
                _renderLabel() {
                    this._el.textContent = this.getLabel()
                }
                _updateValue(e, t) {
                    const r = this._getValueFromData(e);
                    (t || r !== this._value) && (this._value = r)
                }
                _renderClasses() {
                    const e = this._el.classList;
                    e.add(this._componentClass, this._componentClass + this._classSuffix);
                    const t = this._classMap[this._value];
                    for (const r in this._classMap) {
                        const o = this._classMap[r];
                        o && (o === t ? e.add(o, o + this._classSuffix) : e.remove(o, o + this._classSuffix))
                    }!t && this._value && s.logWarn("no className for status " + this._value)
                }
                _renderTooltip() {
                    const e = this._showTooltip ? this.getTooltipText() : "";
                    e !== this._lastTooltipText && (this._lastTooltipText = e, this._el.setAttribute("title", e), "custom" === this._tooltipType && this._el.classList.toggle("apply-common-tooltip", this._showTooltip))
                }
                _getQuoteSessionId() {
                    return `${this._quoteSessionPrefix}.${this._quoteSessionGUID}`
                }
            }
        },
        15701: (e, t, r) => {
            "use strict";
            r.d(t, {
                DataModeIndicator: () => c
            });
            var o = r(8107),
                n = (r(68421), r(52467), r(33735));
            const i = {
                    connecting: (0, o.t)("Connecting"),
                    delayed: (0, o.t)("Delayed"),
                    delayed_streaming: (0, o.t)("Delayed"),
                    endofday: (0, o.t)("End of Day"),
                    forbidden: (0, o.t)("Instrument is not allowed"),
                    realtime: (0, o.t)("Real-time"),
                    snapshot: (0, o.t)("Snapshot"),
                    loading: "",
                    replay: (0,
                        o.t)("Replay Mode")
                },
                s = {
                    connecting: (0, o.t)("C", {
                        context: "data_mode_connecting_letter"
                    }),
                    delayed: (0, o.t)("D", {
                        context: "data_mode_delayed_letter"
                    }),
                    delayed_streaming: (0, o.t)("D", {
                        context: "data_mode_delayed_streaming_letter"
                    }),
                    endofday: (0, o.t)("E", {
                        context: "data_mode_end_of_day_letter"
                    }),
                    forbidden: (0, o.t)("F", {
                        context: "data_mode_forbidden_letter"
                    }),
                    realtime: (0, o.t)("R", {
                        context: "data_mode_realtime_letter"
                    }),
                    snapshot: (0, o.t)("S", {
                        context: "data_mode_snapshot_letter"
                    }),
                    loading: "",
                    replay: (0, o.t)("R", {
                        context: "data_mode_replay_letter"
                    })
                },
                a = {
                    streaming: "realtime"
                },
                l = {
                    classMap: {
                        connecting: "tv-data-mode--connecting",
                        delayed: "tv-data-mode--delayed",
                        delayed_streaming: "tv-data-mode--delayed",
                        endofday: "tv-data-mode--endofday",
                        forbidden: "tv-data-mode--forbidden",
                        realtime: "tv-data-mode--realtime",
                        snapshot: "tv-data-mode--snapshot",
                        loading: "tv-data-mode--loading",
                        replay: "tv-data-mode--replay"
                    },
                    classSuffix: "",
                    data: {
                        values: {
                            update_mode: "connecting"
                        }
                    },
                    labelMap: i,
                    modeInterval: 600,
                    short: !1,
                    shortLabelMap: s,
                    showTooltip: !0,
                    tooltipType: "custom"
                };
            class c extends n.AbstractIndicator {
                constructor(e) {
                    super(e), this._quoteSessionPrefix = "data-mode-indicator", this._componentClass = "tv-data-mode", this._init(e)
                }
                getLabel() {
                    return !0 === this._shortMode ? this._shortLabelMap[this._value] || "" : super.getLabel()
                }
                setMode(e, t) {
                    this.update({
                        values: {
                            update_mode: e,
                            update_mode_seconds: t
                        }
                    })
                }
                hide() {
                    this._el.classList.add("i-hidden")
                }
                show() {
                    this._el.classList.remove("i-hidden")
                }
                getTooltipText() {
                    let e = "";
                    const t = this.getValue();
                    if ("" === t) return e;
                    switch (t) {
                        case "delayed":
                            e = (0, o.t)("Quotes are delayed by {number} min and updated every 30 seconds");
                            break;
                        case "delayed_streaming":
                            e = (0, o.t)("Quotes are delayed by {number} min");
                            break;
                        default:
                            e = this._labelMap[t] || e
                    }
                    return ["delayed", "delayed_streaming"].includes(t) && (e = e.format({
                        number: String(Math.round(this._modeInterval / 60))
                    })), e
                }
                _init(e = {}) {
                    const t = Object.assign({}, l, e);
                    this._modeInterval = t.modeInterval || 600, this._shortLabelMap = t.shortLabelMap || s, super._init(t), this._render()
                }
                _getValueFromData(e) {
                    let t;
                    return t = void 0 !== e.values && void 0 !== e.values.update_mode ? e.values.update_mode : this.getValue(), a[t] || t
                }
                _updateValue(e, t) {
                    void 0 !== e.values && void 0 !== e.values.update_mode_seconds && (this._modeInterval = e.values.update_mode_seconds), super._updateValue(e, t)
                }
            }
        },
        59288: (e, t, r) => {
            "use strict";
            r.d(t, {
                flagUrl: () => n,
                flagHtml: () => i
            });
            var o = r(9622);

            function n(e) {
                return (0, o.flagUrl)(e)
            }

            function i(e) {
                return `<img alt="${e}" src="${n(e)}" class="tv-flag-country tv-flag-country--${e}">`
            }
        },
        9622: (e, t, r) => {
            "use strict";
            r.d(t, {
                flagUrl: () => i,
                getMockedFlag: () => s
            });
            var o = r(53321);
            const n = {
                erl: "eu",
                uk: "gb",
                bitcoin: "btc"
            };

            function i(e, t) {
                e in n && (e = n[e]);
                try {
                    return r(4879)("./flag-square-" + e + ".svg")
                } catch (e) {
                    return s(t)
                }
            }

            function s(e) {
                return e === o.StdTheme.Dark ? r(90291) : r(32559)
            }
        },
        1369: (e, t, r) => {
            "use strict";

            function o(e) {
                return n() ? 0 : i() ? 46 : Math.min(Math.max(e, 46), 450)
            }
            r.d(t, {
                getWidgetBarPadding: () => o,
                isWidgetBarFullscreen: () => n
            });
            const n = () => !window.matchMedia("screen and (min-width: 768px)").matches,
                i = () => !window.matchMedia("screen and (min-width: 1280px)").matches
        },
        6798: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                getQuoteSessionInstance: () => s,
                setQuoteSessionInstance: () => a,
                getQuoteSessionNoEnsure: () => l,
                destroyQuoteSessions: () => c
            });
            var o = r(70447),
                n = r.n(o);
            const i = {};

            function s(e = "full") {
                return i[e] || a(e, new(n())(e)), i[e]
            }

            function a(e = "full", t) {
                i[e] = t
            }

            function l(e = "full") {
                return i[e]
            }

            function c() {
                for (const e in i)
                    if (i.hasOwnProperty(e)) {
                        const t = i[e];
                        void 0 !== t && t.destroy(), delete i[e]
                    }
            }
        },
        63404: (e, t, r) => {
            "use strict";
            e = r.nmd(e);
            var o = r(75443).randomHash;

            function n(e) {
                this._chartApi = e, this._sessionid = "qs_" + o(), this._sessionstarted = !1
            }
            n.prototype.destroy = function() {
                this._sessionstarted && (this._chartApi.quoteDeleteSession(this._sessionid), this._sessionid = null, this._sessionstarted = !1)
            }, n.prototype.connected = function() {
                return this._chartApi.connected()
            }, n.prototype.connect = function(e) {
                this._globalHandler = e, this._chartApi.createSession(this._sessionid, this), this._chartApi.connect()
            }, n.prototype.disconnect = function() {
                this._chartApi.disconnect()
            }, n.prototype.quoteAddSymbols = function(e) {
                this._chartApi.quoteAddSymbols(this._sessionid, e)
            }, n.prototype.quoteRemoveSymbols = function(e) {
                this._chartApi.quoteRemoveSymbols(this._sessionid, e)
            }, n.prototype.quoteFastSymbols = function(e) {
                this._chartApi.quoteFastSymbols(this._sessionid, e)
            }, n.prototype.quoteSetFields = function(e) {
                this._chartApi.quoteSetFields(this._sessionid, e)
            }, n.prototype.onMessage = function(e) {
                switch (e.method) {
                    case "connected":
                        this._sessionstarted || (this._chartApi.quoteCreateSession(this._sessionid), this._sessionstarted = !0);
                        break;
                    case "disconnected":
                        this._sessionstarted = !1
                }
                this._globalHandler(e)
            }, n.prototype.quoteHibernateAll = function(e) {
                this._chartApi.quoteHibernateAll(this._sessionid)
            }, TradingView.QuoteSession = n, e && e.exports && (e.exports = n)
        },
        70447: (e, t, r) => {
            "use strict";
            e = r.nmd(e);
            var o = r(96276),
                n = r(58848).default,
                i = r(16152).default,
                s = r(11228).PriceFormatter;
            const {
                uniq: a
            } = r(94972);
            var l, c = r(75443),
                u = r(24754).parseUpdateMode,
                d = r(21318).deepExtend;

            function h(e, t) {
                this.options = Object.assign({
                    throttleTimeout: 125
                }, t), this._connected = !1, this._symbol_data = {}, this._subscriptions = {}, this.onConnect = new o, this.onDisconnect = new o, this._quoteApi = new l(window.ChartApiInstance), this._type = e || "full", this._delayUpdateFastSymbols = i(this._updateFastSymbols, 250), this._throttledSymbolData = {}, this._formatterValuesCache = {}, this._waitingForFormatters = {}, this._snapshotValuesCache = {}, this._waitingForSnapshot = {}, this.connect()
            }
            l = r(63404), h.prototype.destroy = function() {
                    this._quoteApi.destroy(), this._quoteApi = null, this._connected = !1, this.onDisconnect.fire()
                }, h.prototype.typeFields = {}, h.prototype.typeFields.simple = ["base-currency-logoid", "ch", "chp", "currency-logoid", "currency_code", "current_session", "description", "exchange", "format", "fractional", "is_tradable", "language", "local_description", "logoid", "lp", "lp_time", "minmov", "minmove2", "original_name", "pricescale", "pro_name", "short_name", "type", "update_mode", "volume"],
                h.prototype.typeFields.simpleDetailed = [].concat(h.prototype.typeFields.simple, ["ask", "bid", "fundamentals", "high_price", "is_tradable", "low_price", "open_price", "prev_close_price", "rch", "rchp", "rtc", "rtc_time", "status", "basic_eps_net_income", "beta_1_year", "earnings_per_share_basic_ttm", "industry", "market_cap_basic", "price_earnings_ttm", "sector", "volume", "dividends_yield", "timezone"]), h.prototype.typeFields.full = [], h.prototype.typeFields.watchlist = [].concat(h.prototype.typeFields.simple, ["rchp", "rtc", "country_code", "provider_id"]), h.prototype.typeFields.portfolio = ["pro_name", "short_name", "exchange", "description", "sector", "type", "industry", "currency_code", "currency_id", "ch", "chp", "logoid", "currency-logoid", "base-currency-logoid", "earnings_per_share_forecast_next_fq", "earnings_release_next_date", "earnings_release_date", "earnings_per_share_fq", "lp", "fractional", "minmov", "minmove2", "pricescale", "volume", "average_volume", "market_cap_basic", "total_revenue", "earnings_per_share_basic_ttm", "price_earnings_ttm", "beta_1_year", "dps_common_stock_prim_issue_fy", "dividends_yield", "fundamental_currency_code", "rates_mc", "rates_fy", "rates_ttm"], h.prototype.typeFields.notes = ["short_name", "pro_name", "logoid", "currency-logoid", "base-currency-logoid", "symbol-primaryname", "type"], h.prototype.connect = function(e) {
                    this._quoteApi.connect(this.quoteHandler.bind(this))
                }, h.prototype.quoteHandler = function(e) {
                    var t = e.method,
                        r = e.params;
                    switch (t) {
                        case "connected":
                            this._connected || (this._connected = !0, this.onConnected());
                            break;
                        case "quote_list_fields":
                            break;
                        case "quote_symbol_data":
                            this._connected && this.onSymbolData(r[0]);
                            break;
                        case "quote_completed":
                            this._connected && this.onSymbolData({
                                symbolname: r[0],
                                complete: performance.now(),
                                values: {}
                            });
                            break;
                        case "disconnected":
                            this._connected && (this._connected = !1, this.onDisconnect.fire())
                    }
                }, h.prototype.onConnected = function() {
                    this.setFields();
                    var e = Object.keys(this._symbol_data);
                    e.length && (this._quoteApi.quoteAddSymbols(e), this._delayUpdateFastSymbols()), this.onConnect.fire()
                }, h.prototype.setFields = function() {
                    var e = h.prototype.typeFields[this._type];
                    e && e.length && this._quoteApi.quoteSetFields(e)
                }, h.prototype.onSymbolData = function(e) {
                    var t = e.symbolname,
                        r = this._throttledSymbolData[t];
                    r || (r = this._throttledSymbolData[t] = {
                        fnDispatch: n(this.dipatchSymbolData.bind(this), this.options.throttleTimeout)
                    }), r.cache ? d(r.cache, e) : r.cache = e, r.fnDispatch(t)
                }, h.prototype._parseUpdateMode = function(e) {
                    var t = u(e.update_mode);
                    null !== t && (e.update_mode = t.mode, e.update_mode_seconds = t.interval)
                }, h.prototype.dipatchSymbolData = function(e) {
                    var t = this._symbol_data[e],
                        r = this._throttledSymbolData[e].cache;
                    if (delete this._throttledSymbolData[e].cache, this._symbol_data[e])
                        for (var o in d(t, r), t.values && this._parseUpdateMode(t.values), this._subscriptions) {
                            var n = this._subscriptions[o];
                            n.has(e) && n.get(e).forEach((function(e) {
                                e(t, r)
                            }))
                        }
                }, h.prototype.subscribe = function(e, t, r) {
                    this._subscriptions[e] = this._subscriptions[e] || new Map;
                    var o = this._subscriptions[e];
                    t = [].concat(t);
                    var n = [];
                    t.forEach((function(e) {
                        this._symbol_data[e] ? o && o.has(e) || this._symbol_data[e].subscribers_count++ : (this._symbol_data[e] = {
                            subscribers_count: 1
                        }, n.push(e)), o.has(e) || o.set(e, []), o.get(e).push(r), o.get(e).fast = !0, this._symbol_data[e] && this._symbol_data[e].values && r(this._symbol_data[e], this._symbol_data[e])
                    }), this), n.length && this._connected && (this._quoteApi.quoteAddSymbols(n), this._delayUpdateFastSymbols())
                }, h.prototype.unsubscribe = function(e, t, r) {
                    t = [].concat(t);
                    for (var o = this._subscriptions[e], n = [], i = 0; i < t.length; i++) {
                        var s = t[i];
                        if (o)
                            if (o.has(s) && r) {
                                var a = o.get(s).indexOf(r);
                                ~a && o.get(s).splice(a, 1), o.get(s).length || o.delete(s)
                            } else o.delete(s);
                        o && 0 === o.size && delete this._subscriptions[e], this._symbol_data.hasOwnProperty(s) && (o && !o.has(s) && this._symbol_data[s].subscribers_count--, this._symbol_data[s].subscribers_count || (delete this._symbol_data[s], n.push(s)))
                    }
                    n.length && this._connected && (this._quoteApi.quoteRemoveSymbols(n), this._delayUpdateFastSymbols())
                }, h.prototype.setFastSymbols = function(e, t) {
                    if (this._subscriptions[e])
                        for (var r = this._subscriptions[e], o = Array.from(r.keys()), n = 0; n < o.length; ++n) {
                            var i = o[n];
                            r.get(i).fast = -1 !== t.indexOf(i)
                        }
                    this._delayUpdateFastSymbols()
                }, h.prototype._updateFastSymbols = function() {
                    if (this._connected) {
                        var e = this._fastSymbols();
                        0 === e.length ? this._quoteApi.quoteHibernateAll() : this._quoteApi.quoteFastSymbols(e)
                    }
                }, h.prototype._delayUpdateFastSymbols = h.prototype._updateFastSymbols, h.prototype._fastSymbols = function() {
                    var e = [];
                    for (var t in this._subscriptions)
                        for (var r = this._subscriptions[t], o = Array.from(r.keys()), n = 0; n < o.length; ++n) {
                            var i = o[n];
                            r.get(i).fast && e.push(i)
                        }
                    return e = a(e)
                }, h.prototype.formatter = function(e, t) {
                    var r = this;
                    if (this._waitingForFormatters[e]) return this._waitingForFormatters[e];

                    function o(e) {
                        var r = t && !e.fractional ? 1 : e.minmov;
                        return new s(e.pricescale, r, e.fractional, e.minmove2)
                    }
                    var n = new Promise((function(t, n) {
                        if (r._formatterValuesCache[e]) t(o(r._formatterValuesCache[e]));
                        else {
                            var i = c.guid();
                            r.subscribe(i, [e], (function(s) {
                                "error" === s.status && (r._waitingForFormatters[e] = null, n("Quotes snapshot is not received")),
                                    function(e) {
                                        return e && null != e.pricescale && null != e.minmov
                                    }(s.values) && (r._waitingForFormatters[e] = null, r._formatterValuesCache[e] = s.values, t(o(s.values)), r.unsubscribe(i, e))
                            }))
                        }
                    }));
                    return this._waitingForFormatters[e] = n, n
                }, h.prototype.snapshot = function(e) {
                    var t = this;
                    if (this._waitingForSnapshot[e]) return this._waitingForSnapshot[e];
                    var r = new Promise((function(r, o) {
                        if (t._snapshotValuesCache[e]) r(t._snapshotValuesCache[e]);
                        else {
                            var n = c.guid();
                            t.subscribe(n, [e], (function(i) {
                                "error" === i.status && (t._waitingForSnapshot[e] = null, o("Quotes snapshot is not received"));
                                var s = i.values;
                                s && s.minmov && s.pricescale && s.description && (t._waitingForSnapshot[e] = null, t._snapshotValuesCache[e] = s, r(s), t.unsubscribe(n, e))
                            }))
                        }
                    }));
                    return this._waitingForSnapshot[e] = r, r
                }, TradingView.QuoteSessionMultiplexer = h, e && e.exports && (e.exports = h)
        },
        4033: (e, t, r) => {
            "use strict";
            var o = r(57014),
                n = r(51966).tzData;

            function i(e) {
                this._name = e;
                var t = n[e];
                if (t || (t = {
                        time: [],
                        offset: []
                    }, this._invalid = !0), t.time.length !== t.offset.length && (t = {
                        time: [],
                        offset: []
                    }, this._invalid = !0), !t.time_utc) {
                    for (var r = t.time, o = t.offset, i = r.length, s = new Array(i), a = 0; a < i; a++) r[a] *= 1e3, o[a] *= 1e3, s[a] = r[a] - o[a];
                    t.time_utc = s
                }
                this.tz = t
            }

            function s(e, t) {
                var r = e.length;
                if (0 === r) return -1;
                if (isNaN(t)) throw Error("Key is NaN");
                for (var o = 0, n = r - 1, i = a((o + n) / 2);;) {
                    if (e[i] > t) {
                        if ((n = i - 1) < o) return i
                    } else if (n < (o = i + 1)) return i < r - 1 ? i + 1 : -1;
                    i = a((o + n) / 2)
                }
            }
            i.prototype.offset_utc = function(e) {
                return i._offset(this.tz.time_utc, this.tz.offset, e)
            }, i.prototype.offset_loc = function(e) {
                return i._offset(this.tz.time, this.tz.offset, e)
            }, i.prototype.name = function() {
                return this._name
            }, i.prototype.correction_loc = function(e) {
                var t = this.tz.time,
                    r = this.tz.offset,
                    o = s(t, e);
                if (o < 1) return 0;
                var n = r[o] - r[o - 1];
                if (n > 0 && e - t[o - 1] <= n) return n;
                return 0
            }, i.prototype.is_valid = function() {
                return !this._invalid
            }, i._offset = function(e, t, r) {
                var o = s(e, r);
                return -1 === o ? 0 : t[o]
            };
            var a = function(e) {
                    return 0 | e
                },
                l = function(e) {
                    return 60 * e * 1e3
                },
                c = function(e, t) {
                    return u(e) - u(t)
                },
                u = function(e) {
                    return e < 0 ? a(e / 1e3) - (e % 1e3 != 0 ? 1 : 0) : a(e / 1e3)
                };

            function d(e) {
                return e % 4 == 0 && (e % 100 != 0 || e % 400 == 0)
            }
            var h = {
                    0: 0,
                    1: 31,
                    2: 59,
                    3: 90,
                    4: 120,
                    5: 151,
                    6: 181,
                    7: 212,
                    8: 243,
                    9: 273,
                    10: 304,
                    11: 334
                },
                p = { ...o.WeekDays,
                    ...o.Months,
                    YEAR: 1,
                    MONTH: 2,
                    WEEK_OF_YEAR: 3,
                    DAY_OF_MONTH: 5,
                    DAY_OF_YEAR: 6,
                    DAY_OF_WEEK: 7,
                    HOUR_OF_DAY: 11,
                    MINUTE: 12,
                    SECOND: 13,
                    minutesPerDay: 1440,
                    millisecondsPerDay: l(1440),
                    get_minutes_from_hhmm: function(e) {
                        return -1 !== e.indexOf(":") && (e = e.split(":").join("")), e % 100 + 60 * a(e / 100)
                    },
                    get_year: function(e) {
                        return e.getUTCFullYear()
                    },
                    get_month: function(e) {
                        return e.getUTCMonth()
                    },
                    get_hours: function(e) {
                        return e.getUTCHours()
                    },
                    get_minutes: function(e) {
                        return e.getUTCMinutes()
                    },
                    get_seconds: function(e) {
                        return e.getUTCSeconds()
                    },
                    get_day_of_month: function(e) {
                        return e.getUTCDate()
                    },
                    get_day_of_week: function(e) {
                        return e.getUTCDay() + 1
                    },
                    get_day_of_year: function(e) {
                        var t = e.getUTCMonth(),
                            r = h[t];
                        return t > p.JANUARY + 1 && d(e.getUTCFullYear()) && (r += 1), r + e.getUTCDate()
                    },
                    get_week_of_year: function(e) {
                        var t = new Date(Date.UTC(e.getUTCFullYear(), 0, 1)).getUTCDay(),
                            r = 0 === t ? 1 : 8 - t,
                            o = p.get_day_of_year(e) - r;
                        return Math.ceil(o / 7) + 1
                    },
                    get_minutes_from_midnight: function(e) {
                        return 60 * p.get_hours(e) + p.get_minutes(e)
                    },
                    set_hms: function(e, t, r, o, n, i) {
                        e.setUTCHours(t), e.setUTCMinutes(r), e.setUTCSeconds(o), e.setUTCMilliseconds(n), void 0 !== i && p.correct_time(e, i)
                    },
                    correct_time: function(e, t) {
                        var r = e.getTime(),
                            o = t.correction_loc(r);
                        e.setTime(r + o)
                    },
                    add_days_considering_dst: function(e, t, r) {
                        var o = e.offset_utc(t),
                            n = this.clone(t);
                        this.add_date(n, r);
                        var i = e.offset_utc(n);
                        return n.setTime(n.getTime() + o - i), n
                    },
                    add_date: function(e, t) {
                        e.setTime(e.getTime() + t * p.millisecondsPerDay)
                    },
                    add_minutes: function(e, t) {
                        e.setTime(e.getTime() + l(t))
                    },
                    clone: function(e) {
                        return new Date(e.getTime())
                    },
                    get_days_per_year: function(e) {
                        var t = e.getUTCFullYear();
                        return this.days_per_year(t)
                    },
                    days_per_year: function(e) {
                        return d(e) ? 366 : 365
                    },
                    get_days_in_month: function(e, t) {
                        let r;
                        switch (e) {
                            case 0:
                            case 2:
                            case 4:
                            case 6:
                            case 7:
                            case 9:
                            case 11:
                                r = 31;
                                break;
                            case 1:
                                r = 28, d(t) && r++;
                                break;
                            default:
                                r = 30
                        }
                        return r
                    },
                    get_part: function(e, t) {
                        switch (t) {
                            case p.YEAR:
                                return p.get_year(e);
                            case p.MONTH:
                                return p.get_month(e);
                            case p.DAY_OF_MONTH:
                                return p.get_day_of_month(e);
                            case p.WEEK_OF_YEAR:
                                return p.get_week_of_year(e);
                            case p.DAY_OF_WEEK:
                                return p.get_day_of_week(e);
                            case p.HOUR_OF_DAY:
                                return p.get_hours(e);
                            case p.MINUTE:
                                return p.get_minutes(e);
                            case p.DAY_OF_YEAR:
                                return p.get_day_of_year(e);
                            case p.SECOND:
                                return p.get_seconds(e);
                            default:
                                return e.getTime()
                        }
                    },
                    time_minutes: l,
                    time_seconds: function(e) {
                        return 1e3 * e
                    },
                    time_minutes_diff: function(e, t) {
                        return a(c(e, t) / 60)
                    },
                    time_seconds_diff: c,
                    utc_to_cal: function(e, t) {
                        return new Date(p.utc_to_cal_ts(e, t))
                    },
                    utc_to_cal_ts: function(e, t) {
                        return t + e.offset_utc(t)
                    },
                    get_cal: function(e, t, r, o, n, i, s) {
                        var a = new Date(Date.UTC(t, r, o, n || 0, i || 0, s || 0)),
                            l = e.offset_utc(+a);
                        return new Date(a.valueOf() - l)
                    },
                    get_cal_from_unix_timestamp_ms: function(e, t) {
                        return new Date(t + e.offset_utc(t))
                    },
                    get_cal_utc: function(e, t, r) {
                        return new Date(Date.UTC(e, t, r))
                    },
                    cal_to_utc: function(e, t) {
                        var r = t.getTime();
                        return r - e.offset_loc(r)
                    },
                    get_timezone: function(e) {
                        return new i(e)
                    },
                    shift_day: function(e, t) {
                        var r = e - 1;
                        return (r += t) > 6 ? r %= 7 : r < 0 && (r = (7 + r % 7) % 7), r + 1
                    }
                };
            e.exports = p
        },
        96276: (e, t, r) => {
            "use strict";
            e = r.nmd(e);
            const o = r(87380).getLogger("Common.Delegate");

            function n() {
                this._listeners = []
            }

            function i(e) {
                return !e.singleshot
            }
            n.prototype.subscribe = function(e, t, r) {
                const o = {
                    object: e,
                    member: t,
                    singleshot: !!r,
                    skip: !1
                };
                this._listeners.push(o)
            }, n.prototype.unsubscribe = function(e, t) {
                for (let r = 0; r < this._listeners.length; ++r) {
                    const o = this._listeners[r];
                    if (o.object === e && o.member === t) {
                        o.skip = !0, this._listeners.splice(r, 1);
                        break
                    }
                }
            }, n.prototype.unsubscribeAll = function(e) {
                for (let t = this._listeners.length - 1; t >= 0; --t) {
                    const r = this._listeners[t];
                    r.object === e && (r.skip = !0, this._listeners.splice(t, 1))
                }
            }, n.prototype.destroy = function() {
                delete this._listeners
            }, n.prototype.fire = function() {
                const e = this._listeners;
                this._listeners = this._listeners.filter(i);
                const t = e.length;
                for (let r = 0; r < t; ++r) {
                    const t = e[r];
                    if (!t.skip) try {
                        t.member.apply(t.object || null, arguments)
                    } catch (e) {
                        o.logError(e.stack || e.message)
                    }
                }
            }, "undefined" != typeof window && (window.Delegate = n), e && e.exports && (e.exports = n)
        },
        18277: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                disable: () => d,
                enable: () => u,
                enabled: () => l,
                getAllFeatures: () => h,
                setEnabled: () => c
            });
            const o = JSON.parse('{"14851":{},"custom_items_in_context_menu":{},"countdown":{},"symbol_search_parser_mixin":{},"pay_attention_to_ticker_not_symbol":{},"graying_disabled_tools_enabled":{},"update_study_formatter_on_symbol_resolve":{},"constraint_dialogs_movement":{},"phone_verification":{},"show_trading_notifications_history":{},"show_interval_dialog_on_key_press":{},"header_interval_dialog_button":{"subsets":["show_interval_dialog_on_key_press"]},"header_fullscreen_button":{},"header_symbol_search":{},"symbol_search_hot_key":{},"header_resolutions":{"subsets":["header_interval_dialog_button"]},"header_chart_type":{},"header_settings":{},"header_indicators":{},"header_compare":{},"header_undo_redo":{},"header_screenshot":{},"header_saveload":{},"study_on_study":{},"scales_date_format":{},"header_widget":{"subsets":["header_widget_dom_node","header_symbol_search","header_resolutions","header_chart_type","header_settings","header_indicators","header_compare","header_undo_redo","header_fullscreen_button","compare_symbol","header_screenshot"]},"legend_widget":{},"compare_symbol":{"subsets":["header_compare"]},"property_pages":{"subsets":["show_chart_property_page","chart_property_page"]},"show_chart_property_page":{},"chart_property_page":{"subsets":["chart_property_page_scales","chart_property_page_trading","chart_property_page_right_margin_editor"]},"left_toolbar":{},"hide_left_toolbar_by_default":{},"control_bar":{},"widget_logo":{},"timeframes_toolbar":{},"edit_buttons_in_legend":{"subsets":["show_hide_button_in_legend","format_button_in_legend","study_buttons_in_legend","delete_button_in_legend"]},"show_hide_button_in_legend":{},"object_tree_legend_mode":{},"format_button_in_legend":{},"study_buttons_in_legend":{},"delete_button_in_legend":{},"broker_button":{},"buy_sell_buttons":{"subsets":["broker_button"]},"pane_context_menu":{},"scales_context_menu":{},"legend_context_menu":{},"context_menus":{"subsets":["pane_context_menu","scales_context_menu","legend_context_menu","objects_tree_context_menu"]},"items_favoriting":{},"save_chart_properties_to_local_storage":{},"use_localstorage_for_settings":{"subsets":["items_favoriting","save_chart_properties_to_local_storage"]},"handle_scale":{"subsets":["mouse_wheel_scale","pinch_scale","axis_pressed_mouse_move_scale"]},"handle_scroll":{"subsets":["mouse_wheel_scroll","pressed_mouse_move_scroll","horz_touch_drag_scroll","vert_touch_drag_scroll"]},"plain_studymarket":{},"disable_resolution_rebuild":{},"border_around_the_chart":{},"charting_library_debug_mode":{},"saveload_requires_authentication":{},"saveload_storage_customization":{},"volume_force_overlay":{},"create_volume_indicator_by_default":{},"create_volume_indicator_by_default_once":{},"saved_charts_count_restriction":{},"lean_chart_load":{},"stop_study_on_restart":{},"star_some_intervals_by_default":{},"move_logo_to_main_pane":{},"show_animated_logo":{},"link_to_tradingview":{},"logo_without_link":{},"right_bar_stays_on_scroll":{},"chart_content_overrides_by_defaults":{},"snapshot_trading_drawings":{},"allow_supported_resolutions_set_only":{},"widgetbar_tabs":{"subsets":["right_toolbar"]},"show_object_tree":{"subsets":["right_toolbar"]},"dome_widget":{"subsets":["right_toolbar","showdom_button"]},"collapsible_header":{},"study_templates":{},"side_toolbar_in_fullscreen_mode":{},"header_in_fullscreen_mode":{},"remove_library_container_border":{},"whotrades_auth_only":{},"support_multicharts":{},"display_market_status":{},"display_data_mode":{},"datasource_copypaste":{},"drawing_templates":{"subsets":["linetoolpropertieswidget_template_button"]},"expand_symbolsearch_items":{},"symbol_search_three_columns_exchanges":{},"symbol_search_flags":{},"symbol_search_limited_exchanges":{},"bugreport_button":{"subsets":["right_toolbar"]},"footer_publish_idea_button":{},"showdom_button":{"subsets":["right_toolbar"]},"text_notes":{},"show_source_code":{},"symbol_info":{},"no_bars_status":{},"clear_bars_on_series_error":{},"hide_loading_screen_on_series_error":{},"seconds_resolution":{},"dont_show_boolean_study_arguments":{},"hide_last_na_study_output":{},"price_scale_always_last_bar_value":{},"study_dialog_fundamentals_economy_addons":{},"uppercase_instrument_names":{},"trading_notifications":{},"chart_crosshair_menu":{},"japanese_chart_styles":{},"hide_series_legend_item":{},"hide_study_overlay_legend_item":{},"hide_study_compare_legend_item":{},"linetoolpropertieswidget_template_button":{},"use_overrides_for_overlay":{},"timezone_menu":{},"main_series_scale_menu":{},"show_login_dialog":{},"remove_img_from_rss":{},"bars_marks":{},"chart_scroll":{},"chart_zoom":{},"source_selection_markers":{},"low_density_bars":{},"end_of_period_timescale_marks":{},"open_account_manager":{},"show_order_panel_on_start":{},"order_panel":{"subsets":["order_panel_close_button","order_panel_undock","right_toolbar","order_info"]},"multiple_watchlists":{},"study_overlay_compare_legend_option":{},"custom_resolutions":{},"referral_program_for_widget_owners":{},"mobile_trading":{},"real_brokers":{},"no_min_chart_width":{},"lock_visible_time_range_on_resize":{},"pricescale_currency":{},"cropped_tick_marks":{},"trading_account_manager":{},"disable_sameinterval_aligning":{},"display_legend_on_all_charts":{},"chart_style_hilo":{},"pricescale_unit":{},"show_spread_operators":{},"hide_exponentiation_spread_operator":{},"hide_reciprocal_spread_operator":{},"compare_symbol_search_spread_operators":{},"studies_symbol_search_spread_operators":{},"hide_resolution_in_legend":{},"hide_unresolved_symbols_in_legend":{},"fix_left_edge":{},"study_symbol_ticker_description":{},"two_character_bar_marks_labels":{},"tick_resolution":{},"secondary_series_extend_time_scale":{},"hide_volume_ma":{},"small_no_display":{},"charting_library_single_symbol_request":{},"use_ticker_on_symbol_info_update":{},"show_zoom_and_move_buttons_on_touch":{},"hide_main_series_symbol_from_indicator_legend":{},"chart_hide_close_position_button":{},"tv_production":{"subsets":["auto_enable_symbol_labels","symbol_search_parser_mixin","header_fullscreen_button","header_widget","dont_show_boolean_study_arguments","left_toolbar","buy_sell_buttons","control_bar","symbol_search_hot_key","context_menus","edit_buttons_in_legend","object_tree_legend_mode","uppercase_instrument_names","use_localstorage_for_settings","saveload_requires_authentication","volume_force_overlay","saved_charts_count_restriction","create_volume_indicator_by_default","create_volume_indicator_by_default_once","charts_auto_save","save_old_chart_before_save_as","chart_content_overrides_by_defaults","alerts","header_saveload","header_layouttoggle","datasource_copypaste","show_saved_watchlists","watchlists_from_to_file","add_to_watchlist","property_pages","support_multicharts","display_market_status","display_data_mode","show_chart_warn_message","support_manage_drawings","widgetbar_tabs","study_templates","collapsible_header","drawing_templates","footer_publish_idea_button","text_notes","show_source_code","symbol_info","linetoolpropertieswidget_template_button","trading_notifications","symbol_search_three_columns_exchanges","symbol_search_flags","symbol_search_limited_exchanges","phone_verification","chart_events","custom_resolutions","compare_symbol","study_on_study","japanese_chart_styles","show_login_dialog","dome_widget","bars_marks","chart_scroll","chart_zoom","show_trading_notifications_history","source_selection_markers","study_dialog_fundamentals_economy_addons","multiple_watchlists","marked_symbols","order_panel","pricescale_currency","show_animated_logo","pricescale_currency","show_object_tree","scales_date_format","popup_hints","show_right_widgets_panel_by_default","compare_recent_symbols_enabled","adaptive_trading_sources"]},"widget":{"subsets":["auto_enable_symbol_labels","symbol_search_parser_mixin","uppercase_instrument_names","left_toolbar","control_bar","symbol_search_hot_key","context_menus","edit_buttons_in_legend","object_tree_legend_mode","use_localstorage_for_settings","saveload_requires_authentication","volume_force_overlay","create_volume_indicator_by_default","create_volume_indicator_by_default_once","dont_show_boolean_study_arguments","header_widget_dom_node","header_symbol_search","header_resolutions","header_chart_type","header_compare","header_indicators","star_some_intervals_by_default","display_market_status","display_data_mode","show_chart_warn_message","symbol_info","linetoolpropertieswidget_template_button","symbol_search_three_columns_exchanges","symbol_search_flags","symbol_search_limited_exchanges","widgetbar_tabs","compare_symbol","show_login_dialog","plain_studymarket","japanese_chart_styles","bars_marks","chart_scroll","chart_zoom","source_selection_markers","property_pages","show_right_widgets_panel_by_default"]},"bovespa_widget":{"subsets":["widget","header_settings","linetoolpropertieswidget_template_button","compare_recent_symbols_enabled"]},"charting_library_base":{"subsets":["14851","allow_supported_resolutions_set_only","auto_enable_symbol_labels","border_around_the_chart","collapsible_header","constraint_dialogs_movement","context_menus","control_bar","create_volume_indicator_by_default","custom_items_in_context_menu","datasource_copypaste","uppercase_instrument_names","display_market_status","edit_buttons_in_legend","object_tree_legend_mode","graying_disabled_tools_enabled","header_widget","legend_widget","header_saveload","dont_show_boolean_study_arguments","lean_chart_load","left_toolbar","link_to_tradingview","pay_attention_to_ticker_not_symbol","plain_studymarket","refresh_saved_charts_list_on_dialog_show","right_bar_stays_on_scroll","saveload_storage_customization","stop_study_on_restart","timeframes_toolbar","symbol_search_hot_key","update_study_formatter_on_symbol_resolve","update_timeframes_set_on_symbol_resolve","use_localstorage_for_settings","volume_force_overlay","widget_logo","countdown","use_overrides_for_overlay","trading_notifications","compare_symbol","symbol_info","timezone_menu","main_series_scale_menu","create_volume_indicator_by_default_once","bars_marks","chart_scroll","chart_zoom","source_selection_markers","property_pages","go_to_date","adaptive_logo","show_animated_logo","handle_scale","handle_scroll","shift_visible_range_on_new_bar","chart_content_overrides_by_defaults","cropped_tick_marks","scales_date_format","popup_hints","save_shortcut","show_right_widgets_panel_by_default","show_object_tree","insert_indicator_dialog_shortcut","compare_recent_symbols_enabled","hide_main_series_symbol_from_indicator_legend"]},"charting_library":{"subsets":["charting_library_base"]},"static_charts_service":{"subsets":["charting_library","disable_resolution_rebuild"]},"trading_terminal":{"subsets":["charting_library_base","showdom_button","support_multicharts","header_layouttoggle","japanese_chart_styles","chart_property_page_trading","add_to_watchlist","open_account_manager","show_dom_first_time","order_panel","buy_sell_buttons","multiple_watchlists","show_trading_notifications_history","always_pass_called_order_to_modify","show_object_tree","drawing_templates","trading_account_manager","chart_crosshair_menu","compare_recent_symbols_enabled","adaptive_trading_sources"]}}');
            var n = r.t(o, 2);
            const i = new Map,
                s = new Map,
                a = new Set;

            function l(e) {
                const t = i.get(e);
                if (void 0 !== t) return t;
                const r = s.get(e);
                return !!r && r.some(l)
            }

            function c(e, t) {
                i.set(String(e), Boolean(t))
            }

            function u(e) {
                c(e, !0)
            }

            function d(e) {
                c(e, !1)
            }

            function h() {
                const e = Object.create(null);
                for (const t of a) e[t] = l(t);
                return e
            }! function() {
                for (const [e, t] of Object.entries(n))
                    if (a.add(e), "subsets" in t)
                        for (const r of t.subsets) {
                            a.add(r);
                            let t = s.get(r);
                            void 0 === t && (t = [], s.set(r, t)), t.push(e)
                        }
                "object" == typeof __initialDisabledFeaturesets && Array.isArray(__initialDisabledFeaturesets) && __initialDisabledFeaturesets.forEach(d), "object" == typeof __initialEnabledFeaturesets && Array.isArray(__initialEnabledFeaturesets) && __initialEnabledFeaturesets.forEach(u)
            }()
        },
        84162: (e, t, r) => {
            "use strict";

            function o(e, t) {
                return e <= t
            }

            function n(e, t) {
                return e >= t
            }

            function i(e, t, r) {
                return Math.min(Math.max(e, t), r)
            }

            function s(e) {
                return e < 0 ? -1 : e > 0 ? 1 : 0
            }

            function a(e) {
                if (e < 0) return !1;
                for (let t = e; t > 1; t /= 10)
                    if (t % 10 != 0) return !1;
                return !0
            }

            function l(e, t, r) {
                return t - e <= r
            }

            function c(e, t, r) {
                return Math.abs(e - t) < r
            }

            function u(e) {
                return e <= 0 ? NaN : Math.log(e) / Math.log(10)
            }

            function d(e, t) {
                return e < t ? -1 : e > t ? 1 : 0
            }

            function h(e, t = d) {
                if (e.length < 1) throw Error("array is empty");
                let r = e[0];
                for (let o = 0; o < e.length; ++o) t(e[o], r) < 0 && (r = e[o]);
                return r
            }

            function p(e, t = d) {
                if (e.length < 1) throw Error("array is empty");
                let r = e[0];
                for (let o = 0; o < e.length; ++o) t(e[o], r) > 0 && (r = e[o]);
                return r
            }

            function f(e) {
                const t = Math.ceil(e);
                return t % 2 != 0 ? t - 1 : t
            }

            function g(e) {
                return e > 0 ? Math.floor(e) : Math.ceil(e)
            }
            r.r(t), r.d(t, {
                lessThan: () => o,
                greaterThan: () => n,
                clamp: () => i,
                sign: () => s,
                isBaseDecimal: () => a,
                greaterOrEqual: () => l,
                equal: () => c,
                log10: () => u,
                defComparator: () => d,
                min: () => h,
                max: () => p,
                ceiledEven: () => f,
                toInt: () => g
            })
        },
        31565: function(e, t, r) {
            var o;
            e = r.nmd(e);
            var n = Array.isArray || function(e) {
                    return "[object Array]" === Object.prototype.toString.call(e)
                },
                i = function(e) {
                    return "object" == typeof e && null !== e
                };

            function s(e) {
                return "number" == typeof e && isFinite(e)
            }

            function a(e) {
                return null != e && e.constructor === Function
            }

            function l(e, t) {
                e.prototype = Object.create(t.prototype, {
                    constructor: {
                        value: e,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                })
            }
            "undefined" != typeof window ? (o = window.TradingView = window.TradingView || {}, window.isNumber = s, window.isFunction = a, window.inherit = l, window.isArray = n) : o = this.TradingView = this.TradingView || {}, o.isNaN = function(e) {
                return !(e <= 0 || e > 0)
            }, o.isAbsent = function(e) {
                return null == e
            }, o.isExistent = function(e) {
                return null != e
            }, Number.isNaN = Number.isNaN || function(e) {
                return e != e
            }, o.isSameType = function(e, t) {
                return Number.isNaN(e) || Number.isNaN(t) ? Number.isNaN(e) === Number.isNaN(t) : {}.toString.call(e) === {}.toString.call(t)
            }, o.isInteger = function(e) {
                return "number" == typeof e && e % 1 == 0
            }, o.parseBool = function(e) {
                return !0 === e || "true" === e
            }, o.isBoolean = function(e) {
                return !0 === e || !1 === e
            }, o.isString = function(e) {
                return null != e && e.constructor === String
            }, o.isInherited = function(e, t) {
                if (null == e || null == e.prototype) throw new TypeError("isInherited: child should be a constructor function");
                if (null == t || null == t.prototype) throw new TypeError("isInherited: parent should be a constructor function");
                return e.prototype instanceof t || e.prototype === t.prototype
            }, o.TypeValidator = function(e) {
                this.m_type = e
            }, o.TypeValidator.prototype.check = function(e) {
                return e.constructor === this.m_type || o.isInherited(e.constructor, this.m_type)
            }, o.PredicateValidator = function(e) {
                this.m_predicate = e
            }, o.PredicateValidator.prototype.check = function(e) {
                return this.m_predicate(e)
            }, o.clone = function(e) {
                if (!e || "object" != typeof e) return e;
                var t, r, n;
                for (r in t = "function" == typeof e.pop ? [] : {}, e) e.hasOwnProperty(r) && (n = e[r], t[r] = n && "object" == typeof n ? o.clone(n) : n);
                return t
            }, o.deepEquals = function(e, t, r) {
                if (r || (r = ""), e === t) return [!0, r];
                if (a(e) && (e = void 0), a(t) && (t = void 0), void 0 === e && void 0 !== t) return [!1, r];
                if (void 0 === t && void 0 !== e) return [!1, r];
                if (null === e && null !== t) return [!1, r];
                if (null === t && null !== e) return [!1, r];
                if ("object" != typeof e && "object" != typeof t) return [e === t, r];
                if (Array.isArray(e) && Array.isArray(t)) {
                    var i = e.length;
                    if (i !== t.length) return [!1, r];
                    for (var s = 0; s < i; s++) {
                        if (!(c = o.deepEquals(e[s], t[s], r + "[" + s + "]"))[0]) return c
                    }
                    return [!0, r]
                }
                if (n(e) || n(t)) return [!1, r];
                if (Object.keys(e).length !== Object.keys(t).length) return [!1, r];
                for (var l in e) {
                    var c;
                    if (!(c = o.deepEquals(e[l], t[l], r + "[" + l + "]"))[0]) return c
                }
                return [!0, r]
            }, o.merge = function(e, t) {
                for (var r in t) null !== t[r] && "object" == typeof t[r] && e.hasOwnProperty(r) ? o.merge(e[r], t[r]) : e[r] = t[r];
                return e
            }, o.mergeObj = function(e, t) {
                for (var r in t) t[r].constructor === Object && e.hasOwnProperty(r) ? o.mergeObj(e[r], t[r]) : e[r] = t[r];
                return e
            }, o.mergeWithRules = function(e, t, r, n) {
                for (var i in t) {
                    var s = n ? n + "." + i : i;
                    r && s in r ? e[i] = r[s](e[i], t[i]) : "object" == typeof t[i] && e.hasOwnProperty(i) ? o.merge(e[i], t[i], r, s) : e[i] = t[i]
                }
            }, o.sortMultipleFunction = function() {
                var e = [].slice.call(arguments),
                    t = e.length;
                return function(r, o) {
                    var n, i, s, a, l, c, u;
                    for (u = 0; u < t && (c = 0, n = r[a = "string" == typeof(s = e[u]) ? s : s.name], i = o[a], "function" == typeof s.fn && (n = s.fn(n), i = s.fn(i)), l = s.reverse ? -1 : 1, n < i && (c = -1 * l), n > i && (c = 1 * l), 0 === c); u++);
                    return c
                }
            }, e && e.exports && (e.exports = {
                inherit: l,
                clone: o.clone,
                merge: o.merge,
                isNumber: s,
                isInteger: o.isInteger,
                isBoolean: o.isBoolean,
                isString: o.isString,
                isObject: i,
                isHashObject: function(e) {
                    return i(e) && -1 !== e.constructor.toString().indexOf("function Object")
                },
                isPromise: function(e) {
                    return i(e) && e.then
                },
                isNaN: o.isNaN,
                isAbsent: o.isAbsent,
                isExistent: o.isExistent,
                isSameType: o.isSameType,
                isArray: n,
                isFunction: a,
                parseBool: o.parseBool,
                deepEquals: o.deepEquals,
                notNull: function(e) {
                    return null !== e
                },
                notUndefined: function(e) {
                    return void 0 !== e
                },
                declareClassAsPureInterface: function(e, t) {
                    for (var r in e.prototype) "function" == typeof e.prototype[r] && e.prototype.hasOwnProperty(r) && (e.prototype[r] = function() {
                        throw new Error(t + "::" + r + " is an interface member declaration and must be overloaded in order to be called")
                    })
                },
                requireFullInterfaceImplementation: function(e, t, r, o) {
                    for (var n in r.prototype)
                        if ("function" == typeof r.prototype[n] && !e.prototype[n]) throw new Error("Interface implementation assertion failed: " + t + " does not implement " + o + "::" + n + " function")
                }
            })
        },
        68421: (e, t, r) => {
            "use strict";
            r.r(t);
            var o = r(31565);
            const n = /{(\w+)}/g,
                i = /{(\d+)}/g;
            String.prototype.format = function(...e) {
                const t = (0, o.isObject)(e[0]),
                    r = t ? n : i,
                    s = t ? (t, r) => {
                        const o = e[0];
                        return void 0 !== o[r] ? o[r] : t
                    } : (t, r) => {
                        const o = parseInt(r, 10),
                            n = e[o];
                        return void 0 !== n ? n : t
                    };
                return this.replace(r, s)
            }
        },
        73715: (e, t, r) => {
            "use strict";
            var o = r(18277),
                n = [{
                    d: "E-Mini S&P 500",
                    t: "ES"
                }, {
                    d: "E-Mini Nasdaq 100",
                    t: "NQ"
                }, {
                    d: "Gold",
                    t: "GC"
                }, {
                    d: "Silver",
                    t: "SI"
                }, {
                    d: "Crude Oil WTI",
                    t: "CL"
                }, {
                    d: "Natural Gas",
                    t: "NG"
                }, {
                    d: "Australian Dollar",
                    t: "6A"
                }, {
                    d: "Australian Dollar (Floor)",
                    t: "AD"
                }, {
                    d: "Euro FX",
                    t: "6E"
                }, {
                    d: "Euro FX (Floor)",
                    t: "EC"
                }, {
                    d: "Corn",
                    t: "ZC"
                }, {
                    d: "Corn (Floor)",
                    t: "C"
                }, {
                    d: "Eurodollar",
                    t: "GE"
                }, {
                    d: "Eurodollar (Floor)",
                    t: "ED"
                }],
                i = function() {
                    var e = [{
                        pattern: "(",
                        ctor: s
                    }, {
                        pattern: ")",
                        ctor: a
                    }, {
                        pattern: "+",
                        ctor: c
                    }, {
                        pattern: "-",
                        ctor: u
                    }, {
                        pattern: "*",
                        ctor: d
                    }, {
                        pattern: "/",
                        ctor: h
                    }, {
                        pattern: "^",
                        ctor: p
                    }, {
                        pattern: /\d+(?:\.\d*|(?![a-zA-Z0-9_!:.&]))|\.\d+/,
                        ctor: _
                    }, {
                        pattern: /\./,
                        ctor: y
                    }, {
                        pattern: o.enabled("charting_library_base") ? /[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF^][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!:.&]*|'.+?'/ : /[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!|:.&]*|'.+?'/,
                        ctor: m
                    }, {
                        pattern: /'[^']*/,
                        ctor: b
                    }, {
                        pattern: /[\0-\x20\s]+/,
                        ctor: i
                    }];

                    function t(e, t) {
                        var r = function() {};
                        return r.prototype = t.prototype, e.prototype = new r, e
                    }

                    function r() {}

                    function i(e) {
                        this.value = e
                    }

                    function s() {}

                    function a() {}

                    function l() {}

                    function c() {}

                    function u() {}

                    function d() {}

                    function h() {}

                    function p() {}
                    r.prototype.toString = function() {
                        return this.value
                    }, t(i, r), t(s, r), s.prototype.value = "(", t(a, r), a.prototype.value = ")", t(l, r), t(c, l), c.prototype.value = "+", c.prototype.precedence = 0, c.prototype.commutative = !0, t(u, l), u.prototype.value = "-", u.prototype.precedence = 0, u.prototype.commutative = !1, t(d, l), d.prototype.value = "*", d.prototype.precedence = 1, d.prototype.commutative = !0, t(h, l), h.prototype.value = "/", h.prototype.precedence = 1, h.prototype.commutative = !1, t(p, l), p.prototype.value = "^", p.prototype.precedence = 2, p.prototype.commutative = !1;
                    var f = /^'?(?:([A-Z0-9_]+):)?(.*?)'?$/i,
                        g = /[+\-/*]/;

                    function m(e) {
                        this.value = e
                    }

                    function _(e) {
                        this.value = e
                    }

                    function v(e) {
                        this.value = e
                    }

                    function b() {
                        m.apply(this, arguments)
                    }

                    function y() {
                        _.apply(this, arguments)
                    }
                    t(m, r), m.prototype.toString = function() {
                        if (this.hasOwnProperty("_ticker")) {
                            var e = g.test(this._ticker) ? "'" : "";
                            return e + (this._exchange ? this._exchange + ":" : "") + this._ticker + e
                        }
                        return this.value
                    }, m.prototype.parse = function() {
                        var e = f.exec(this.value);
                        e[1] && (this._exchange = e[1]), this._ticker = e[2]
                    }, m.prototype.parseAsFutures = function() {
                        this.hasOwnProperty("_ticker") || this.parse();
                        for (var e = function(e) {
                                return n.some((function(t) {
                                    return t.t === e
                                }))
                            }, t = 2; t >= 1; --t) {
                            var r = this._ticker.slice(0, t);
                            if (e(r)) {
                                this._root = r, this._contract = this._ticker.slice(t);
                                break
                            }
                        }
                    }, m.prototype.exchange = function(e) {
                        if (this.hasOwnProperty("_ticker") || this.parse(), !(arguments.length > 0)) return this._exchange;
                        null == e ? delete this._exchange : this._exchange = e + ""
                    }, m.prototype.ticker = function(e) {
                        if (this.hasOwnProperty("_ticker") || this.parse(), !(arguments.length > 0)) return this._ticker;
                        null == e ? delete this._ticker : this._ticker = e + "", delete this._root, delete this._contract
                    }, m.prototype.root = function(e) {
                        if (this.hasOwnProperty("_root") || this.parseAsFutures(), !(arguments.length > 0)) return this._root;
                        null == e ? delete this._root : (this._root = e + "", this._root && (this._ticker = this._root + (this._contract || "")))
                    }, m.prototype.contract = function(e) {
                        if (this.hasOwnProperty("_contract") || this.parseAsFutures(), !(arguments.length > 0)) return this._root;
                        null == e ? delete this._contract : (this._contract = e + "", this._root && (this._ticker = this._root + this._contract))
                    }, t(_, r), _.prototype.toString = function() {
                        return this.hasOwnProperty("_normalizedValue") ? this._normalizedValue : this.value
                    }, _.prototype.parse = function() {
                        this._normalizedValue = this.value.replace(/^0+|\.0*$/g, "").replace(/(\.\d*?)0+$/, "$1").replace(/^(\.|$)/, "0$1")
                    }, v.prototype.toString = function() {
                        return this.value
                    }, t(b, m), b.prototype.isIncomplete = !0, b.prototype.incompleteSuggest = function() {
                        if ("'" !== this.value) return String("'")
                    }, t(y, _), y.prototype.isIncomplete = !0;
                    var w = new RegExp(e.map((function(e) {
                        return "(" + ("string" == typeof e.pattern ? e.pattern.replace(/[\^$()[\]{}*+?|\\]/g, "\\$&") : e.pattern.source) + ")"
                    })).concat(".").join("|"), "g");

                    function S(t, r) {
                        var o, n = [];
                        e: for (; o = w.exec(t);) {
                            for (var s = e.length; s--;)
                                if (o[s + 1]) {
                                    if (e[s].ctor) {
                                        var a = new e[s].ctor(o[s + 1]);
                                        a._offset = o.index, n.push(a)
                                    }
                                    continue e
                                }
                            var l = new v(o[0]);
                            l._offset = o.index, n.push(l)
                        }
                        if (r && r.recover) {
                            var c;
                            for (s = n.length; s--;) {
                                var u = n[s];
                                if (u instanceof _ || u instanceof m) {
                                    if (void 0 !== c) {
                                        var d = new m(""),
                                            h = n.splice(s, c - s + 1, d);
                                        d.value = h.map((function(e) {
                                            return e.value
                                        })).join("")
                                    }
                                    c = s
                                } else u instanceof i || (c = void 0)
                            }
                        }
                        return n
                    }

                    function C(e) {
                        for (var t = [], r = 0; r < e.length; r++) e[r] instanceof i || t.push(e[r]);
                        return t
                    }

                    function k(e) {
                        e = C(e);
                        for (var t, r = [], o = [], n = 0; n < e.length; n++) {
                            var i = e[n];
                            if (i instanceof l) o.length && o[o.length - 1].minPrecedence > i.precedence && (o[o.length - 1].minPrecedence = i.precedence);
                            else if (i instanceof s) o.push(t = {
                                minPrecedence: 1 / 0,
                                openBraceIndex: n
                            });
                            else if (i instanceof a) {
                                var c = e[(t = o.pop()).openBraceIndex - 1],
                                    u = e[n + 1];
                                u instanceof l && !(u.precedence <= t.minPrecedence) || !(!(c instanceof l) || c.precedence < t.minPrecedence || c.precedence === t.minPrecedence && c.commutative) || (r.unshift(t.openBraceIndex), r.push(n), o.length && o[o.length - 1].minPrecedence > t.minPrecedence && (o[o.length - 1].minPrecedence = t.minPrecedence))
                            }
                        }
                        for (n = r.length; n--;) e.splice(r[n], 1);
                        return e
                    }

                    function E(e) {
                        if ("string" != typeof e) throw new TypeError("expression must be a string");
                        return (e = S(e)).filter((function(e) {
                            return e instanceof m
                        })).map((function(e) {
                            return e.exchange()
                        })).filter((function(e) {
                            return e
                        }))
                    }

                    function x(e) {
                        return 1 !== (e = E(e)).length ? null : e[0]
                    }

                    function T(e, t) {
                        return (e = E(e)).some((function(e) {
                            return t.includes((e || "").toUpperCase())
                        }))
                    }

                    function A(e) {
                        return e.join("")
                    }
                    return {
                        tokenize: S,
                        validate: function(e) {
                            if (o.enabled("charting_library_base")) return {
                                currentState: "var"
                            };
                            for (var t = "init", r = {
                                    warnings: [],
                                    errors: [],
                                    isEmpty: !0
                                }, n = [], c = 0; c < e.length; c++) {
                                if (!((d = e[c]) instanceof i)) {
                                    if (delete r.isEmpty, d.isIncomplete) {
                                        var u = {
                                            status: "incomplete",
                                            reason: "incomplete_token",
                                            offset: d._offset,
                                            token: d
                                        };
                                        if (d.incompleteSuggest && (u.recover = {
                                                append: d.incompleteSuggest()
                                            }), r.warnings.push(u), c !== e.length - 1) {
                                            u.status = "error";
                                            continue
                                        }
                                    }
                                    if (d instanceof m || d instanceof _) {
                                        if ("var" === t) {
                                            r.errors.push({
                                                status: "error",
                                                reason: "unexpected_token",
                                                offset: d._offset,
                                                token: d
                                            });
                                            continue
                                        }
                                        t = "var"
                                    } else if (d instanceof l) {
                                        if ("var" !== t) {
                                            r.errors.push({
                                                status: "error",
                                                reason: "unexpected_token",
                                                offset: d._offset,
                                                token: d
                                            });
                                            continue
                                        }
                                        t = "operator"
                                    } else if (d instanceof s) {
                                        if ("var" === t) {
                                            r.errors.push({
                                                status: "error",
                                                reason: "unexpected_token",
                                                offset: d._offset,
                                                token: d
                                            });
                                            continue
                                        }
                                        n.push(d), t = "init"
                                    } else if (d instanceof a) {
                                        if ("var" !== t) {
                                            r.errors.push({
                                                status: "error",
                                                reason: "unexpected_token",
                                                offset: d._offset,
                                                token: d
                                            });
                                            continue
                                        }
                                        n.pop() || r.errors.push({
                                            status: "error",
                                            reason: "unbalanced_brace",
                                            offset: d._offset,
                                            token: d,
                                            recover: {
                                                prepend: new s
                                            }
                                        }), t = "var"
                                    } else d instanceof v && r.errors.push({
                                        status: "error",
                                        reason: "unparsed_entity",
                                        offset: d._offset,
                                        token: d
                                    })
                                }
                            }
                            for (r.braceBalance = n.length, "var" !== t && r.warnings.push({
                                    status: "incomplete"
                                }); n.length;) {
                                var d;
                                u = {
                                    status: "incomplete",
                                    reason: "unbalanced_brace",
                                    offset: (d = n.pop())._offset,
                                    token: d
                                };
                                "var" === t && (u.recover = {
                                    append: new a
                                }), r.warnings.push(u)
                            }
                            return r.currentState = t, 0 === r.warnings.length && delete r.warnings, 0 === r.errors.length && delete r.errors, r
                        },
                        factorOutBraces: k,
                        normalizeTokens: function(e) {
                            for (var t = 0; t < e.length; t++) e[t].parse && e[t].parse();
                            return e
                        },
                        flip: function(e) {
                            var t = function(e) {
                                for (var t, r = 0, o = 0, n = 0; n < e.length; n++) {
                                    var c = e[n];
                                    if (!(c instanceof i)) switch (r) {
                                        case 0:
                                            if (!(c instanceof _ && 1 == +c.value)) return !1;
                                            r = 1;
                                            break;
                                        case 1:
                                            if (!(1 === r && c instanceof h)) return !1;
                                            r = 2, t = n + 1;
                                            break;
                                        case 2:
                                            if (c instanceof s) r = 3, o = 1;
                                            else if (c instanceof l) return !1;
                                            break;
                                        case 3:
                                            c instanceof s ? o++ : c instanceof a && --o <= 0 && (r = 2)
                                    }
                                }
                                return e.slice(t)
                            }(e);
                            return k(t || [new _("1"), new h, new s].concat(e).concat(new a))
                        },
                        hasBatsSymbols: function(e) {
                            return T(e, ["BATS"])
                        },
                        hasEodSymbols: function(e) {
                            return (e = x(e)) && -1 !== e.toUpperCase().indexOf("_EOD")
                        },
                        hasChxjpySymbols: function(e) {
                            return T(e, ["CHXJPY"])
                        },
                        hasFreeDelaySymbols: function(e) {
                            return T(e, pro.getProductsByType(pro.PRODUCT_TYPES.exchange).map((function(e) {
                                return e.exchange.toUpperCase() + "_DLY"
                            })))
                        },
                        getExchange: x,
                        getExchanges: E,
                        isExchange: function(e, t) {
                            return !!(e = x(e)) && e.substring(0, t.length) === t
                        },
                        SymbolToken: m,
                        IncompleteSymbolToken: b,
                        NumberToken: _,
                        BinaryOperatorToken: l,
                        OpenBraceToken: s,
                        CloseBraceToken: a,
                        ticker: function(e) {
                            return new m(e).ticker()
                        },
                        shortName: function(e) {
                            if ("string" != typeof e) throw new TypeError("expression must be a string");
                            var t = k(C(S(e)));
                            return t.forEach((function(e) {
                                e instanceof m && e.exchange(null)
                            })), A(t)
                        },
                        normalize: function(e) {
                            if ("string" != typeof e) throw new TypeError("expression must be a string");
                            return A(k(C(S(e))))
                        }
                    }
                }();
            e.exports = i
        },
        51966: e => {
            e.exports.tzData = {
                "America/New_York": {
                    time: [-2717668562, -1633298400, -1615154400, -1601848800, -1583704800, -1570399200, -1551650400, -1536530400, -1523224800, -1504476e3, -1491775200, -1473026400, -1459720800, -1441576800, -1428271200, -1410127200, -1396821600, -1378677600, -1365372e3, -1347228e3, -1333922400, -1315173600, -1301868e3, -1283724e3, -1270418400, -1252274400, -1238968800, -1220824800, -1207519200, -1189375200, -1176069600, -1157320800, -114462e4, -1125871200, -1112565600, -1094421600, -1081116e3, -1062972e3, -1049666400, -1031522400, -1018216800, -1000072800, -986767200, -968018400, -955317600, -936568800, -923263200, -905119200, -891813600, -880236e3, -76941e4, -765410400, -747266400, -733960800, -715816800, -702511200, -684367200, -671061600, -652917600, -639612e3, -620863200, -608162400, -589413600, -576108e3, -557964e3, -544658400, -526514400, -513208800, -495064800, -481759200, -463615200, -447285600, -431560800, -415836e3, -400111200, -384386400, -368661600, -352936800, -337212e3, -321487200, -305762400, -289432800, -273708e3, -257983200, -242258400, -226533600, -210808800, -195084e3, -179359200, -163634400, -147909600, -13158e4, -11646e4, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 126669600, 152071200, 162352800, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-17762, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3]
                },
                "America/Los_Angeles": {
                    time: [-2717668378, -1633298400, -1615154400, -1601848800, -1583704800, -880236e3, -769420800, -765410400, -687995940, -662680800, -620866800, -608162400, -589417200, -576108e3, -557967600, -544658400, -526518e3, -513208800, -495068400, -481759200, -463618800, -450309600, -431564400, -418255200, -400114800, -386805600, -368665200, -355356e3, -337215600, -323906400, -305766e3, -292456800, -273711600, -261007200, -242262e3, -226533600, -210812400, -195084e3, -179362800, -163634400, -147913200, -13158e4, -116463600, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 126669600, 152071200, 162352800, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-28378, -28800, -25200, -28800, -25200, -28800, -25200, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800]
                },
                "America/Chicago": {
                    time: [-2717668236, -1633298400, -1615154400, -1601848800, -1583704800, -1563746400, -1551650400, -1538949600, -1520200800, -1504476e3, -1491775200, -1473026400, -1459720800, -1441576800, -1428271200, -1410127200, -1396821600, -1378677600, -1365372e3, -1347228e3, -1333922400, -1315173600, -1301868e3, -1283724e3, -1270418400, -1252274400, -1238968800, -1220824800, -1207519200, -1189375200, -1176069600, -1157320800, -114462e4, -1125871200, -1112565600, -1094421600, -1081116e3, -1067810400, -1045432800, -1031522400, -1018216800, -1000072800, -986767200, -968018400, -955317600, -936568800, -923263200, -905119200, -891813600, -880236e3, -769413600, -765410400, -747266400, -733960800, -715816800, -702511200, -684367200, -671061600, -652917600, -639612e3, -620863200, -608162400, -589413600, -576108e3, -557964e3, -544658400, -526514400, -513208800, -495064800, -481759200, -463615200, -447285600, -431560800, -415836e3, -400111200, -384386400, -368661600, -352936800, -337212e3, -321487200, -305762400, -289432800, -273708e3, -257983200, -242258400, -226533600, -210808800, -195084e3, -179359200, -163634400, -147909600, -13158e4, -11646e4, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 126669600, 152071200, 162352800, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-21036, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600]
                },
                "America/Phoenix": {
                    time: [-2717670498, -1633298400, -1615154400, -1601848800, -1583704800, -880236e3, -820540740, -812678340, -796867140, -84405600, -68680800, 1924966800],
                    offset: [-26898, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200]
                },
                "America/Toronto": {
                    time: [-2366755200, -1632088800, -1615154400, -1601771400, -1583712e3, -1567375200, -1554681600, -1534716e3, -1524088800, -1503266400, -149238e4, -1471816800, -1460930400, -1440972e3, -1428876e3, -1409522400, -1397426400, -1378072800, -1365976800, -1346623200, -1333922400, -1315173600, -1301868e3, -1283724e3, -1270418400, -1252274400, -1238968800, -1220824800, -1207519200, -1188770400, -1176069600, -1157320800, -1144015200, -1125871200, -1112565600, -1094421600, -1081116e3, -1062972e3, -1049666400, -1031522400, -1018216800, -1000072800, -986767200, -968018400, -955317600, -936568800, -880232400, -76941e4, -765410400, -747266400, -733960800, -715824e3, -702518400, -684374400, -671068800, -652924800, -634176e3, -620863200, -602719200, -589413600, -576108e3, -557964e3, -544658400, -526514400, -513208800, -495064800, -481759200, -463615200, -450309600, -431560800, -418255200, -400111200, -384386400, -368661600, -352936800, -337212e3, -321487200, -305762400, -289432800, -273708e3, -257983200, -242258400, -226533600, -210808800, -195084e3, -179359200, -163634400, -147909600, -13158e4, -11646e4, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 136346400, 152071200, 167796e3, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-19052, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -14400, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3]
                },
                "America/Vancouver": {
                    time: [-2713910400, -1632088800, -1615154400, -880236e3, -769420800, -765410400, -747266400, -733960800, -715816800, -702511200, -684367200, -671061600, -652917600, -639612e3, -620863200, -608162400, -589413600, -576108e3, -557964e3, -544658400, -526514400, -513208800, -495064800, -481759200, -463615200, -450309600, -431560800, -418255200, -400111200, -386805600, -368661600, -355356e3, -337212e3, -323906400, -305762400, -292456800, -273708e3, -261007200, -242258400, -226533600, -210808800, -195084e3, -179359200, -163634400, -147909600, -13158e4, -11646e4, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 136346400, 152071200, 167796e3, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-29548, -28800, -25200, -28800, -25200, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800]
                },
                "America/Argentina/Buenos_Aires": {
                    time: [-2372112e3, -1567468800, -1233446400, -1222992e3, -1205971200, -1194048e3, -117288e4, -1162512e3, -1141344e3, -1130976e3, -1109808e3, -109944e4, -1078272e3, -1067817600, -1046649600, -1036281600, -1015113600, -1004745600, -983577600, -973209600, -952041600, -941587200, -931046400, -900892800, -890352e3, -83376e4, -82728e4, -752284800, -733795200, -197337600, -190857600, -184204800, -164505600, -152668800, -132969600, -121132800, -101433600, -86832e3, -71107200, -54777600, -39052800, -23328e3, -7603200, 128131200, 136598400, 596937600, 605059200, 624412800, 636508800, 656467200, 667958400, 687916800, 699408e3, 719366400, 731462400, 938908800, 952041600, 1198972800, 1205625600, 1224374400, 1237075200, 1924981200],
                    offset: [-14028, -15408, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -10800, -10800, -7200, -10800, -7200, -10800]
                },
                "America/El_Salvador": {
                    time: [-1546300800, 546998400, 559699200, 578448e3, 591148800, 1924970400],
                    offset: [-21408, -21600, -18e3, -21600, -18e3, -21600]
                },
                "America/Sao_Paulo": {
                    time: [-1767225600, -1206968400, -1191369600, -1175385600, -1159833600, -633830400, -622076400, -602294400, -59184e4, -570758400, -560217600, -539136e3, -53136e4, -195436800, -184204800, -155174400, -150076800, -128908800, -121132800, -99964800, -89596800, -68428800, -57974400, 499737600, 511228800, 530582400, 540259200, 562118400, 571190400, 592963200, 602035200, 624412800, 634694400, 656467200, 666748800, 687916800, 697593600, 719971200, 728438400, 750816e3, 761702400, 782265600, 793152e3, 813715200, 823996800, 84456e4, 856051200, 876096e3, 888710400, 908064e3, 919555200, 938908800, 951609600, 970963200, 982454400, 1003017600, 1013904e3, 1036281600, 1045353600, 1066521600, 1076803200, 1099353600, 1108857600, 1129420800, 1140307200, 1162684800, 1172361600, 119232e4, 1203206400, 1224374400, 1234656e3, 1255824e3, 1266710400, 1287273600, 129816e4, 1318723200, 1330214400, 1350777600, 1361059200, 1382227200, 1392508800, 1413676800, 1424563200, 1445126400, 1456012800, 1476576e3, 1487462400, 1508025600, 1518912e3, 1541289600, 1550361600, 1924981200],
                    offset: [-11188, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800, -7200, -10800]
                },
                "America/Bogota": {
                    time: [-2707689600, -1739059200, 704851200, 733881600, 1924974e3],
                    offset: [-17776, -17776, -18e3, -14400, -18e3]
                },
                "America/Caracas": {
                    time: [-2524521600, -1826755200, -157766400, 1197169200, 1462069800, 1924977600],
                    offset: [-16064, -16060, -16200, -14400, -16200, -14400]
                },
                "Europe/Moscow": {
                    time: [-2840140800, -1688256e3, -165681e4, -1641340800, -1627956e3, -1618700400, -1596416400, -1593804521, -1589846400, -1542416400, -1539478800, -1525305600, -1522713600, -1491177600, -1247529600, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 695786400, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1414288800, 1925002800],
                    offset: [9017, 9017, 9079, 12679, 9079, 16279, 12679, 16279, 14400, 10800, 14400, 18e3, 14400, 10800, 7200, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 10800, 7200, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800]
                },
                "Europe/Athens": {
                    time: [-2344636800, -1686095940, -1182988800, -1178150400, -906854400, -904867200, -85725e4, -844473600, -828230400, -812419200, -552355200, -541641600, 166492800, 186195600, 198036e3, 213764400, 228880800, 244090800, 260330400, 275457600, 291805200, 307418400, 323395200, 338947200, 354682800, 370411200, 386132400, 401860800, 417582e3, 433310400, 449031600, 465364800, 481086e3, 496814400, 512535600, 528264e3, 543985200, 559713600, 575434800, 591163200, 606884400, 622612800, 638334e3, 654667200, 670388400, 686116800, 701838e3, 717566400, 733287600, 749016e3, 764737200, 780465600, 796186800, 811915200, 828241200, 846388800, 859690800, 877838400, 891140400, 909288e3, 92259e4, 941342400, 954039600, 972792e3, 985489200, 1004241600, 1017543600, 1035691200, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [5692, 5692, 7200, 10800, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Europe/Belgrade": {
                    time: [-2713910400, -905821200, -85725e4, -844552800, -828219600, -812498400, -79677e4, -777938400, -766616400, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [4920, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Berlin": {
                    time: [-2422051200, -1693702800, -1680476400, -1663452e3, -1650142800, -1632002400, -1618693200, -938901600, -85725e4, -844552800, -828219600, -812498400, -79677e4, -781048800, -776556e3, -765925200, -761173200, -748476e3, -733266e3, -717627600, -714603600, -71037e4, -701902800, -684972e3, -670453200, -654127200, -639003600, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [3208, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Bratislava": {
                    time: [-3786825600, -2469398400, -1693702800, -1680476400, -1663452e3, -1650142800, -1632002400, -1618693200, -938901600, -85725e4, -844552800, -828219600, -812498400, -79677e4, -781048800, -765320400, -746575200, -733352400, -728514e3, -72126e4, -716421600, -701902800, -684972e3, -670453200, -654213600, -639003600, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [3464, 3464, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Bucharest": {
                    time: [-2469398400, -1213142400, -1187049600, -1175468400, -1159747200, -1144018800, -1127692800, -1111964400, -1096243200, -1080514800, -1064793600, -1049065200, -1033344e3, -1017615600, -1001894400, -986166e3, -970444800, -954716400, 296611200, 307497600, 323823600, 338950800, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670377600, 686106e3, 701827200, 717555600, 733276800, 749005200, 764726400, 780451200, 796176e3, 811900800, 828230400, 846374400, 859690800, 877838400, 891140400, 909288e3, 92259e4, 941342400, 954039600, 972792e3, 985489200, 1004241600, 1017543600, 1035691200, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [6264, 6264, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Europe/London": {
                    time: [-3852662400, -1691964e3, -1680469200, -1664143200, -1650142800, -1633903200, -1617483600, -1601848800, -1586034e3, -1570399200, -1552165200, -1538344800, -152253e4, -15075e5, -1490562e3, -1473631200, -1460926800, -1442786400, -1428872400, -1410732e3, -1396213200, -1379282400, -1364763600, -1348437600, -1333314e3, -1315778400, -1301259600, -1284328800, -126981e4, -1253484e3, -1238360400, -1221429600, -1206910800, -118998e4, -1175461200, -1159135200, -1143406800, -1126476e3, -1111957200, -1095631200, -1080507600, -1063576800, -1049058e3, -1032127200, -1017608400, -1001282400, -986158800, -969228e3, -950475600, -942012e3, -904514400, -896043600, -875484e3, -864594e3, -844034400, -832539600, -812584800, -798066e3, -781048800, -772059600, -764802e3, -748476e3, -733352400, -719445600, -717026400, -706741200, -699483600, -687996e3, -668034e3, -654732e3, -636584400, -622072800, -605739600, -590623200, -57429e4, -558568800, -542235600, -527119200, -512600400, -496274400, -481150800, -46422e4, -449701200, -432165600, -417646800, -401320800, -386197200, -369266400, -354747600, -337816800, -323298e3, -306972e3, -291848400, -276732e3, -257979600, -245282400, -22653e4, -213228e3, -195080400, -182383200, -163630800, -150933600, -132181200, -119484e3, -100731600, -88034400, -68677200, -59004e3, -37238400, 57726e3, 69818400, 89175600, 101268e3, 120625200, 132717600, 152074800, 164167200, 183524400, 196221600, 214974e3, 227671200, 246423600, 259120800, 278478e3, 290570400, 309927600, 32202e4, 341377200, 354675600, 372823200, 386125200, 404272800, 417574800, 435722400, 449024400, 467776800, 481078800, 499226400, 512528400, 530676e3, 543978e3, 562125600, 575427600, 593575200, 606877200, 625629600, 638326800, 657079200, 670381200, 688528800, 701830800, 719978400, 733280400, 751428e3, 76473e4, 782877600, 796179600, 814327200, 828234e3, 846381600, 859683600, 877831200, 891133200, 909280800, 922582800, 941335200, 954032400, 972784800, 985482e3, 1004234400, 1017536400, 1035684e3, 1048986e3, 1067133600, 1080435600, 1099188e3, 1111885200, 1130637600, 1143334800, 1162087200, 1174784400, 1193536800, 1206838800, 1224986400, 1238288400, 1256436e3, 1269738e3, 1288490400, 1301187600, 131994e4, 1332637200, 1351389600, 1364691600, 1382839200, 1396141200, 1414288800, 1427590800, 1445738400, 1459040400, 1477792800, 149049e4, 1509242400, 1521939600, 1540692e3, 1553994e3, 1572141600, 1585443600, 1603591200, 1616893200, 1635645600, 1648342800, 1667095200, 1679792400, 1698544800, 1711846800, 1729994400, 1743296400, 1761444e3, 1774746e3, 1792893600, 1806195600, 1824948e3, 1837645200, 1856397600, 1869094800, 1887847200, 1901149200, 1919296800, 1932598800],
                    offset: [-75, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 0, 3600, 0, 3600, 7200, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0]
                },
                "Europe/Luxembourg": {
                    time: [-2069712e3, -1692493200, -1680476400, -1662339600, -165015e4, -1632002400, -1618693200, -1612656e3, -1604278800, -1585515600, -1574038800, -1552255200, -1539997200, -1520546400, -1507510800, -1490569200, -1473642e3, -1459116e3, -1444006800, -142767e4, -1411866e3, -1396220400, -1379293200, -1364770800, -1348448400, -1333321200, -1316394e3, -1301266800, -1284339600, -126981e4, -1253484e3, -1238360400, -1221429600, -1206910800, -1191189600, -1175461200, -1160344800, -1143406800, -1127685600, -1111957200, -1096840800, -1080507600, -1063576800, -1049058e3, -1033336800, -1017608400, -1002492e3, -986158800, -969228e3, -950475600, -942012e3, -935182800, -85725e4, -844552800, -828219600, -812498400, -797979600, -781048800, -766616400, -745452e3, -733266e3, 228880800, 244004400, 260330400, 276058800, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [1476, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Madrid": {
                    time: [-2177453684, -1631926800, -1616886e3, -1601168400, -158535e4, -1442451600, -142767e4, -1379293200, -1364770800, -1348448400, -1333321200, -1316390400, -1301266800, -1284339600, -1269817200, -1026954e3, -1017615600, -1001898e3, -999478800, -986083200, -954111600, -940208400, -873075600, -862614e3, -842835600, -828313200, -811386e3, -796863600, -779936400, -765414e3, -748486800, -733964400, -652323600, -639010800, 135126e3, 150253200, 166575600, 181702800, 196815600, 212547600, 22887e4, 243997200, 260330400, 276058800, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [-884, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Paris": {
                    time: [-2486592e3, -1855958400, -1689814800, -1680393600, -1665363600, -1648339200, -1635123600, -1616889600, -1604278800, -158544e4, -1574038800, -1552262400, -1539997200, -1520553600, -1507510800, -1490572800, -1470618e3, -1459123200, -1444006800, -1427673600, -1411952400, -1396224e3, -1379293200, -1364774400, -1348448400, -1333324800, -1316394e3, -1301270400, -1284339600, -1269820800, -1253494800, -1238371200, -1221440400, -1206921600, -1191200400, -1175472e3, -1160355600, -1143417600, -1127696400, -1111968e3, -1096851600, -1080518400, -1063587600, -1049068800, -1033347600, -1017619200, -1002502800, -986169600, -969238800, -950486400, -942012e3, -932432400, -85725e4, -844552800, -828219600, -812498400, -800064e3, -796258800, -781048800, -766616400, 196822800, 212547600, 228880800, 244004400, 260330400, 276058800, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [561, 561, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Rome": {
                    time: [-3252096e3, -2403562204, -1690761600, -168048e4, -1664755200, -1648944e3, -163512e4, -1616889600, -1604275200, -1585526400, -1571011200, -1555286400, -932428800, -85725e4, -844552800, -828219600, -812498400, -798066e3, -781048800, -76671e4, -750895200, -733352400, -719452800, -70191e4, -689205600, -670453200, -114048e3, -103161600, -81993600, -71708400, -50544e3, -40258800, -18489600, -8204400, 1296e4, 23245200, 43804800, 54694800, 75859200, 86749200, 107913600, 118198800, 138758400, 149648400, 170812800, 181098e3, 202262400, 212547600, 233107200, 243997200, 265161600, 276051600, 296611200, 307501200, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [2996, 2996, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Warsaw": {
                    time: [-2840140800, -1717027200, -1693702800, -1680476400, -1663452e3, -1650142800, -1632002400, -1618693200, -1600466400, -1587157200, -1501718400, -931730400, -85725e4, -844552800, -828219600, -812498400, -796600800, -778723200, -762652800, -748483200, -733266e3, -715212e3, -701902800, -684972e3, -670453200, -654127200, -639003600, -397090800, -386805600, -371084400, -355356e3, -334191600, -323301600, -307580400, -291852e3, -271292400, -260402400, -239842800, -228952800, -208393200, -197503200, -176338800, -166053600, 228877200, 244000800, 260326800, 276055200, 291776400, 307504800, 323830800, 338954400, 354675600, 370404e3, 386125200, 401853600, 417574800, 433303200, 449024400, 465357600, 481078800, 496807200, 512528400, 528256800, 543978e3, 559706400, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [5040, 5040, 3600, 7200, 3600, 7200, 3600, 7200, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Istanbul": {
                    time: [-2840140800, -1869868800, -1693699200, -168048e4, -1570406400, -1552176e3, -1538352e3, -1522540800, -1507507200, -1490572800, -1440201600, -1428019200, -1409702400, -1396483200, -931046400, -922665600, -917827200, -892425600, -875836800, -764726400, -744336e3, -733795200, -716428800, -701913600, -684979200, -670464e3, -654134400, -639014400, -62208e4, -60696e4, -590025600, -575510400, -235612800, -194832e3, -177724800, -165715200, 107917200, 121226400, 133927200, 152676e3, 164685600, 184125600, 196221600, 215575200, 228880800, 245815200, 260330400, 267926400, 428464800, 433908e3, 468122400, 482806800, 496720800, 512528400, 528256800, 543978e3, 559706400, 575427600, 591156e3, 606877200, 622605600, 638326800, 65466e4, 670381200, 686109600, 701830800, 717559200, 733280400, 749008800, 764125200, 780458400, 796179600, 811908e3, 828234e3, 846381600, 859683600, 877831200, 891133200, 909280800, 922582800, 941335200, 954032400, 972784800, 985482e3, 1004234400, 1017536400, 1035684e3, 1048986e3, 1067133600, 1080435600, 1099188e3, 1111885200, 1130637600, 1143334800, 1162087200, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301281200, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396234800, 1414296e3, 1427598e3, 1446955200, 1459047600, 1473206400, 1925002800],
                    offset: [6952, 7016, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 10800, 14400, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 10800]
                },
                "Europe/Zurich": {
                    time: [-3675196800, -2385244800, -904431600, -891122400, -872982e3, -859672800, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [2048, 1786, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Australia/Sydney": {
                    time: [-2364076800, -1672524e3, -1665349200, -883605600, -876085200, -860364e3, -844635600, -828309600, -813186e3, 57722400, 68007600, 89172e3, 100062e3, 120621600, 131511600, 152071200, 162961200, 183520800, 195015600, 215575200, 226465200, 247024800, 257914800, 278474400, 289364400, 309924e3, 320814e3, 341373600, 352263600, 372823200, 386737200, 404877600, 415767600, 436327200, 447217200, 467776800, 478666800, 499226400, 511326e3, 530071200, 542775600, 562125600, 57483e4, 59418e4, 606279600, 625629600, 636519600, 657079200, 667969200, 688528800, 699418800, 719978400, 731473200, 752032800, 762922800, 783482400, 794372400, 814932e3, 828241200, 846381600, 859690800, 877831200, 891140400, 909280800, 92259e4, 941335200, 954039600, 967341600, 985489200, 1004234400, 1017543600, 1035684e3, 1048993200, 1067133600, 1080442800, 1099188e3, 1111892400, 1130637600, 1143946800, 1162087200, 1174791600, 1193536800, 1207450800, 1223172e3, 1238900400, 1254621600, 127035e4, 1286071200, 1301799600, 1317520800, 1333249200, 1349575200, 1365303600, 1381024800, 1396753200, 1412474400, 1428202800, 1443924e3, 1459652400, 1475373600, 1491102e3, 1506823200, 1522551600, 1538877600, 1554606e3, 1570327200, 1586055600, 1601776800, 1617505200, 1633226400, 1648954800, 1664676e3, 1680404400, 1696125600, 1712458800, 172818e4, 1743908400, 1759629600, 1775358e3, 1791079200, 1806807600, 1822528800, 1838257200, 1853978400, 1869706800, 1886032800, 1901761200, 1917482400, 1933210800],
                    offset: [36292, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600]
                },
                "Australia/Brisbane": {
                    time: [-2366755200, -1672524e3, -1665349200, -883605600, -876085200, -860364e3, -844635600, -828309600, -813186e3, 57722400, 68007600, 625629600, 636519600, 657079200, 667969200, 688528800, 699418800, 1925028e3],
                    offset: [36728, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3]
                },
                "Australia/Adelaide": {
                    time: [-2364076800, -2230156800, -1672524e3, -1665349200, -883605600, -876085200, -860364e3, -844635600, -828309600, -813186e3, 57722400, 68007600, 89172e3, 100062e3, 120621600, 131511600, 152071200, 162961200, 183520800, 195015600, 215575200, 226465200, 247024800, 257914800, 278474400, 289364400, 309924e3, 320814e3, 341373600, 352263600, 372823200, 384318e3, 404877600, 415767600, 436327200, 447217200, 467776800, 478666800, 499226400, 511326e3, 530071200, 542775600, 562125600, 57483e4, 59418e4, 606279600, 625629600, 637729200, 657079200, 667969200, 688528800, 701233200, 719978400, 731473200, 752032800, 764132400, 783482400, 796186800, 814932e3, 828241200, 846381600, 859690800, 877831200, 891140400, 909280800, 92259e4, 941335200, 954039600, 972784800, 985489200, 1004234400, 1017543600, 1035684e3, 1048993200, 1067133600, 1080442800, 1099188e3, 1111892400, 1130637600, 1143946800, 1162087200, 1174791600, 1193536800, 1207450800, 1223172e3, 1238900400, 1254621600, 127035e4, 1286071200, 1301799600, 1317520800, 1333249200, 1349575200, 1365303600, 1381024800, 1396753200, 1412474400, 1428202800, 1443924e3, 1459652400, 1475373600, 1491102e3, 1506823200, 1522551600, 1538877600, 1554606e3, 1570327200, 1586055600, 1601776800, 1617505200, 1633226400, 1648954800, 1664676e3, 1680404400, 1696125600, 1712458800, 172818e4, 1743908400, 1759629600, 1775358e3, 1791079200, 1806807600, 1822528800, 1838257200, 1853978400, 1869706800, 1886032800, 1901761200, 1917482400, 1933210800],
                    offset: [33260, 32400, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800, 34200, 37800]
                },
                "Australia/ACT": {
                    time: [-2364076800, -1672524e3, -1665349200, -883605600, -876085200, -860364e3, -844635600, -828309600, -813186e3, 57722400, 68007600, 89172e3, 100062e3, 120621600, 131511600, 152071200, 162961200, 183520800, 195015600, 215575200, 226465200, 247024800, 257914800, 278474400, 289364400, 309924e3, 320814e3, 341373600, 352263600, 372823200, 386737200, 404877600, 415767600, 436327200, 447217200, 467776800, 478666800, 499226400, 511326e3, 530071200, 542775600, 562125600, 57483e4, 59418e4, 606279600, 625629600, 636519600, 657079200, 667969200, 688528800, 699418800, 719978400, 731473200, 752032800, 762922800, 783482400, 794372400, 814932e3, 828241200, 846381600, 859690800, 877831200, 891140400, 909280800, 92259e4, 941335200, 954039600, 967341600, 985489200, 1004234400, 1017543600, 1035684e3, 1048993200, 1067133600, 1080442800, 1099188e3, 1111892400, 1130637600, 1143946800, 1162087200, 1174791600, 1193536800, 1207450800, 1223172e3, 1238900400, 1254621600, 127035e4, 1286071200, 1301799600, 1317520800, 1333249200, 1349575200, 1365303600, 1381024800, 1396753200, 1412474400, 1428202800, 1443924e3, 1459652400, 1475373600, 1491102e3, 1506823200, 1522551600, 1538877600, 1554606e3, 1570327200, 1586055600, 1601776800, 1617505200, 1633226400, 1648954800, 1664676e3, 1680404400, 1696125600, 1712458800, 172818e4, 1743908400, 1759629600, 1775358e3, 1791079200, 1806807600, 1822528800, 1838257200, 1853978400, 1869706800, 1886032800, 1901761200, 1917482400, 1933210800],
                    offset: [36292, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600, 36e3, 39600]
                },
                "Asia/Almaty": {
                    time: [-1441152e3, -1247529600, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 695786400, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1925013600],
                    offset: [18468, 18e3, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 21600, 18e3, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600, 25200, 21600]
                },
                "Asia/Ashkhabad": {
                    time: [-1441152e3, -1247529600, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 695786400, 192501e4],
                    offset: [14012, 14400, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3, 18e3, 14400, 18e3]
                },
                "Asia/Tokyo": {
                    time: [-2587678861, -683769600, -672274800, -654739200, -640825200, -620265600, -609375600, -588816e3, -577926e3, 1925024400],
                    offset: [33539, 32400, 36e3, 32400, 36e3, 32400, 36e3, 32400, 36e3, 32400]
                },
                "Asia/Taipei": {
                    time: [-2335219200, -1017792e3, -766191600, -745804800, -733795200, -716860800, -699580800, -683856e3, -670636800, -65232e4, -639100800, -620784e3, -607564800, -589248e3, -576028800, -562896e3, -541728e3, -528681600, -510192e3, -497145600, -478656e3, -465609600, -449798400, -433987200, -418176e3, -402451200, -38664e4, -370915200, -355104e3, -339379200, -323568e3, -302486400, -291945600, -270950400, -260409600, 134006400, 149817600, 165542400, 181353600, 299635200, 307584e3, 1925020800],
                    offset: [29160, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Asia/Singapore": {
                    time: [-2177452800, -2038176e3, -1167609600, -1073001600, -894153600, -879638400, -766972800, 378691200, 1925020800],
                    offset: [24925, 24925, 25200, 26400, 26400, 27e3, 32400, 27e3, 28800]
                },
                "Asia/Karachi": {
                    time: [-1988150400, -862617600, -764121600, -576115200, 38793600, 1018137600, 1033862400, 1212278400, 1225497600, 1239753600, 1257033600, 192501e4],
                    offset: [16092, 19800, 23400, 19800, 18e3, 18e3, 21600, 18e3, 21600, 18e3, 21600, 18e3]
                },
                "Asia/Manila": {
                    time: [-3944678400, -2229292800, -1046649600, -1038700800, -873244800, -794188800, -496195200, -489283200, 259372800, 275184e3, 1925020800],
                    offset: [-57360, 29040, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Asia/Shanghai": {
                    time: [-2177452800, -1600646400, -1585872e3, -933638400, -922060800, -908841600, -888796800, -881020800, -767836800, -745804800, -733795200, -716860800, -699580800, -683856e3, -670636800, -65232e4, -649987200, 515556e3, 527047200, 545191200, 558496800, 577245600, 589946400, 608695200, 622000800, 640144800, 653450400, 671594400, 6849e5, 1925020800],
                    offset: [29143, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Asia/Seoul": {
                    time: [-1948752e3, -1830384e3, -767318400, -681177600, -672192e3, -654739200, -640828800, -623376e3, -609379200, -588816e3, -577929600, -498096e3, -462672e3, -451699200, -429753600, -418262400, -399513600, -387417600, -368064e3, -355968e3, -336614400, -324518400, -305164800, -293068800, -264902400, 547610400, 560919600, 57906e4, 592369200, 1925024400],
                    offset: [30472, 30600, 32400, 32400, 36e3, 32400, 36e3, 32400, 36e3, 32400, 36e3, 32400, 30600, 34200, 30600, 34200, 30600, 34200, 30600, 34200, 30600, 34200, 30600, 34200, 30600, 32400, 36e3, 32400, 36e3, 32400]
                },
                "Asia/Tehran": {
                    time: [-1704153600, -757382400, 247190400, 259286400, 277776e3, 283996800, 290822400, 306547200, 322444800, 338515200, 673228800, 685497600, 701222400, 71712e4, 732758400, 748656e3, 764294400, 780192e3, 795830400, 811728e3, 827366400, 843264e3, 858988800, 874886400, 890524800, 906422400, 922060800, 937958400, 953596800, 969494400, 985219200, 1001116800, 1016755200, 1032652800, 1048291200, 1064188800, 1079827200, 1095724800, 1111449600, 1127347200, 1206057600, 1221955200, 123768e4, 1253577600, 1269216e3, 1285113600, 1300752e3, 1316649600, 1332288e3, 1348185600, 1363910400, 1379808e3, 1395446400, 1411344e3, 1426982400, 144288e4, 1458518400, 1474416e3, 1490140800, 1506038400, 1521676800, 1537574400, 1553212800, 1569110400, 1584748800, 1600646400, 1616371200, 1632268800, 1647907200, 1663804800, 1679443200, 1695340800, 1710979200, 1726876800, 1742601600, 1758499200, 1774137600, 1790035200, 1805673600, 1821571200, 1837209600, 1853107200, 1868745600, 1884643200, 1900368e3, 1916265600, 1931904e3],
                    offset: [12344, 12344, 12600, 14400, 18e3, 14400, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600, 16200, 12600]
                },
                "Asia/Dubai": {
                    time: [-1577923200, 1925006400],
                    offset: [13272, 14400]
                },
                "Asia/Kolkata": {
                    time: [-3645216e3, -3155673600, -2019686400, -891561600, -872035200, -862617600, -764121600, 1925011800],
                    offset: [21208, 21200, 19270, 19800, 23400, 19800, 23400, 19800]
                },
                "Asia/Hong_Kong": {
                    time: [-2056663398, -900882e3, -891547200, -884217600, -761176800, -747878400, -728508600, -717021e3, -697059e3, -683757e3, -668028600, -654726600, -636579e3, -623277e3, -605129400, -591827400, -573679800, -559773e3, -541625400, -528323400, -510179400, -498083400, -478729800, -466633800, -446675400, -435184200, -415225800, -403129800, -383776200, -371680200, -352326600, -340230600, -320877e3, -308781e3, -288822600, -277331400, -257373e3, -245881800, -225923400, -213827400, -194473800, -182377800, -163024200, -148509e3, -132784200, -117059400, -101334600, -85609800, -69280200, -53555400, -37830600, -22105800, -6381e3, 9343800, 25068600, 40793400, 56518200, 72243e3, 88572600, 104297400, 120022200, 126070200, 151471800, 167196600, 182921400, 198646200, 214371e3, 295414200, 309324600, 1925020800],
                    offset: [27402, 28800, 32400, 30600, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Asia/Bangkok": {
                    time: [-2840140800, -1570060800, 1925017200],
                    offset: [24124, 24124, 25200]
                },
                "Asia/Chongqing": {
                    time: [-2177452800, -1600646400, -1585872e3, -933638400, -922060800, -908841600, -888796800, -881020800, -767836800, -745804800, -733795200, -716860800, -699580800, -683856e3, -670636800, -65232e4, -649987200, 515556e3, 527047200, 545191200, 558496800, 577245600, 589946400, 608695200, 622000800, 640144800, 653450400, 671594400, 6849e5, 1925020800],
                    offset: [29143, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Asia/Jerusalem": {
                    time: [-2840140800, -1640995200, -933631200, -923086800, -919029600, -857336400, -844293600, -825800400, -812671200, -794178e3, -779839200, -762642e3, -748303200, -731106e3, -681948e3, -673214400, -667947600, -652312800, -636411600, -622072800, -608936400, -591832800, -572475600, -558568800, -542840400, -527724e3, -514414800, -490831200, -482965200, -459381600, -451515600, -428536800, -418251600, -400111200, -387406800, 142387200, 150854400, 167184e3, 178675200, 334108800, 337741200, 452649600, 46233e4, 482284800, 494380800, 516758400, 526435200, 545443200, 558489600, 576633600, 589334400, 609897600, 620784e3, 638323200, 651628800, 669772800, 683683200, 701827200, 715737600, 733708800, 747187200, 765158400, 778032e3, 796608e3, 810086400, 826848e3, 842832e3, 858902400, 874195200, 890352e3, 90504e4, 923018400, 936324e3, 955677600, 970794e3, 986778e3, 1001293200, 1017363600, 1033952400, 1048813200, 1065142800, 1081299600, 1095814800, 1112320800, 1128823200, 1143770400, 1159668e3, 117522e4, 1189908e3, 1206669600, 1223172e3, 1238119200, 1254016800, 1269568800, 1284256800, 1301623200, 1317520800, 1333072800, 1348365600, 1364522400, 1382839200, 1395972e3, 1414288800, 1427421600, 1445738400, 1458871200, 1477792800, 1490320800, 1509242400, 1521770400, 1540692e3, 1553824800, 1572141600, 1585274400, 1603591200, 1616724e3, 1635645600, 1648173600, 1667095200, 1679623200, 1698544800, 1711677600, 1729994400, 1743127200, 1761444e3, 1774576800, 1792893600, 1806026400, 1824948e3, 1837476e3, 1856397600, 1868925600, 1887847200, 190098e4, 1919296800, 1932429600],
                    offset: [8454, 8440, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 14400, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Asia/Kuwait": {
                    time: [-719625600, 1925002800],
                    offset: [11212, 10800]
                },
                "Asia/Muscat": {
                    time: [-1577923200, 1925006400],
                    offset: [13272, 14400]
                },
                "Asia/Qatar": {
                    time: [-1577923200, 76204800, 1925002800],
                    offset: [12368, 14400, 10800]
                },
                "Asia/Riyadh": {
                    time: [-719625600, 1925002800],
                    offset: [11212, 10800]
                },
                "Pacific/Auckland": {
                    time: [-3192393600, -1330293600, -1320012e3, -1300658400, -1287352800, -1269208800, -1255903200, -1237759200, -1224453600, -1206309600, -1192399200, -117486e4, -1160949600, -1143410400, -1125871200, -1112565600, -1094421600, -1081116e3, -1062972e3, -1049666400, -1031522400, -1018216800, -1000072800, -986767200, -968018400, -955317600, -936568800, -923263200, -757382400, 152676e3, 162356400, 183520800, 195015600, 215575200, 226465200, 247024800, 257914800, 278474400, 289364400, 309924e3, 320814e3, 341373600, 352263600, 372823200, 384318e3, 404877600, 415767600, 436327200, 447217200, 467776800, 478666800, 499226400, 510116400, 530676e3, 541566e3, 562125600, 573620400, 59418e4, 60507e4, 623815200, 637729200, 655264800, 669178800, 686714400, 700628400, 718164e3, 732682800, 749613600, 764132400, 781063200, 795582e3, 812512800, 827031600, 844567200, 858481200, 876016800, 889930800, 907466400, 921985200, 938916e3, 953434800, 970365600, 984884400, 100242e4, 1016334e3, 1033869600, 1047783600, 1065319200, 1079838e3, 1096768800, 1111287600, 1128218400, 1142737200, 1159668e3, 1174186800, 1191117600, 1207450800, 1222567200, 1238900400, 1254016800, 127035e4, 1285466400, 1301799600, 1316916e3, 1333249200, 1348970400, 1365303600, 138042e4, 1396753200, 1411869600, 1428202800, 1443319200, 1459652400, 1474768800, 1491102e3, 1506218400, 1522551600, 1538272800, 1554606e3, 1569722400, 1586055600, 1601172e3, 1617505200, 1632621600, 1648954800, 1664071200, 1680404400, 1695520800, 1712458800, 1727575200, 1743908400, 1759024800, 1775358e3, 1790474400, 1806807600, 1821924e3, 1838257200, 1853373600, 1869706800, 1885428e3, 1901761200, 1916877600, 1933210800],
                    offset: [41944, 41400, 45e3, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 41400, 43200, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800, 43200, 46800]
                },
                "Pacific/Chatham": {
                    time: [-3192393600, -757382400, 152678700, 162359100, 183523500, 195018300, 215577900, 226467900, 247027500, 257917500, 278477100, 289367100, 309926700, 320816700, 341376300, 352266300, 372825900, 384320700, 404880300, 415770300, 436329900, 447219900, 467779500, 478669500, 499229100, 510119100, 530678700, 541568700, 562128300, 573623100, 594182700, 605072700, 623817900, 637731900, 655267500, 669181500, 686717100, 700631100, 718166700, 732685500, 749616300, 764135100, 781065900, 795584700, 812515500, 827034300, 844569900, 858483900, 876019500, 889933500, 907469100, 921987900, 938918700, 953437500, 970368300, 984887100, 1002422700, 1016336700, 1033872300, 1047786300, 1065321900, 1079840700, 1096771500, 1111290300, 1128221100, 1142739900, 1159670700, 1174189500, 1191120300, 1207453500, 1222569900, 1238903100, 1254019500, 1270352700, 1285469100, 1301802300, 1316918700, 1333251900, 1348973100, 1365306300, 1380422700, 1396755900, 1411872300, 1428205500, 1443321900, 1459655100, 1474771500, 1491104700, 1506221100, 1522554300, 1538275500, 1554608700, 1569725100, 1586058300, 1601174700, 1617507900, 1632624300, 1648957500, 1664073900, 1680407100, 1695523500, 1712461500, 1727577900, 1743911100, 1759027500, 1775360700, 1790477100, 1806810300, 1821926700, 1838259900, 1853376300, 1869709500, 1885430700, 1901763900, 1916880300, 1933213500],
                    offset: [44028, 44100, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500, 45900, 49500]
                },
                "Pacific/Fakaofo": {
                    time: [-2177452800, 1325203200, 1925038800],
                    offset: [-41096, -39600, 46800]
                },
                "Pacific/Honolulu": {
                    time: [-2334139200, -1157320800, -1155470400, -880236e3, -769429800, -765410400, -712188e3, 1924956e3],
                    offset: [-37886, -37800, -34200, -37800, -34200, -34200, -37800, -36e3]
                },
                "America/Mexico_City": {
                    time: [-1514763396, -1343091600, -1234828800, -1220317200, -1207180800, -1191369600, -975283200, -963187200, -917136e3, -907372800, -821923200, -810086400, -627523200, -613008e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 989114400, 1001815200, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1175392800, 1193536800, 1207447200, 1224986400, 1238896800, 1256436e3, 1270346400, 1288490400, 1301796e3, 131994e4, 1333245600, 1351389600, 13653e5, 1382839200, 1396749600, 1414288800, 1428199200, 1445738400, 1459648800, 1477792800, 1491098400, 1509242400, 1522548e3, 1540692e3, 1554602400, 1572141600, 1586052e3, 1603591200, 1617501600, 1635645600, 1648951200, 1667095200, 1680400800, 1698544800, 1712455200, 1729994400, 1743904800, 1761444e3, 1775354400, 1792893600, 1806804e3, 1824948e3, 1838253600, 1856397600, 1869703200, 1887847200, 1901757600, 1919296800, 1933207200],
                    offset: [-23796, -25200, -21600, -25200, -21600, -25200, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600, -18e3, -21600]
                },
                "Africa/Cairo": {
                    time: [-2185401600, -929836800, -923097600, -906163200, -892857600, -875836800, -857779200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -399081600, -38664e4, -368323200, -355104e3, -336783600, -323643600, -305161200, -292021200, -273625200, -260485200, -242089200, -228949200, -210553200, -197413200, -178930800, -165790800, -147394800, -134254800, -115858800, -102632400, -84322800, -71096400, -52700400, -39474e3, -21164400, -7938e3, 10371600, 23598e3, 41907600, 55134e3, 7353e4, 86756400, 105066e3, 118292400, 136602e3, 149828400, 168138e3, 181364400, 199760400, 212986800, 231296400, 244522800, 262832400, 276058800, 294368400, 307594800, 325990800, 339217200, 357526800, 370753200, 396406800, 402289200, 426819600, 433825200, 452221200, 465447600, 483757200, 496983600, 515293200, 528519600, 546829200, 560055600, 578451600, 591678e3, 610419600, 623214e3, 641523600, 65475e4, 673059600, 686286e3, 704682e3, 717908400, 736218e3, 749444400, 767754e3, 780980400, 799027200, 812332800, 830476800, 843782400, 861926400, 875232e3, 893376e3, 906681600, 925430400, 938736e3, 95688e4, 970185600, 988329600, 1001635200, 1019779200, 1033084800, 1051228800, 1064534400, 1083283200, 1096588800, 1114732800, 1128038400, 1146182400, 1158883200, 1177632e3, 1189123200, 1209081600, 1219968e3, 1240531200, 1250812800, 1272585600, 1281484800, 1284076800, 1285891200, 1400198400, 1403827200, 1406851200, 1411689600, 1924999200],
                    offset: [7509, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Africa/Johannesburg": {
                    time: [-2458166400, -2109283200, -860968800, -845244e3, -829519200, -813794400, 1924999200],
                    offset: [6720, 5400, 7200, 10800, 7200, 10800, 7200]
                },
                "Asia/Kathmandu": {
                    time: [-1577923200, 504921600, 1925012700],
                    offset: [20476, 19800, 20700]
                },
                "US/Mountain": {
                    time: [-2717668796, -1633298400, -1615154400, -1601848800, -1583704800, -1570399200, -1551650400, -1538949600, -1534111200, -880236e3, -769417200, -765410400, -147909600, -13158e4, -11646e4, -100130400, -84405600, -68680800, -52956e3, -37231200, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 126669600, 152071200, 162352800, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [-25196, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200, -21600, -25200]
                },
                "Europe/Helsinki": {
                    time: [-2890252800, -1535932800, -875664e3, -859762800, 354679200, 370407600, 386128800, 401857200, 417582e3, 433310400, 449031600, 465364800, 481086e3, 496814400, 512535600, 528264e3, 543985200, 559713600, 575434800, 591163200, 606884400, 622612800, 638334e3, 654667200, 670388400, 686116800, 701838e3, 717566400, 733287600, 749016e3, 764737200, 780465600, 796186800, 811915200, 828241200, 846388800, 859690800, 877838400, 891140400, 909288e3, 92259e4, 941342400, 954039600, 972792e3, 985489200, 1004241600, 1017543600, 1035691200, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [5989, 5989, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Europe/Stockholm": {
                    time: [-2871676800, -2208988800, -1692493200, -1680476400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [4332, 3614, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Copenhagen": {
                    time: [-2524521600, -2398291200, -1692493200, -1680483600, -935107200, -85725e4, -844552800, -828219600, -812498400, -79677e4, -781048800, -769381200, -747007200, -736376400, -715212e3, -706741200, -683157600, -675291600, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [3020, 3020, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Atlantic/Reykjavik": {
                    time: [-1956614400, -1668214800, -1647212400, -1636678800, -161343e4, -1605142800, -1581894e3, -1539565200, -153135e4, -968029200, -952293600, -942012e3, -920239200, -909961200, -888789600, -877906800, -857944800, -846457200, -826495200, -815007600, -795045600, -783558e3, -762991200, -752108400, -731541600, -717634800, -700092e3, -686185200, -668642400, -654735600, -636588e3, -623286e3, -605743200, -591836400, -573688800, -559782e3, -542239200, -528332400, -510789600, -496882800, -47934e4, -465433200, -447890400, -433983600, -415836e3, -401929200, -384386400, -370479600, -352936800, -33903e4, -321487200, -307580400, -290037600, -276130800, -258588e3, -244681200, -226533600, -212626800, -195084e3, -181177200, -163634400, -149727600, -132184800, -118278e3, -100735200, -86828400, -68680800, -54774e3, 1924992e3],
                    offset: [-5280, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0, -3600, 0]
                },
                "Europe/Tallinn": {
                    time: [-2840140800, -1638316800, -1632002400, -1618693200, -1593820800, -1535932800, -927936e3, -892944e3, -85725e4, -844552800, -828219600, -812498400, -797644800, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909288e3, 92259e4, 941342400, 1017543600, 1035691200, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [5940, 5940, 3600, 7200, 3600, 5940, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Europe/Riga": {
                    time: [-2840140800, -1632002400, -1618693200, -1601676e3, -1597266e3, -1377302400, -928022400, -899510400, -85725e4, -844552800, -828219600, -812498400, -79677e4, -795830400, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 843966e3, 859690800, 877838400, 891140400, 909288e3, 92259e4, 941342400, 985489200, 1004241600, 1017543600, 1035691200, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [5794, 5794, 9394, 5794, 9394, 5794, 7200, 10800, 7200, 3600, 7200, 3600, 7200, 3600, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "Europe/Vilnius": {
                    time: [-2840140800, -1672531200, -1585094400, -1561248e3, -1553558400, -928195200, -900115200, -85725e4, -844552800, -828219600, -812498400, -802137600, 354931200, 370742400, 386467200, 402278400, 418003200, 433814400, 449625600, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891140400, 909284400, 922586400, 941338800, 1048993200, 1067140800, 1080442800, 1099195200, 1111892400, 1130644800, 1143342e3, 1162094400, 1174791600, 1193544e3, 1206846e3, 1224993600, 1238295600, 1256443200, 1269745200, 1288497600, 1301194800, 1319947200, 1332644400, 1351396800, 1364698800, 1382846400, 1396148400, 1414296e3, 1427598e3, 1445745600, 1459047600, 14778e5, 1490497200, 1509249600, 1521946800, 1540699200, 1554001200, 1572148800, 1585450800, 1603598400, 1616900400, 1635652800, 164835e4, 1667102400, 1679799600, 1698552e3, 1711854e3, 1730001600, 1743303600, 1761451200, 1774753200, 1792900800, 1806202800, 1824955200, 1837652400, 1856404800, 1869102e3, 1887854400, 1901156400, 1919304e3, 1932606e3],
                    offset: [6076, 5040, 5736, 3600, 7200, 3600, 10800, 7200, 3600, 7200, 3600, 7200, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 14400, 10800, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 7200, 3600, 7200, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200, 10800, 7200]
                },
                "America/Lima": {
                    time: [-2524521600, -1938556800, -1009843200, -1002067200, -986774400, -971049600, -955324800, -9396e5, 504921600, 512697600, 536457600, 544233600, 631152e3, 638928e3, 757382400, 765158400, 1924974e3],
                    offset: [-18492, -18516, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3]
                },
                "America/Santiago": {
                    time: [-2524521600, -1892678400, -1688428800, -1619222400, -1593820800, -1336003200, -13176e5, -1304380800, -1286064e3, -1272844800, -1254528e3, -1241308800, -1222992e3, -1209772800, -1191369600, -1178150400, -870566400, -865296e3, -740534400, -736387200, -718070400, -713667600, -36633600, -23932800, -3369600, 7516800, 24451200, 37756800, 55900800, 69206400, 87955200, 100656e3, 118195200, 132105600, 150854400, 163555200, 182304e3, 195609600, 213753600, 227059200, 245203200, 258508800, 277257600, 289958400, 308707200, 321408e3, 340156800, 353462400, 371606400, 384912e3, 403056e3, 416361600, 434505600, 447811200, 46656e4, 479260800, 498009600, 510710400, 529459200, 545184e3, 560908800, 574214400, 592358400, 605664e3, 624412800, 637113600, 653443200, 668563200, 687312e3, 700617600, 718761600, 732067200, 750211200, 763516800, 781660800, 794966400, 813715200, 826416e3, 845164800, 85968e4, 876614400, 88992e4, 906854400, 923184e3, 939513600, 952819200, 971568e3, 984268800, 1003017600, 1015718400, 1034467200, 1047168e3, 1065916800, 1079222400, 1097366400, 1110672e3, 1128816e3, 1142121600, 1160870400, 1173571200, 119232e4, 1206835200, 1223769600, 1237075200, 1255219200, 1270339200, 1286668800, 1304812800, 1313884800, 1335657600, 1346544e3, 1367107200, 1378598400, 1398556800, 1410048e3, 1463270400, 1471132800, 149472e4, 1502582400, 1526169600, 1534032e3, 1554595200, 1567900800, 1586044800, 1599350400, 1617494400, 16308e5, 1648944e3, 1662249600, 1680393600, 1693699200, 1712448e3, 1725753600, 1743897600, 1757203200, 1775347200, 1788652800, 1806796800, 1820102400, 1838246400, 1851552e3, 1870300800, 1883001600, 1901750400, 1915056e3, 19332e5],
                    offset: [-16966, -16966, -18e3, -16966, -14400, -16966, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -18e3, -14400, -10800, -14400, -18e3, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800, -14400, -10800]
                },
                "Asia/Bahrain": {
                    time: [-1577923200, 76204800, 1925002800],
                    offset: [12368, 14400, 10800]
                },
                "Asia/Jakarta": {
                    time: [-3231273600, -1451693568, -117288e4, -876614400, -766022400, -683856e3, -620784e3, -189388800, 1925017200],
                    offset: [25632, 25632, 26400, 27e3, 32400, 27e3, 28800, 27e3, 25200]
                },
                "Africa/Lagos": {
                    time: [-2035584e3, -1940889600, -1767225600, -1588464e3, 1924995600],
                    offset: [815, 0, 815, 1800, 3600]
                },
                "Pacific/Norfolk": {
                    time: [-2177452800, -599616e3, 152071200, 162961200, 1443924e3, 1570327200, 1586055600, 1601776800, 1617505200, 1633226400, 1648954800, 1664676e3, 1680404400, 1696125600, 1712458800, 172818e4, 1743908400, 1759629600, 1775358e3, 1791079200, 1806807600, 1822528800, 1838257200, 1853978400, 1869706800, 1886032800, 1901761200, 1917482400, 1933210800],
                    offset: [40312, 40320, 41400, 45e3, 41400, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200, 39600, 43200]
                },
                "America/Juneau": {
                    time: [-3225169588, -2188987200, -880236e3, -769420800, -765410400, -21506400, -5781600, 9943200, 25668e3, 41392800, 57722400, 73447200, 89172e3, 104896800, 120621600, 126669600, 152071200, 162352800, 183520800, 199245600, 215575200, 230695200, 247024800, 262749600, 278474400, 294199200, 309924e3, 325648800, 341373600, 357098400, 372823200, 388548e3, 404877600, 419997600, 436327200, 438998400, 452052e3, 467776800, 483501600, 499226400, 514951200, 530676e3, 544586400, 562125600, 576036e3, 59418e4, 607485600, 625629600, 638935200, 657079200, 670989600, 688528800, 702439200, 719978400, 733888800, 752032800, 765338400, 783482400, 796788e3, 814932e3, 828842400, 846381600, 860292e3, 877831200, 891741600, 909280800, 923191200, 941335200, 954640800, 972784800, 986090400, 1004234400, 1018144800, 1035684e3, 1049594400, 1067133600, 1081044e3, 1099188e3, 1112493600, 1130637600, 1143943200, 1162087200, 1173578400, 1194141600, 1205028e3, 1225591200, 1236477600, 1257040800, 1268532e3, 1289095200, 1299981600, 1320544800, 1331431200, 1351994400, 1362880800, 1383444e3, 1394330400, 1414893600, 142578e4, 1446343200, 1457834400, 1478397600, 1489284e3, 1509847200, 1520733600, 1541296800, 1552183200, 1572746400, 1583632800, 1604196e3, 1615687200, 1636250400, 1647136800, 16677e5, 1678586400, 1699149600, 1710036e3, 1730599200, 1741485600, 1762048800, 1772935200, 1793498400, 1804989600, 1825552800, 1836439200, 1857002400, 1867888800, 1888452e3, 1899338400, 1919901600, 1930788e3],
                    offset: [54139, -32261, -28800, -25200, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -25200, -28800, -28800, -28800, -25200, -28800, -25200, -28800, -25200, -32400, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400, -28800, -32400]
                },
                "Asia/Ho_Chi_Minh": {
                    time: [-2004048e3, -1851552e3, -852080400, -782614800, -767836800, -718070400, -457747200, -315622800, 171849600, 1925017200],
                    offset: [25600, 25590, 25200, 28800, 32400, 25200, 28800, 25200, 28800, 25200]
                },
                "Australia/Perth": {
                    time: [-2337897600, -1672524e3, -1665349200, -883605600, -876085200, -860364e3, -844635600, 152071200, 162961200, 436327200, 447217200, 690343200, 699418800, 1165111200, 1174791600, 1193536800, 1206846e3, 1224986400, 1238295600, 1925020800],
                    offset: [27804, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800, 32400, 28800]
                },
                "Europe/Malta": {
                    time: [-2403475200, -1690761600, -168048e4, -1664755200, -1648944e3, -163512e4, -1616889600, -1604275200, -1585526400, -1571011200, -1555286400, -932428800, -85725e4, -844552800, -828219600, -812584800, -798066e3, -781048800, -76671e4, -750895200, -733352400, -719452800, -70191e4, -689205600, -670453200, -114048e3, -103161600, -81993600, -71708400, -50544e3, -40258800, -18489600, -8204400, 1296e4, 23245200, 43804800, 54694800, 75859200, 86749200, 102384e3, 118112400, 135734400, 148525200, 167191200, 180496800, 198640800, 211946400, 230090400, 243396e3, 26154e4, 274845600, 292989600, 306295200, 323316e3, 338349600, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [3484, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Amsterdam": {
                    time: [-4260211200, -1693699200, -168048e4, -1663452e3, -1650142800, -1633212e3, -1617483600, -1601157600, -1586034e3, -1569708e3, -1554584400, -1538258400, -1523134800, -15075e5, -1490562e3, -1470175200, -1459112400, -1443996e3, -1427662800, -1406671200, -1396213200, -1376949600, -1364763600, -1345413600, -1333314e3, -1313791200, -1301259600, -1282255200, -126981e4, -1250719200, -1238360400, -1219183200, -1206910800, -1186956e3, -1175461200, -1156024800, -1143406800, -1124488800, -1111957200, -1092952800, -1080507600, -1061330400, -1049058e3, -1029189600, -1025740800, -1017608400, -998258400, -986158800, -966722400, -954104400, -935020800, -85725e4, -844552800, -828219600, -812498400, -79677e4, -781048800, -766616400, 228880800, 244004400, 260330400, 276058800, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [1172, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 1172, 4772, 4800, 1200, 4800, 1200, 4800, 1200, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Brussels": {
                    time: [-2840140800, -2450994150, -1740355200, -1693699200, -1680476400, -1663452e3, -1650142800, -1632002400, -1618693200, -1613822400, -1604278800, -1585526400, -1574038800, -1552262400, -1539997200, -1520553600, -1507510800, -1490572800, -1473642e3, -1459123200, -1444006800, -1427673600, -1411952400, -1396224e3, -1379293200, -1364774400, -1348448400, -1333324800, -1316394e3, -1301259600, -1284328800, -126981e4, -1253484e3, -1238360400, -1221429600, -1206910800, -1191189600, -1175461200, -1160344800, -1143406800, -1127685600, -1111957200, -1096840800, -1080507600, -1063576800, -1049058e3, -1033336800, -1017608400, -1002492e3, -986158800, -969228e3, -950475600, -942012e3, -934664400, -85725e4, -844552800, -828219600, -812498400, -798066e3, -781048800, -766616400, -745452e3, -733266e3, 228880800, 244004400, 260330400, 276058800, 29178e4, 307508400, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [1050, 1050, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                },
                "Europe/Lisbon": {
                    time: [-1830386205, -1689555600, -1677798e3, -1667437200, -1647734400, -1635814800, -1616198400, -1604365200, -1584662400, -1572742800, -155304e4, -1541206800, -1521504e3, -1442451600, -1426809600, -1379293200, -1364774400, -1348448400, -1333324800, -1316394e3, -1301270400, -1284339600, -1269820800, -1221440400, -1206921600, -1191200400, -1175472e3, -1127696400, -1111968e3, -1096851600, -1080518400, -1063587600, -1049068800, -1033347600, -1017619200, -1002502800, -986169600, -969238800, -950486400, -942022800, -922665600, -906944400, -891129600, -877309200, -873680400, -864e6, -857952e3, -845859600, -842835600, -831340800, -825897600, -81441e4, -810781200, -799891200, -794448e3, -782960400, -779331600, -768441600, -762998400, -749091600, -733363200, -717631200, -701902800, -686181600, -670453200, -654732e3, -639003600, -623282400, -607554e3, -591832800, -575499600, -559778400, -54405e4, -528328800, -512600400, -496879200, -481150800, -465429600, -449701200, -43398e4, -417646800, -401925600, -386197200, -370476e3, -354747600, -339026400, -323298e3, -307576800, -291848400, -276127200, -260398800, -244677600, -228344400, -212623200, -196894800, -181173600, -165445200, -149724e3, -133995600, -118274400, 212547600, 228268800, 243997200, 260323200, 276051600, 291772800, 307504800, 323222400, 338954400, 354675600, 370404e3, 386125200, 401853600, 417578400, 433303200, 449024400, 465357600, 481078800, 496807200, 512528400, 528256800, 543978e3, 559706400, 575427600, 591156e3, 606877200, 622605600, 638326800, 65466e4, 670381200, 686109600, 701830800, 717559200, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846381600, 859683600, 877831200, 891133200, 909280800, 922582800, 941335200, 954032400, 972784800, 985482e3, 1004234400, 1017536400, 1035684e3, 1048986e3, 1067133600, 1080435600, 1099188e3, 1111885200, 1130637600, 1143334800, 1162087200, 1174784400, 1193536800, 1206838800, 1224986400, 1238288400, 1256436e3, 1269738e3, 1288490400, 1301187600, 131994e4, 1332637200, 1351389600, 1364691600, 1382839200, 1396141200, 1414288800, 1427590800, 1445738400, 1459040400, 1477792800, 149049e4, 1509242400, 1521939600, 1540692e3, 1553994e3, 1572141600, 1585443600, 1603591200, 1616893200, 1635645600, 1648342800, 1667095200, 1679792400, 1698544800, 1711846800, 1729994400, 1743296400, 1761444e3, 1774746e3, 1792893600, 1806195600, 1824948e3, 1837645200, 1856397600, 1869094800, 1887847200, 1901149200, 1919296800, 1932598800],
                    offset: [-2205, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 7200, 3600, 0, 3600, 7200, 3600, 0, 3600, 7200, 3600, 0, 3600, 7200, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0]
                },
                "Europe/Dublin": {
                    time: [-2821651200, -1691964e3, -1680469200, -1664143200, -1650142800, -1633903200, -1617483600, -1601848800, -1586034e3, -1570399200, -1552165200, -1538344800, -152253e4, -15075e5, -1490562e3, -1473631200, -1460926800, -1442786400, -1428872400, -1410732e3, -1396213200, -1379282400, -1364763600, -1348437600, -1333314e3, -1315778400, -1301259600, -1284328800, -126981e4, -1253484e3, -1238360400, -1221429600, -1206910800, -118998e4, -1175461200, -1159135200, -1143406800, -1126476e3, -1111957200, -1095631200, -1080507600, -1063576800, -1049058e3, -1032127200, -1017608400, -1001282400, -986158800, -969228e3, -950475600, -942012e3, -733352400, -719445600, -699483600, -684972e3, -668034e3, -654732e3, -636584400, -622072800, -605739600, -590623200, -57429e4, -558568800, -542235600, -527119200, -512600400, -496274400, -481150800, -46422e4, -449701200, -432165600, -417646800, -401320800, -386197200, -369266400, -354747600, -337816800, -323298e3, -306972e3, -291848400, -276732e3, -257979600, -245282400, -22653e4, -213228e3, -195080400, -182383200, -163630800, -150933600, -132181200, -119484e3, -100731600, -88034400, -68677200, -59004e3, 57726e3, 69818400, 89175600, 101268e3, 120625200, 132717600, 152074800, 164167200, 183524400, 196221600, 214974e3, 227671200, 246423600, 259120800, 278478e3, 290570400, 309927600, 32202e4, 341377200, 354675600, 372823200, 386125200, 404272800, 417574800, 435722400, 449024400, 467776800, 481078800, 499226400, 512528400, 530676e3, 543978e3, 562125600, 575427600, 593575200, 606877200, 625629600, 638326800, 657079200, 670381200, 688528800, 701830800, 719978400, 733280400, 751428e3, 76473e4, 782877600, 796179600, 814327200, 828234e3, 846381600, 859683600, 877831200, 891133200, 909280800, 922582800, 941335200, 954032400, 972784800, 985482e3, 1004234400, 1017536400, 1035684e3, 1048986e3, 1067133600, 1080435600, 1099188e3, 1111885200, 1130637600, 1143334800, 1162087200, 1174784400, 1193536800, 1206838800, 1224986400, 1238288400, 1256436e3, 1269738e3, 1288490400, 1301187600, 131994e4, 1332637200, 1351389600, 1364691600, 1382839200, 1396141200, 1414288800, 1427590800, 1445738400, 1459040400, 1477792800, 149049e4, 1509242400, 1521939600, 1540692e3, 1553994e3, 1572141600, 1585443600, 1603591200, 1616893200, 1635645600, 1648342800, 1667095200, 1679792400, 1698544800, 1711846800, 1729994400, 1743296400, 1761444e3, 1774746e3, 1792893600, 1806195600, 1824948e3, 1837645200, 1856397600, 1869094800, 1887847200, 1901149200, 1919296800, 1932598800],
                    offset: [-1500, -1521, 2079, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0, 3600, 0]
                },
                "Europe/Oslo": {
                    time: [-2366755200, -1691881200, -1680566400, -927507600, -85725e4, -844552800, -828219600, -812498400, -79677e4, -781048800, -765320400, -340840800, -324507600, -308786400, -293058e3, -277336800, -261608400, -245887200, -230158800, -214437600, -198709200, -182988e3, -166654800, -147909600, -135205200, 323834400, 338958e3, 354679200, 370407600, 386128800, 401857200, 417578400, 433306800, 449028e3, 465361200, 481082400, 496810800, 512532e3, 528260400, 543981600, 55971e4, 575431200, 591159600, 606880800, 622609200, 638330400, 654663600, 670384800, 686113200, 701834400, 717562800, 733284e3, 749012400, 764733600, 780462e3, 796183200, 811911600, 828237600, 846385200, 859687200, 877834800, 891136800, 909284400, 922586400, 941338800, 954036e3, 972788400, 985485600, 1004238e3, 101754e4, 1035687600, 1048989600, 1067137200, 1080439200, 1099191600, 1111888800, 1130641200, 1143338400, 1162090800, 1174788e3, 1193540400, 1206842400, 122499e4, 1238292e3, 1256439600, 1269741600, 1288494e3, 1301191200, 1319943600, 1332640800, 1351393200, 1364695200, 1382842800, 1396144800, 1414292400, 1427594400, 1445742e3, 1459044e3, 1477796400, 1490493600, 1509246e3, 1521943200, 1540695600, 1553997600, 1572145200, 1585447200, 1603594800, 1616896800, 1635649200, 1648346400, 1667098800, 1679796e3, 1698548400, 1711850400, 1729998e3, 17433e5, 1761447600, 1774749600, 1792897200, 1806199200, 1824951600, 1837648800, 1856401200, 1869098400, 1887850800, 1901152800, 1919300400, 1932602400],
                    offset: [2580, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600, 7200, 3600]
                }
            }
        },
        65066: (e, t, r) => {
            "use strict";
            e = r.nmd(e);
            var o = r(87380).getLogger("Common.WatchedValue");

            function n() {}

            function i(e) {
                if (!(this instanceof i)) return new i(e);
                arguments.length > 0 && (this._value = e), this._listeners = []
            }
            i.prototype.value = function() {
                return this._owner ? this._owner._value : this._value
            }, i.prototype.setValue = function(e, t) {
                var r = this._owner ? this._owner : this;
                if ("function" == typeof r.hook && (e = r.hook(e)), r.writeLock) return r._value;
                var n = r._value === e || Number.isNaN(r._value) && Number.isNaN(e);
                if (!t && n && r.hasOwnProperty("_value")) return e;
                r._value = e;
                for (var i = r._listeners.slice(), s = 0, a = 0; a < i.length; a++) {
                    i[a].once && (r._listeners.splice(a - s, 1), s++);
                    try {
                        i[a].cb(e)
                    } catch (e) {
                        o.logError(e.stack || e.message)
                    }
                }
                return e
            }, i.prototype.deleteValue = function() {
                var e = this._owner ? this._owner : this;
                if (e.hasOwnProperty("_value")) {
                    if (e.writeLock) return e._value;
                    delete e._value;
                    for (var t = e._listeners.slice(), r = 0, n = 0; n < t.length; n++) {
                        t[n].once && (e._listeners.splice(n - r, 1), r++);
                        try {
                            t[n].cb()
                        } catch (e) {
                            o.logError(e.stack || e.message)
                        }
                    }
                }
            }, i.prototype.subscribe = function(e, t) {
                if ("function" != typeof e) throw new TypeError("callback must be a function");
                var r = !!t && !!t.once,
                    n = !!t && !!t.callWithLast,
                    i = this._owner ? this._owner : this;
                if (n && i.hasOwnProperty("_value")) {
                    try {
                        e(i._value)
                    } catch (e) {
                        o.logError(e.stack || e.message)
                    }
                    if (r) return
                }
                i._listeners.push({
                    cb: e,
                    owner: this,
                    once: !!t && !!t.once
                })
            }, i.prototype.unsubscribe = function(e) {
                var t = this._owner ? this._owner : this;
                void 0 === e && (e = null);
                for (var r = t._listeners, o = r.length; o--;) r[o].owner !== this && t !== this || r[o].cb !== e && null !== e || r.splice(o, 1)
            }, i.prototype.listeners = function() {
                return (this._owner ? this._owner : this)._listeners
            }, i.prototype.readonly = function() {
                if (this._readonlyInstance) return this._readonlyInstance;
                var e = this._readonlyInstance = new n;
                return e.subscribe = this.subscribe.bind(this), e.unsubscribe = this.unsubscribe.bind(this), e.value = this.value.bind(this), e.when = this.when.bind(this), e.spawn = function() {
                    return this.spawn.apply(this, arguments).readonly()
                }.bind(this), this.destroy && (e.destroy = this.destroy.bind(this)), e
            }, i.prototype.spawn = function(e) {
                var t = new i;
                return delete t._listeners, t._owner = this._owner || this, t.destroy = function() {
                    if ("function" == typeof e) try {
                        e()
                    } catch (e) {
                        o.logError(e.stack || e.message)
                    }
                    this.unsubscribe(), delete this._owner
                }, t
            }, i.prototype.when = function(e) {
                var t = this;
                if (this.value()) try {
                    e()
                } catch (e) {
                    o.logError(e.stack || e.message)
                } else {
                    var r = function(o) {
                        o && (t.unsubscribe(r), e())
                    };
                    t.subscribe(r)
                }
            }, i.prototype.opposite = function() {
                if (!this._opposite) {
                    var e = this,
                        t = new i(!this.value());
                    this.subscribe((function(e) {
                        t.setValue(!e)
                    })), t.subscribe((function(t) {
                        e.setValue(!t)
                    })), this._opposite = t
                }
                return this._opposite
            }, "undefined" != typeof window && (window.WatchedValue = i), e && e.exports && (e.exports = i)
        },
        34131: (e, t, r) => {
            "use strict";
            var o = r(18184),
                n = r(95355).mobiletouch;
            ! function(e, t, r) {
                function o(r, o) {
                    o = o || r + "outside";
                    var n = e(),
                        i = r + "." + o + "-special-event";

                    function s(t) {
                        e(n).each((function() {
                            var r = e(this);
                            this === t.target || r.has(t.target).length || r.triggerHandler(o, [t.target])
                        }))
                    }
                    e.event.special[o] = {
                        setup: function() {
                            delete(n = n.add(this)).prevObject, 1 === n.length && e(t).bind(i, s)
                        },
                        teardown: function() {
                            delete(n = n.not(this)).prevObject, 0 === n.length && e(t).unbind(i)
                        },
                        add: function(e) {
                            var t = e.handler;
                            e.handler = function(e, r) {
                                e.target = r, t.apply(this, arguments)
                            }
                        }
                    }
                }
                e.map("click dblclick mousemove mousedown mouseup mouseover mouseout change select submit keydown keypress keyup".split(" "), (function(e) {
                    o(e)
                })), o("focusin", "focusoutside"), o("focusout", "bluroutside"), n && (o("touchstart", "mousedownoutside"), o("touchmove", "mousemoveoutside"), o("touchend", "mouseupoutside")), e.addOutsideEvent = o
            }(o, document)
        },
        18194: (e, t, r) => {
            "use strict";
            r.d(t, {
                quoteFieldTitles: () => n
            });
            var o = r(8107);
            r(68421);
            const n = {
                name: [(0, o.t)("Ticker"), (0, o.t)("Ticker")],
                description: [(0, o.t)("Description"), (0, o.t)("Description")],
                country: [(0, o.t)("Country"), (0, o.t)("Country")],
                type: [(0, o.t)("Symbol Type"), (0, o.t)("Symbol Type")],
                after_tax_margin: [(0, o.t)("Net Margin (TTM)"), (0, o.t)("Net Margin")],
                average_volume: [(0, o.t)("Average Volume (10 day)"), (0, o.t)("Avg Vol (10)")],
                average_volume_30d_calc: [(0,
                    o.t)("Average Volume (30 day)"), (0, o.t)("Avg Vol (30)")],
                average_volume_60d_calc: [(0, o.t)("Average Volume (60 day)"), (0, o.t)("Avg Vol (60)")],
                average_volume_90d_calc: [(0, o.t)("Average Volume (90 day)"), (0, o.t)("Avg Vol (90)")],
                basic_eps_net_income: [(0, o.t)("Basic EPS (FY)"), (0, o.t)("EPS (FY)")],
                beta_1_year: [(0, o.t)("1-Year Beta"), (0, o.t)("1-Y Beta")],
                beta_3_year: [(0, o.t)("Beta - 3 Year"), (0, o.t)("Beta 3Y")],
                beta_5_year: [(0, o.t)("Beta - 5 Year"), (0, o.t)("Beta 5Y")],
                candlestick: [(0, o.t)("Pattern", {
                    context: "candlestick_pattern"
                }), (0, o.t)("Pattern", {
                    context: "candlestick_pattern"
                })],
                current_ratio: [(0, o.t)("Current Ratio (MRQ)"), (0, o.t)("Current Ratio")],
                debt_to_assets: [(0, o.t)("Debt to Assets"), (0, o.t)("Debt to Assets")],
                debt_to_equity: [(0, o.t)("Debt to Equity Ratio (MRQ)"), (0, o.t)("DEBT/EQUITY")],
                dividends_paid: [(0, o.t)("Dividends Paid (FY)"), (0, o.t)("Div Paid")],
                dividends_per_share_fq: [(0, o.t)("Dividends per Share (MRQ)"), (0, o.t)("Div per Share (MRQ)")],
                dividends_yield: [(0, o.t)("Dividend Yield Forward"), (0, o.t)("Div Yield FWD")],
                dividend_yield_recent: [(0, o.t)("Dividend Yield Forward"), (0, o.t)("Div Yield FWD")],
                dps_common_stock_prim_issue_fy: [(0, o.t)("Dividends per Share (FY)"), (0, o.t)("Div per Share (FY)")],
                earnings_per_share_basic_ttm: [(0, o.t)("Basic EPS (TTM)"), (0, o.t)("EPS (TTM)")],
                earnings_per_share_diluted_ttm: [(0, o.t)("EPS Diluted (TTM)"), (0, o.t)("EPS Diluted (TTM)")],
                earnings_per_share_forecast_next_fq: [(0, o.t)("EPS Forecast (FQ)"), (0, o.t)("EPS Forecast")],
                earnings_per_share_fq: [(0, o.t)("EPS Diluted (MRQ)"), (0, o.t)("EPS Diluted (MRQ)")],
                earnings_release_date: [(0, o.t)("Recent Earnings Date"), (0, o.t)("Recent Earnings Date")],
                earnings_release_next_date: [(0, o.t)("Upcoming Earnings Date"), (0, o.t)("Upcoming Earnings Date")],
                ebitda: [(0, o.t)("EBITDA (TTM)"), (0, o.t)("EBITDA")],
                enterprise_value_ebitda_ttm: [(0, o.t)("Enterprise Value/EBITDA (TTM)"), (0, o.t)("EV/EBITDA")],
                enterprise_value_fq: [(0, o.t)("Enterprise Value (MRQ)"), (0, o.t)("EV")],
                exchange: [(0, o.t)("Exchange"), (0, o.t)("Exchange")],
                gross_margin: [(0, o.t)("Gross Margin (TTM)"), (0, o.t)("Gross Margin")],
                gross_profit: [(0, o.t)("Gross Profit (FY)"), (0, o.t)("Gross Profit (FY)")],
                gross_profit_fq: [(0, o.t)("Gross Profit (MRQ)"), (0, o.t)("Gross Profit (MRQ)")],
                index: [(0, o.t)("Index"), (0, o.t)("Index")],
                industry: [(0, o.t)("Industry"), (0, o.t)("Industry")],
                last_annual_eps: [(0, o.t)("EPS Diluted (FY)"), (0, o.t)("EPS Diluted (FY)")],
                last_annual_revenue: [(0, o.t)("Last Year Revenue (FY)"), (0, o.t)("Annual Rev")],
                long_term_capital: [(0, o.t)("Capital Long Term"), (0, o.t)("Capital Long Term")],
                market_cap_basic: [(0, o.t)("Market Capitalization"), (0, o.t)("Mkt Cap")],
                market_cap_calc: [(0, o.t)("Market Capitalization"), (0, o.t)("Mkt Cap")],
                market_cap_diluted_calc: [(0, o.t)("Fully Diluted Market Cap"), (0, o.t)("FD Mkt Cap")],
                net_debt: [(0, o.t)("Net Debt (MRQ)"), (0, o.t)("Net Debt")],
                net_income: [(0, o.t)("Net Income (FY)"), (0, o.t)("Income")],
                number_of_employees: [(0, o.t)("Number of Employees"), (0, o.t)("EMPLOYEES")],
                number_of_shareholders: [(0, o.t)("Number of Shareholders"), (0, o.t)("Shareholders")],
                open_price: [(0,
                    o.t)("Open Price"), (0, o.t)("Open")],
                operating_margin: [(0, o.t)("Operating Margin (TTM)"), (0, o.t)("Operating Margin")],
                pre_tax_margin: [(0, o.t)("Pretax Margin (TTM)"), (0, o.t)("Pretax Margin")],
                preferred_dividends: [(0, o.t)("Dividends Preferred"), (0, o.t)("Div Pref")],
                prev_close_price: [(0, o.t)("Previous Close Price"), (0, o.t)("Prev")],
                price_52_week_high: [(0, o.t)("52 Week High"), (0, o.t)("High 52W")],
                price_52_week_low: [(0, o.t)("52 Week Low"), (0, o.t)("Low 52W")],
                price_book_ratio: [(0, o.t)("Price to Book (FY)"), (0, o.t)("P/B (FY)")],
                price_earnings_ttm: [(0, o.t)("Price to Earnings Ratio (TTM)"), (0, o.t)("P/E")],
                price_percent_change_1_week: [(0, o.t)("Price % Change 1 Week"), (0, o.t)("Chng 1W")],
                price_percent_change_4_week: [(0, o.t)("Price % Change 4 Week"), (0, o.t)("Chng 4W")],
                price_percent_change_52_week: [(0, o.t)("Price % Change 52 Week"), (0, o.t)("Chng 52W")],
                price_revenue_ttm: [(0, o.t)("Price to Revenue Ratio (TTM)"), (0, o.t)("Price/Rev")],
                price_sales_ratio: [(0, o.t)("Price to Sales (FY)"), (0, o.t)("P/S")],
                quick_ratio: [(0, o.t)("Quick Ratio (MRQ)"), (0, o.t)("Quick Ratio")],
                return_of_invested_capital_percent_ttm: [(0, o.t)("Return on Invested Capital % (TTM)"), (0, o.t)("ROI %")],
                return_on_assets: [(0, o.t)("Return on Assets (TTM)"), (0, o.t)("ROA")],
                return_on_equity: [(0, o.t)("Return on Equity (TTM)"), (0, o.t)("ROE")],
                return_on_invested_capital: [(0, o.t)("Return on Invested Capital (TTM)"), (0, o.t)("ROI %")],
                revenue_per_employee: [(0, o.t)("Revenue per Employee (TTM)"), (0, o.t)("Revenue per Employee")],
                sector: [(0, o.t)("Sector"), (0, o.t)("Sector")],
                submarket: [(0, o.t)("Submarket"), (0, o.t)("Submarket")],
                is_primary: [(0, o.t)("Primary Listing"), (0, o.t)("Primary Listing")],
                eps_surprise_fq: [(0, o.t)("Surprise"), (0, o.t)("Surprise")],
                eps_surprise_percent_fq: [(0, o.t)("Surprise %"), (0, o.t)("Surprise %")],
                total_assets: [(0, o.t)("Total Assets (MRQ)"), (0, o.t)("Assets")],
                total_capital: [(0, o.t)("Total Capital"), (0, o.t)("Capital")],
                total_current_assets: [(0, o.t)("Total Current Assets (MRQ)"), (0, o.t)("Current Assets")],
                total_debt: [(0, o.t)("Total Debt (MRQ)"), (0, o.t)("Debt")],
                total_revenue: [(0, o.t)("Total Revenue (FY)"), (0, o.t)("Revenue")],
                total_liabilities_fy: [(0, o.t)("Total Liabilities (FY)"), (0, o.t)("Liabilities (FY)")],
                total_liabilities_fq: [(0, o.t)("Total Liabilities (MRQ)"), (0, o.t)("Liabilities (MRQ)")],
                total_shares_outstanding_fundamental: [(0, o.t)("Total Shares Outstanding (MRQ)"), (0, o.t)("Shares")],
                volume: [(0, o.t)("Volume"), (0, o.t)("Vol")],
                relative_volume: [(0, o.t)("Relative Volume"), (0, o.t)("Relative Vol")],
                change_abs: [(0, o.t)("Change"), (0, o.t)("Chg")],
                change: [(0, o.t)("Change %"), (0, o.t)("Chg %")],
                "change.1": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("1m")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("1m")
                })],
                "change_abs.1": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("1m")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("1m")
                })],
                "change.5": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("5m")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("5m")
                })],
                "change_abs.5": [(0,
                    o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("5m")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("5m")
                })],
                "change.15": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("15m")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("15m")
                })],
                "change_abs.15": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("15m")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("15m")
                })],
                "change.60": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("1h")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("1h")
                })],
                "change_abs.60": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("1h")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("1h")
                })],
                "change.240": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("4h")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("4h")
                })],
                "change_abs.240": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("4h")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("4h")
                })],
                "change.1W": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("1W")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("1W")
                })],
                "change_abs.1W": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("1W")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("1W")
                })],
                "change.1M": [(0, o.t)("Change {resolution}, %").format({
                    resolution: (0, o.t)("1M")
                }), (0, o.t)("{resolution} CHG %").format({
                    resolution: (0, o.t)("1M")
                })],
                "change_abs.1M": [(0, o.t)("Change {resolution}").format({
                    resolution: (0, o.t)("1M")
                }), (0, o.t)("{resolution} CHG").format({
                    resolution: (0, o.t)("1M")
                })],
                pre_change: [(0, o.t)("Pre-market Change %"), (0, o.t)("Pre-market chg %")],
                post_change: [(0, o.t)("Post-market Change %"), (0, o.t)("Post-market chg %")],
                bid: [(0, o.t)("Bid"), (0, o.t)("Bid")],
                ask: [(0, o.t)("Ask"), (0, o.t)("Ask")],
                close: [(0, o.t)("Close"), (0, o.t)("Close")],
                open: [(0, o.t)("Open"), (0, o.t)("Open")],
                high: [(0, o.t)("High"), (0, o.t)("High")],
                low: [(0, o.t)("Low"), (0, o.t)("Low")],
                gap: [(0, o.t)("Gap %"), (0, o.t)("Gap %")],
                price_earnings_to_growth_ttm: [(0, o.t)("Price/Earnings/Growth (TTM)"), (0, o.t)("PEG")],
                price_sales: [(0, o.t)("Price/Sales"), (0, o.t)("Price/Sales")],
                price_book_fq: [(0, o.t)("Price to Book (MRQ)"), (0, o.t)("P/B (MRQ)")],
                price_free_cash_flow_ttm: [(0, o.t)("Price to Free Cash Flow (TTM)"), (0, o.t)("Price/Free Cash Flow")],
                float_shares_outstanding: [(0, o.t)("Shares Float"), (0, o.t)("Float")],
                free_cash_flow: [(0, o.t)("Free Cash Flow (TTM)"), (0, o.t)("Free Cash Flow")],
                total_shares_outstanding: [(0, o.t)("Shares Outstanding"), (0, o.t)("Shares Outstanding")],
                total_shares_diluted: [(0, o.t)("Total Coins"), (0, o.t)("Total Coins")],
                total_value_traded: [(0, o.t)("Traded Volume"), (0, o.t)("Traded Vol")],
                change_from_open: [(0, o.t)("Change from Open %"), (0, o.t)("Chg from Open %")],
                change_from_open_abs: [(0, o.t)("Change from Open"), (0, o.t)("Chg from Open")],
                "Perf.W": [(0, o.t)("Weekly Performance"), (0, o.t)("Weekly Perf")],
                "Perf.1M": [(0, o.t)("Monthly Performance"), (0, o.t)("Monthly Perf")],
                "Perf.3M": [(0, o.t)("3-Month Performance"), (0, o.t)("3-Month Perf")],
                "Perf.6M": [(0,
                    o.t)("6-Month Performance"), (0, o.t)("6-Month Perf")],
                "Perf.Y": [(0, o.t)("Yearly Performance"), (0, o.t)("Yearly Perf")],
                "Perf.YTD": [(0, o.t)("YTD Performance"), (0, o.t)("YTD Perf")],
                "Volatility.W": [(0, o.t)("Volatility Week"), (0, o.t)("Volatility W")],
                "Volatility.M": [(0, o.t)("Volatility Month"), (0, o.t)("Volatility M")],
                "Volatility.D": [(0, o.t)("Volatility"), (0, o.t)("Volatility")],
                RSI: [(0, o.t)("Relative Strength Index (14)"), (0, o.t)("RSI14")],
                RSI7: [(0, o.t)("Relative Strength Index (7)"), (0, o.t)("RSI7")],
                ADX: [(0, o.t)("Average Directional Index (14)"), (0, o.t)("ADX")],
                "ADX+DI": [(0, o.t)("Positive Directional Indicator (14)"), (0, o.t)("+DI", {
                    context: "Positive_Directional_Indicator_short_title"
                })],
                "ADX-DI": [(0, o.t)("Negative Directional Indicator (14)"), (0, o.t)("-DI", {
                    context: "Negative_Directional_Indicator_short_title"
                })],
                ATR: [(0, o.t)("Average True Range (14)"), (0, o.t)("ATR")],
                Mom: [(0, o.t)("Momentum (10)"), (0, o.t)("MOM")],
                "High.All": [(0, o.t)("All Time High"), (0, o.t)("All Time High")],
                "Low.All": [(0, o.t)("All Time Low"), (0, o.t)("All Time Low")],
                "High.6M": [(0, o.t)("6-Month High"), (0, o.t)("6-Month High")],
                "Low.6M": [(0, o.t)("6-Month Low"), (0, o.t)("6-Month Low")],
                "High.3M": [(0, o.t)("3-Month High"), (0, o.t)("3-Month High")],
                "Low.3M": [(0, o.t)("3-Month Low"), (0, o.t)("3-Month Low")],
                "High.1M": [(0, o.t)("1-Month High"), (0, o.t)("1-Month High")],
                "Low.1M": [(0, o.t)("1-Month Low"), (0, o.t)("1-Month Low")],
                EMA5: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "5"
                }), (0, o.t)("EMA5")],
                EMA10: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "10"
                }), (0, o.t)("EMA10")],
                EMA20: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "20"
                }), (0, o.t)("EMA20")],
                EMA30: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "30"
                }), (0, o.t)("EMA30")],
                EMA50: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "50"
                }), (0, o.t)("EMA50")],
                EMA100: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "100"
                }), (0, o.t)("EMA100")],
                EMA200: [(0, o.t)("Exponential Moving Average ({number})").format({
                    number: "200"
                }), (0, o.t)("EMA200")],
                SMA5: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "5"
                }), (0, o.t)("SMA5")],
                SMA10: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "10"
                }), (0, o.t)("SMA10")],
                SMA20: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "20"
                }), (0, o.t)("SMA20")],
                SMA30: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "30"
                }), (0, o.t)("SMA30")],
                SMA50: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "50"
                }), (0, o.t)("SMA50")],
                SMA100: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "100"
                }), (0, o.t)("SMA100")],
                SMA200: [(0, o.t)("Simple Moving Average ({number})").format({
                    number: "200"
                }), (0, o.t)("SMA200")],
                "Stoch.K": [(0, o.t)("Stochastic %K (14, 3, 3)"), (0, o.t)("Stoch %K")],
                "Stoch.D": [(0, o.t)("Stochastic %D (14, 3, 3)"), (0, o.t)("Stoch %D")],
                "MACD.macd": [(0, o.t)("MACD Level (12, 26)"), (0, o.t)("MACD Level")],
                "MACD.signal": [(0, o.t)("MACD Signal (12, 26)"), (0, o.t)("MACD Signal")],
                "Aroon.Up": [(0, o.t)("Aroon Up (14)"), (0, o.t)("Aroon Up")],
                "Aroon.Down": [(0,
                    o.t)("Aroon Down (14)"), (0, o.t)("Aroon Down")],
                "BB.upper": [(0, o.t)("Bollinger Upper Band (20)"), (0, o.t)("BB Up")],
                "BB.lower": [(0, o.t)("Bollinger Lower Band (20)"), (0, o.t)("BB Low")],
                goodwill: [(0, o.t)("Goodwill"), (0, o.t)("Goodwill")],
                debt_to_equity_fq: [(0, o.t)("Debt/Equity, MRQ"), (0, o.t)("Debt/Eq")],
                CCI20: [(0, o.t)("Commodity Channel Index (20)"), (0, o.t)("CCI20")],
                "DonchCh20.Upper": [(0, o.t)("Donchian Channels Upper Band (20)"), (0, o.t)("DonchCh20 Up")],
                "DonchCh20.Lower": [(0, o.t)("Donchian Channels Lower Band (20)"), (0, o.t)("DonchCh20 Low")],
                HullMA9: [(0, o.t)("Hull Moving Average (9)"), (0, o.t)("HullMA9")],
                AO: [(0, o.t)("Awesome Oscillator"), (0, o.t)("AO")],
                "Pivot.M.Classic.S3": [(0, o.t)("Pivot Classic S3"), (0, o.t)("S3")],
                "Pivot.M.Classic.S2": [(0, o.t)("Pivot Classic S2"), (0, o.t)("S2")],
                "Pivot.M.Classic.S1": [(0, o.t)("Pivot Classic S1"), (0, o.t)("S1")],
                "Pivot.M.Classic.Middle": [(0, o.t)("Pivot Classic P"), (0, o.t)("P")],
                "Pivot.M.Classic.R1": [(0, o.t)("Pivot Classic R1"), (0, o.t)("R1")],
                "Pivot.M.Classic.R2": [(0, o.t)("Pivot Classic R2"), (0, o.t)("R2")],
                "Pivot.M.Classic.R3": [(0, o.t)("Pivot Classic R3"), (0, o.t)("R3")],
                "Pivot.M.Fibonacci.S3": [(0, o.t)("Pivot Fibonacci S3"), (0, o.t)("S3")],
                "Pivot.M.Fibonacci.S2": [(0, o.t)("Pivot Fibonacci S2"), (0, o.t)("S2")],
                "Pivot.M.Fibonacci.S1": [(0, o.t)("Pivot Fibonacci S1"), (0, o.t)("S1")],
                "Pivot.M.Fibonacci.Middle": [(0, o.t)("Pivot Fibonacci P"), (0, o.t)("P")],
                "Pivot.M.Fibonacci.R1": [(0, o.t)("Pivot Fibonacci R1"), (0, o.t)("R1")],
                "Pivot.M.Fibonacci.R2": [(0, o.t)("Pivot Fibonacci R2"), (0, o.t)("R2")],
                "Pivot.M.Fibonacci.R3": [(0, o.t)("Pivot Fibonacci R3"), (0, o.t)("R3")],
                "Pivot.M.Camarilla.S3": [(0, o.t)("Pivot Camarilla S3"), (0, o.t)("S3")],
                "Pivot.M.Camarilla.S2": [(0, o.t)("Pivot Camarilla S2"), (0, o.t)("S2")],
                "Pivot.M.Camarilla.S1": [(0, o.t)("Pivot Camarilla S1"), (0, o.t)("S1")],
                "Pivot.M.Camarilla.Middle": [(0, o.t)("Pivot Camarilla P"), (0, o.t)("P")],
                "Pivot.M.Camarilla.R1": [(0, o.t)("Pivot Camarilla R1"), (0, o.t)("R1")],
                "Pivot.M.Camarilla.R2": [(0, o.t)("Pivot Camarilla R2"), (0, o.t)("R2")],
                "Pivot.M.Camarilla.R3": [(0, o.t)("Pivot Camarilla R3"), (0, o.t)("R3")],
                "Pivot.M.Woodie.S3": [(0, o.t)("Pivot Woodie S3"), (0, o.t)("S3")],
                "Pivot.M.Woodie.S2": [(0, o.t)("Pivot Woodie S2"), (0, o.t)("S2")],
                "Pivot.M.Woodie.S1": [(0, o.t)("Pivot Woodie S1"), (0, o.t)("S1")],
                "Pivot.M.Woodie.Middle": [(0, o.t)("Pivot Woodie P"), (0, o.t)("P")],
                "Pivot.M.Woodie.R1": [(0, o.t)("Pivot Woodie R1"), (0, o.t)("R1")],
                "Pivot.M.Woodie.R2": [(0, o.t)("Pivot Woodie R2"), (0, o.t)("R2")],
                "Pivot.M.Woodie.R3": [(0, o.t)("Pivot Woodie R3"), (0, o.t)("R3")],
                "Pivot.M.Demark.S1": [(0, o.t)("Pivot DM S1"), (0, o.t)("S1")],
                "Pivot.M.Demark.Middle": [(0, o.t)("Pivot DM P"), (0, o.t)("P")],
                "Pivot.M.Demark.R1": [(0, o.t)("Pivot DM R1"), (0, o.t)("R1")],
                "KltChnl.upper": [(0, o.t)("Keltner Channels Upper Band (20)"), (0, o.t)("KltCh20 Up")],
                "KltChnl.lower": [(0, o.t)("Keltner Channels Lower Band (20)"), (0, o.t)("KltCh20 Low")],
                "P.SAR": [(0, o.t)("Parabolic SAR"), (0, o.t)("SAR")],
                "Value.Traded": [(0, o.t)("Volume*Price"), (0, o.t)("Volume*Price")],
                MoneyFlow: [(0, o.t)("Money Flow (14)"), (0, o.t)("MFI", {
                    context: "Money_Flow_short_title"
                })],
                ChaikinMoneyFlow: [(0, o.t)("Chaikin Money Flow (20)"), (0, o.t)("CMF", {
                    context: "Chaikin_Money_Flow_short_title"
                })],
                "Recommend.All": [(0, o.t)("Technical Rating"), (0, o.t)("Technical Rating")],
                "Recommend.MA": [(0, o.t)("Moving Averages Rating"), (0, o.t)("Moving Averages Rating")],
                "Recommend.Other": [(0, o.t)("Oscillators Rating"), (0, o.t)("Oscillators Rating")],
                "Stoch.RSI.K": [(0, o.t)("Stochastic RSI Fast (3, 3, 14, 14)"), (0, o.t)("Stoch RSI Fast")],
                "Stoch.RSI.D": [(0, o.t)("Stochastic RSI Slow (3, 3, 14, 14)"), (0, o.t)("Stoch RSI Slow")],
                "W.R": [(0, o.t)("Williams Percent Range (14)"), (0, o.t)("%R")],
                ROC: [(0, o.t)("Rate Of Change (9)"), (0, o.t)("ROC")],
                BBPower: [(0, o.t)("Bull Bear Power"), (0, o.t)("BBPower")],
                UO: [(0, o.t)("Ultimate Oscillator (7, 14, 28)"), (0, o.t)("UO")],
                "Ichimoku.CLine": [(0, o.t)("Ichimoku Conversion Line (9, 26, 52, 26)"), (0, o.t)("Ichimoku Conversion")],
                "Ichimoku.BLine": [(0, o.t)("Ichimoku Base Line (9, 26, 52, 26)"), (0, o.t)("Ichimoku Base")],
                "Ichimoku.Lead1": [(0, o.t)("Ichimoku Leading Span A (9, 26, 52, 26)"), (0, o.t)("Ichimoku Leading Span A")],
                "Ichimoku.Lead2": [(0, o.t)("Ichimoku Leading Span B (9, 26, 52, 26)"), (0, o.t)("Ichimoku Leading Span B")],
                VWAP: [(0, o.t)("Volume Weighted Average Price"), (0, o.t)("VWAP")],
                VWMA: [(0, o.t)("Volume Weighted Moving Average (20)"), (0, o.t)("VWMA")],
                ADR: [(0, o.t)("Average Day Range (14)"), (0, o.t)("ADR")]
            }
        },
        44740: (e, t, r) => {
            "use strict";
            r.d(t, {
                SidebarCustomScroll: () => h
            });
            var o = r(95355),
                n = r(96276),
                i = r.n(n),
                s = r(91496),
                a = r(68450),
                l = r(64011);
            const c = [() => navigator.userAgent.includes("Win") && navigator.userAgent.includes("Chrome") ? 1 / window.devicePixelRatio : 1, () => 16, (e = (() => 0)) => {
                var t;
                return .8 * (null !== (t = e()) && void 0 !== t ? t : 0)
            }];
            r(10090);
            var u = r(66517);
            const d = {
                headerHeight: 0,
                additionalClass: "",
                alwaysVisible: !1,
                showBottomShadow: !0,
                scrollMarginTop: 1,
                bubbleScrollEvent: !1
            };
            class h {
                constructor(e, t, r = {}) {
                    if (this.scrolled = new(i()), this.scrolltoend = new(i()), this.scrolltostart = new(i()), this.visibilityCallbacks = [], this._scrollTargetTop = 0, this._scrollSpeed = 40, this._shadowOffset = 10, this._shadowTop = null, this._shadowBottom = null, this._bottomFixed = !1, this._dragInitialized = !1, this._dragging = !1, this._draggable = null, this._atStart = !1, this._atEnd = !1, this._stickyBottom = null, this._tempIntervalID = void 0, this._animation = null, this._saved = null, this._options = { ...d,
                            ...r
                        }, this._wrapper = e, this._wrapper.classList.add(u.wrapper), this._content = t, this._headerHeight = this._options.headerHeight, this._scrollMarginTop = this._options.scrollMarginTop, this._scrollBar = document.createElement("div"), this._scrollBar.classList.add("sb-scrollbar", "sb-scrollbar-body"), this._options.additionalClass && this._scrollBar.classList.add(this._options.additionalClass), this._scrollBar.classList.toggle("active-always", this._options.alwaysVisible), this._scrollBarWrapper = document.createElement("div"), this._scrollBarWrapper.classList.add("sb-scrollbar-wrap"), this._touch = o.touch, this._touch) return this._content.style.position = "relative", this._wrapper.classList.add(u.touch),
                        void this._wrapper.addEventListener("scroll", () => this._onScroll());
                    this._wrapper.style.overflow = "hidden", this._unsubscribe = (() => {
                        const e = () => {
                                this._bottomFixed || this._dragging || (this._options.alwaysVisible || this._scrollBar.classList.add("active"), this._onScroll())
                            },
                            t = () => {
                                this._bottomFixed || this._dragging || (this._options.alwaysVisible || this._scrollBar.classList.remove("active"), this._onScroll())
                            },
                            r = e => {
                                if (!e.defaultPrevented) {
                                    const t = function(e, t = (() => ({}))) {
                                        return {
                                            x: e.deltaX * c[e.deltaMode](() => t().width),
                                            y: e.deltaY * c[e.deltaMode](() => t().height)
                                        }
                                    }(e, () => ({
                                        height: this._wrapper.clientHeight
                                    })).y;
                                    this.scroll(-t, 1) || (e.stopPropagation(), e.preventDefault())
                                }
                            };
                        return this._wrapper.addEventListener("mouseenter", e), this._wrapper.addEventListener("mouseleave", t), this._wrapper.addEventListener("wheel", r), () => {
                            this._wrapper.removeEventListener("mouseenter", e), this._wrapper.removeEventListener("mouseleave", t), this._wrapper.removeEventListener("wheel", r)
                        }
                    })(), !1 !== this._options.showTopShadow && (this._shadowTop = document.createElement("div"), this._shadowTop.classList.add("sb-inner-shadow", "top", "i-invisible"), this._wrapper.appendChild(this._shadowTop)), !1 !== this._options.showBottomShadow && (this._shadowBottom = document.createElement("div"), this._shadowBottom.classList.add("sb-inner-shadow"), this._wrapper.appendChild(this._shadowBottom)), this._shadowTop && this._headerHeight && (this._shadowTop.style.top = this._headerHeight - this._shadowOffset + "px"), this._wrapper.appendChild(this._scrollBarWrapper), this._scrollBarWrapper.appendChild(this._scrollBar), this._onScroll()
                }
                isTouch() {
                    return this._touch
                }
                getScrollBar() {
                    return this._scrollBar
                }
                initDraggable() {
                    return this._dragInitialized || (this._draggable = new l.Draggable({
                        axis: "y",
                        source: this._scrollBar,
                        containment: this._scrollBarWrapper,
                        start: () => {
                            this._dragging = !0
                        },
                        stop: () => {
                            this._dragging = !1
                        },
                        drag: () => {
                            this.updateScroll()
                        }
                    }), this._dragInitialized = !0), this
                }
                updateScroll() {
                    if (this._touch) return this;
                    const e = Math.ceil((0, s.position)(this._scrollBar).top - this._scrollMarginTop - this._headerHeight),
                        t = this.getContainerHeightWithoutHeader(),
                        r = (0, s.outerHeight)(this._content),
                        o = r - t - 1;
                    return t <= 0 || (this._scrollTargetTop = o <= 0 ? this._headerHeight : Math.min(-e * r / t + this._headerHeight, this._headerHeight), e + (0, s.contentHeight)(this._scrollBar) + 2 >= t ? this.scrollToEnd() : (this._content.style.top = this._scrollTargetTop + "px", this._onScroll())), this
                }
                getContainerHeightWithoutHeader() {
                    return this._wrapper.getBoundingClientRect().height - this._headerHeight
                }
                getContainerHeight() {
                    return this._wrapper.getBoundingClientRect().height
                }
                getContentHeight() {
                    return this._content.getBoundingClientRect().height
                }
                updateScrollBar() {
                    if (this._touch) return this;
                    const e = (0, s.position)(this._content).top,
                        t = this.getContentHeight(),
                        r = this.getContainerHeight(),
                        o = this.getContainerHeightWithoutHeader(),
                        n = 1 + this._headerHeight,
                        i = o - 2,
                        a = (Math.abs(e) - this._headerHeight) * i / t,
                        l = r * r / t;
                    return this.isContentShort() ? (this._scrollBar.classList.add("js-hidden"), this._wrapper.classList.remove("sb-scroll-active")) : (this._scrollBar.classList.remove("js-hidden"),
                        this._scrollBar.style.height = l + "px", this._scrollBar.style.top = n + a + "px", this._wrapper.classList.add("sb-scroll-active"), this.initDraggable()), this
                }
                scroll(e, t) {
                    const r = (0, s.position)(this._content).top,
                        o = (0, s.outerHeight)(this._content) - this.getContainerHeightWithoutHeader() - 1,
                        n = t || this._scrollSpeed;
                    return o <= 0 || (this._scrollTargetTop = Math.max(-o + this._headerHeight, Math.min(this._headerHeight, r + e * n)), this.setContentTop(this._scrollTargetTop), this._onScroll())
                }
                animateTo(e) {
                    if (this._touch) return this;
                    const t = (0, s.outerHeight)(this._content) - this.getContainerHeightWithoutHeader() - 1;
                    if (t <= 0) return !0;
                    this._scrollTargetTop = Math.max(-t + this._headerHeight, Math.min(this._headerHeight, -e)), this._animation && this._animation.stop(), this._animation = (0, a.doAnimate)({
                        duration: 500,
                        from: parseFloat(getComputedStyle(this._content).top),
                        to: this._scrollTargetTop,
                        onStep: (e, t) => {
                            this._content.style.top = t + "px"
                        },
                        onComplete: () => {
                            this._onScroll()
                        }
                    })
                }
                resize() {
                    if (this._bottomFixed) return;
                    const e = (0, s.outerHeight)(this._content),
                        t = (0, s.outerHeight)(this._wrapper);
                    !this._options.vAlignBottom && e < t ? this.atStart() || this.scrollToStart() : this.atEnd() ? this.scrollToEnd() : "number" == typeof this._stickyBottom && this.setContentTop(Math.min(0, this._stickyBottom + (0, s.outerHeight)(this._wrapper) - (0, s.outerHeight)(this._content)))
                }
                resizeHeader(e) {
                    const t = e - this._headerHeight;
                    this._headerHeight = e, this._scrollTargetTop += t, this._shadowTop && (this._shadowTop.style.top = this._headerHeight - this._shadowOffset + "px"), this.resize()
                }
                scrollTo(e, t) {
                    const r = {
                        position: "visible",
                        areaHeight: e instanceof HTMLElement ? (0, s.contentHeight)(e) : 0,
                        ...t
                    };
                    e instanceof HTMLElement && (e = r.offsetTop || (0, s.position)(e).top);
                    const o = (0, s.position)(this._content).top,
                        n = this._content.getBoundingClientRect().height,
                        i = this.getContainerHeightWithoutHeader();
                    if (n - i - 1 <= 0) return !0;
                    const a = -1 * (o - this._headerHeight),
                        l = a + i;
                    let c = 0;
                    if ("visible" === r.position) {
                        if (e > a && e + r.areaHeight < l) return !1;
                        c = e + r.areaHeight > l ? l - e - r.areaHeight : a - e
                    } else "top" === r.position && (c = a - e);
                    return this.scroll(c, 1), this._onScroll(), !1
                }
                scrollToEnd() {
                    const e = (0, s.position)(this._content).top,
                        t = (0, s.outerHeight)(this._content),
                        r = (0, s.outerHeight)(this._wrapper),
                        o = t > r ? e + (r - (t + e)) + 1 : 1;
                    return this.setContentTop(o), this._onScroll(), this
                }
                scrollToStart() {
                    return this.setContentTop(this._headerHeight), this._onScroll(), this
                }
                currentPosition() {
                    return Math.round((0, s.position)(this._content).top)
                }
                atStart() {
                    return Math.round((0, s.position)(this._content).top) >= this._headerHeight
                }
                atEnd(e) {
                    "number" == typeof e && isFinite(e) || (e = 0);
                    const t = Math.round((0, s.position)(this._content).top),
                        r = Math.round((0, s.outerHeight)(this._content)),
                        o = Math.round((0, s.outerHeight)(this._wrapper));
                    return r - Math.abs(t) - 1 <= o + e
                }
                checkContentVisibility() {
                    this._onContentVisible()
                }
                subscribeToContentVisible(e, t, r) {
                    this.visibilityCallbacks.push({
                        id: e,
                        element: t,
                        callback: r
                    })
                }
                triggerVisibilityCallbacks(e) {
                    this._onContentVisible(e)
                }
                save() {
                    return this._saved = {
                        top: (0, s.position)(this._content).top,
                        height: (0, s.outerHeight)(this._content)
                    }, this
                }
                restore() {
                    if (this._saved) {
                        if (this._saved.top === (0,
                                s.position)(this._content).top && this._saved.height === (0, s.outerHeight)(this._content)) return this._saved = null, this;
                        this._options.vAlignBottom && (this._saved.top -= (0, s.outerHeight)(this._content) - this._saved.height, this._saved.top > this._headerHeight && (this._saved.top = this._headerHeight)), this.setContentTop(this._saved.top), this._saved = null, this._onScroll(!0)
                    }
                    return this
                }
                fixBottom() {
                    if (this._bottomFixed) return this;
                    if (this._touch) {
                        const e = (0, s.outerHeight)(this._content),
                            t = this._wrapper.scrollTop;
                        this._tempIntervalID = setInterval(() => {
                            this._wrapper.scrollTop = t + ((0, s.outerHeight)(this._content) - e)
                        }, 0)
                    } else this._content.style.top = "auto", this._content.style.bottom = (0, s.outerHeight)(this._wrapper) - (0, s.position)(this._content).top - (0, s.outerHeight)(this._content) + "px";
                    return this._bottomFixed = !0, this
                }
                releaseBottom() {
                    return this._bottomFixed ? (this._touch ? clearInterval(this._tempIntervalID) : (this._content.style.bottom = "auto", this._content.style.top = (0, s.position)(this._content).top + "px"), this._bottomFixed = !1, this._onScroll(), this) : this
                }
                setContentTop(e) {
                    return this._touch ? this._options.vAlignBottom && (0, s.outerHeight)(this._content) < (0, s.outerHeight)(this._wrapper) ? (this._wrapper.style.overflowY = "visible", this._content.style.position = "absolute", this._content.style.bottom = "0px") : (this._content.style.position = "relative", this._content.style.position = "auto", this._wrapper.style.overflowY = "auto", this._wrapper.scrollTop = -e) : this._content.style.top = e + "px", this
                }
                isContentShort() {
                    return this.getContentHeight() <= this.getContainerHeightWithoutHeader()
                }
                destroy() {
                    var e;
                    this._animation && this._animation.stop(), this._scrollBarWrapper && this._scrollBarWrapper.remove(), this._shadowBottom && this._shadowBottom.remove(), this._shadowTop && this._shadowTop.remove(), this._draggable && (this._draggable.destroy(), this._draggable = null), this._content.style.cssText = "", this._wrapper.style.cssText = "", null === (e = this._unsubscribe) || void 0 === e || e.call(this)
                }
                _onScroll(e) {
                    this._touch || (this._content.style.bottom = "auto"), this.scrolled.fire(), this._dragging && !0 !== e || this.updateScrollBar();
                    const t = this.atStart(),
                        r = this.atEnd();
                    return this._shadowTop && this._shadowTop.classList.toggle("i-invisible", !!t), this._shadowBottom && this._shadowBottom.classList.toggle("i-invisible", !!r), this._onContentVisible(), !this._atStart && t ? (this._atStart = !0, this.scrolltostart.fire()) : this._atStart && !t && (this._atStart = !1), !this._atEnd && r ? (this._atEnd = !0, this.scrolltoend.fire()) : this._atEnd && !r && (this._atEnd = !1), this._options.vAlignBottom && (this._stickyBottom = (0, s.outerHeight)(this._content) - Math.abs((0, s.position)(this._content).top) - (0, s.outerHeight)(this._wrapper)), (this._atStart || this._atEnd) && ("function" == typeof this._options.bubbleScrollEvent ? Boolean(this._options.bubbleScrollEvent()) : Boolean(this._options.bubbleScrollEvent))
                }
                _contentIsVisible(e) {
                    return (0, s.position)(e.element).top > -1 * this.currentPosition()
                }
                _onContentVisible(e) {
                    if (!this.visibilityCallbacks.length) return;
                    const t = e || this._contentIsVisible.bind(this),
                        r = [],
                        o = this.visibilityCallbacks.filter((e, o) => {
                            if (!this._content.contains(e.element)) return !1;
                            const n = t(e);
                            return n && r.push(o), !n
                        });
                    r.forEach(t => {
                        this.visibilityCallbacks[t].callback(!!e)
                    }), this.visibilityCallbacks = o
                }
            }
        },
        5417: (e, t, r) => {
            "use strict";
            r.d(t, {
                japaneseChartStyles: () => i,
                commonChartStyles: () => s,
                allChartStyles: () => a
            });
            var o = r(98006),
                n = r(18277);

            function i() {
                const e = [8];
                return n.enabled("japanese_chart_styles") && (e.push(4, 7, 5, 6), e.push(11)), e
            }

            function s() {
                const e = [0, 1, 9, 2, 3, 10];
                return (0, o.isFeatureEnabled)("chart_style_hilo") && e.push(12), e
            }

            function a() {
                return s().concat(i())
            }
        },
        74026: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    ColorType: () => o
                }),
                function(e) {
                    e.Solid = "solid", e.Gradient = "gradient"
                }(o || (o = {}))
        },
        68981: (e, t, r) => {
            "use strict";
            var o = r(94209).PositionPLDisplay;
            const {
                getHexColorByName: n
            } = r(50214), {
                generateColor: i
            } = r(50946);
            var s = r(94209).TradingSourcesHorizontalAlignment,
                a = r(97786),
                l = r(53995).LineToolPitchforkStyle,
                c = r(91491).LineToolBarsPatternMode,
                u = r(55782).LineStudyPlotStyle,
                d = r(84434),
                h = r(57086).PriceAxisLastValueMode,
                p = r(93441).StoriesTimeLineItemType,
                f = r(95215).MagnetMode,
                g = r(98815).LineEnd,
                m = r(74026).ColorType,
                _ = r(93828).StatsPosition,
                v = r(42461).sessionsPreferencesDefault,
                b = r(87380).getLogger("Chart.Defaults");
            const y = n("color-tv-blue-500"),
                w = n("color-tv-blue-600"),
                S = n("color-ripe-red-200"),
                C = n("color-ripe-red-300"),
                k = n("color-ripe-red-400"),
                E = n("color-ripe-red-500"),
                x = n("color-ripe-red-600"),
                T = n("color-minty-green-100"),
                A = n("color-minty-green-400"),
                M = n("color-minty-green-500"),
                L = n("color-tan-orange-500");
            var P = function(e) {
                var t = function(e, t) {
                        return {
                            color: e,
                            visible: t
                        }
                    },
                    r = function(e, t, r) {
                        return {
                            coeff: e,
                            color: t,
                            visible: r
                        }
                    },
                    n = function(e, t, r, o, n) {
                        return {
                            coeff: e,
                            color: t,
                            visible: r,
                            linestyle: void 0 === o ? CanvasEx.LINESTYLE_SOLID : o,
                            linewidth: void 0 === n ? 1 : n
                        }
                    },
                    b = function(e, t, r) {
                        return {
                            color: e,
                            width: r,
                            visible: t
                        }
                    },
                    P = function(e, t, r, o, n) {
                        return {
                            color: e,
                            visible: t,
                            width: r,
                            x: o,
                            y: n
                        }
                    },
                    F = function(e, t, r, o, n, i) {
                        return {
                            coeff1: e,
                            coeff2: t,
                            color: r,
                            visible: o,
                            linestyle: void 0 === n ? CanvasEx.LINESTYLE_SOLID : n,
                            linewidth: void 0 === i ? 1 : i
                        }
                    };
                if (void 0 === TradingView.defaultProperties) {
                    var O;
                    switch (window.locale) {
                        case "ar_AE":
                            O = "Asia/Dubai";
                            break;
                        case "au":
                            O = "Australia/Sydney";
                            break;
                        case "br":
                            O = "America/Sao_Paulo";
                            break;
                        case "ca":
                            O = "America/Toronto";
                            break;
                        case "de_DE":
                        case "it":
                            O = "Europe/Berlin";
                            break;
                        case "es":
                            O = "Europe/Madrid";
                            break;
                        case "fa_IR":
                            O = "Asia/Tehran";
                            break;
                        case "fr":
                        case "sv_SE":
                            O = "Europe/Paris";
                            break;
                        case "he_IL":
                        case "tr":
                            O = "Europe/Athens";
                            break;
                        case "hu_HU":
                        case "pl":
                            O = "Europe/Warsaw";
                            break;
                        case "id":
                        case "th_TH":
                        case "vi_VN":
                            O = "Asia/Bangkok";
                            break;
                        case "in":
                            O = "Asia/Kolkata";
                            break;
                        case "ja":
                        case "kr":
                            O = "Asia/Tokyo";
                            break;
                        case "ms_MY":
                            O = "Asia/Singapore";
                            break;
                        case "ru":
                            O = "Europe/Moscow";
                            break;
                        case "uk":
                            O = "Europe/London";
                            break;
                        case "zh_CN":
                        case "zh_TW":
                            O = "Asia/Shanghai";
                            break;
                        default:
                            O = "Etc/UTC"
                    }
                    TradingView.defaultProperties = {
                        chartproperties: {
                            timezone: O,
                            priceScaleSelectionStrategyName: "auto",
                            dataWindowProperties: {
                                background: "rgba( 255, 254, 206, 0.2)",
                                border: "rgba( 96, 96, 144, 1)",
                                font: "Verdana",
                                fontBold: !1,
                                fontItalic: !1,
                                fontSize: 10,
                                transparency: 80,
                                visible: !0
                            },
                            paneProperties: {
                                backgroundType: m.Solid,
                                background: "#ffffff",
                                backgroundGradientStartColor: "#ffffff",
                                backgroundGradientEndColor: "#ffffff",
                                vertGridProperties: {
                                    color: "rgba(42, 46, 57, 0.06)",
                                    style: CanvasEx.LINESTYLE_SOLID
                                },
                                horzGridProperties: {
                                    color: "rgba(42, 46, 57, 0.06)",
                                    style: CanvasEx.LINESTYLE_SOLID
                                },
                                crossHairProperties: {
                                    color: "#9598A1",
                                    style: CanvasEx.LINESTYLE_DASHED,
                                    transparency: 0,
                                    width: 1
                                },
                                topMargin: 10,
                                bottomMargin: 8,
                                axisProperties: {
                                    autoScale: !0,
                                    autoScaleDisabled: !1,
                                    lockScale: !1,
                                    percentage: !1,
                                    percentageDisabled: !1,
                                    indexedTo100: !1,
                                    log: !1,
                                    logDisabled: !1,
                                    alignLabels: !0,
                                    isInverted: !1
                                },
                                legendProperties: {
                                    showStudyArguments: !0,
                                    showStudyTitles: !0,
                                    showStudyValues: !0,
                                    showSeriesTitle: !0,
                                    showSeriesOHLC: !0,
                                    showLegend: !0,
                                    showBarChange: !0,
                                    showVolume: !1,
                                    showBackground: !0,
                                    backgroundTransparency: 50
                                }
                            },
                            scalesProperties: {
                                backgroundColor: "#ffffff",
                                lineColor: "rgba(42, 46, 57, 0.14)",
                                textColor: "#131722",
                                fontSize: 12,
                                scaleSeriesOnly: !1,
                                showSeriesLastValue: !0,
                                seriesLastValueMode: h.LastValueAccordingToScale,
                                showSeriesPrevCloseValue: !1,
                                showStudyLastValue: !0,
                                showSymbolLabels: !1,
                                showStudyPlotLabels: !1,
                                showBidAskLabels: !1,
                                showPrePostMarketPriceLabel: !0,
                                showFundamentalNameLabel: !1,
                                showFundamentalLastValue: !0,
                                barSpacing: d.DEFAULT_BAR_SPACING,
                                showCurrency: !0,
                                showUnit: !0
                            },
                            mainSeriesProperties: {
                                style: a.STYLE_CANDLES,
                                esdShowDividends: !0,
                                esdShowSplits: !0,
                                esdShowEarnings: !0,
                                esdShowBreaks: !1,
                                esdFlagSize: 2,
                                showCountdown: !0,
                                bidAsk: {
                                    visible: !1,
                                    lineStyle: CanvasEx.LINESTYLE_DOTTED,
                                    lineWidth: 1,
                                    bidLineColor: y,
                                    askLineColor: k
                                },
                                prePostMarket: {
                                    visible: !0,
                                    lineStyle: CanvasEx.LINESTYLE_DOTTED,
                                    lineWidth: 1,
                                    preMarketColor: "#fb8c00",
                                    postMarketColor: y
                                },
                                highLowAvgPrice: {
                                    highLowPriceLinesVisible: !1,
                                    highLowPriceLabelsVisible: !1,
                                    averageClosePriceLineVisible: !1,
                                    averageClosePriceLabelVisible: !1
                                },
                                showInDataWindow: !0,
                                visible: !0,
                                showPriceLine: !0,
                                priceLineWidth: 1,
                                priceLineColor: "",
                                baseLineColor: "#B2B5BE",
                                showPrevClosePriceLine: !1,
                                prevClosePriceLineWidth: 1,
                                prevClosePriceLineColor: "rgba( 85, 85, 85, 1)",
                                minTick: "default",
                                dividendsAdjustment: !1,
                                backAdjustment: !1,
                                settlementAsClose: !0,
                                sessionId: "regular",
                                sessVis: !1,
                                statusViewStyle: {
                                    fontSize: 16,
                                    showExchange: !0,
                                    showInterval: !0,
                                    symbolTextSource: "description"
                                },
                                candleStyle: {
                                    upColor: A,
                                    downColor: k,
                                    drawWick: !0,
                                    drawBorder: !0,
                                    borderColor: "#378658",
                                    borderUpColor: A,
                                    borderDownColor: k,
                                    wickColor: "#737375",
                                    wickUpColor: A,
                                    wickDownColor: k,
                                    barColorsOnPrevClose: !1,
                                    drawBody: !0
                                },
                                hollowCandleStyle: {
                                    upColor: A,
                                    downColor: k,
                                    drawWick: !0,
                                    drawBorder: !0,
                                    borderColor: "rgba( 55, 134, 88, 1)",
                                    borderUpColor: A,
                                    borderDownColor: k,
                                    wickColor: "rgba( 115, 115, 117, 1)",
                                    wickUpColor: A,
                                    wickDownColor: k,
                                    drawBody: !0
                                },
                                haStyle: {
                                    upColor: A,
                                    downColor: k,
                                    drawWick: !0,
                                    drawBorder: !0,
                                    borderColor: "rgba( 55, 134, 88, 1)",
                                    borderUpColor: A,
                                    borderDownColor: k,
                                    wickColor: "rgba( 115, 115, 117, 1)",
                                    wickUpColor: A,
                                    wickDownColor: k,
                                    showRealLastPrice: !1,
                                    barColorsOnPrevClose: !1,
                                    inputs: {},
                                    inputInfo: {},
                                    drawBody: !0
                                },
                                barStyle: {
                                    upColor: A,
                                    downColor: k,
                                    barColorsOnPrevClose: !1,
                                    dontDrawOpen: !1,
                                    thinBars: !0
                                },
                                hiloStyle: {
                                    color: y,
                                    showBorders: !0,
                                    borderColor: y,
                                    showLabels: !0,
                                    labelColor: y,
                                    fontSize: 7,
                                    drawBody: !0
                                },
                                lineStyle: {
                                    color: y,
                                    linestyle: CanvasEx.LINESTYLE_SOLID,
                                    linewidth: 2,
                                    priceSource: "close",
                                    styleType: a.STYLE_LINE_TYPE_SIMPLE
                                },
                                areaStyle: {
                                    color1: i(y, 72),
                                    color2: y,
                                    linecolor: y,
                                    linestyle: CanvasEx.LINESTYLE_SOLID,
                                    linewidth: 2,
                                    priceSource: "close",
                                    transparency: 100
                                },
                                priceAxisProperties: {
                                    autoScale: !0,
                                    autoScaleDisabled: !1,
                                    lockScale: !1,
                                    percentage: !1,
                                    percentageDisabled: !1,
                                    indexedTo100: !1,
                                    log: !1,
                                    logDisabled: !1,
                                    isInverted: !1,
                                    alignLabels: !0
                                },
                                renkoStyle: {
                                    upColor: A,
                                    downColor: k,
                                    borderUpColor: A,
                                    borderDownColor: k,
                                    upColorProjection: "rgba( 169, 220, 195, 1)",
                                    downColorProjection: "rgba( 245, 166, 174, 1)",
                                    borderUpColorProjection: "rgba( 169, 220, 195, 1)",
                                    borderDownColorProjection: "rgba( 245, 166, 174, 1)",
                                    wickUpColor: A,
                                    wickDownColor: k,
                                    inputs: {
                                        source: "close",
                                        sources: "Close",
                                        boxSize: 3,
                                        style: "ATR",
                                        atrLength: 14,
                                        wicks: !0
                                    },
                                    inputInfo: {
                                        source: {
                                            name: "Source"
                                        },
                                        sources: {
                                            name: "Source"
                                        },
                                        boxSize: {
                                            name: "Box size"
                                        },
                                        style: {
                                            name: "Style"
                                        },
                                        atrLength: {
                                            name: "ATR length"
                                        },
                                        wicks: {
                                            name: "Wicks"
                                        }
                                    }
                                },
                                pbStyle: {
                                    upColor: A,
                                    downColor: k,
                                    borderUpColor: A,
                                    borderDownColor: k,
                                    upColorProjection: "rgba( 169, 220, 195, 1)",
                                    downColorProjection: "rgba( 245, 166, 174, 1)",
                                    borderUpColorProjection: "rgba( 169, 220, 195, 1)",
                                    borderDownColorProjection: "rgba( 245, 166, 174, 1)",
                                    inputs: {
                                        source: "close",
                                        lb: 3
                                    },
                                    inputInfo: {
                                        source: {
                                            name: "Source"
                                        },
                                        lb: {
                                            name: "Number of line"
                                        }
                                    }
                                },
                                kagiStyle: {
                                    upColor: A,
                                    downColor: k,
                                    upColorProjection: "rgba( 169, 220, 195, 1)",
                                    downColorProjection: "rgba( 245, 166, 174, 1)",
                                    inputs: {
                                        source: "close",
                                        style: "ATR",
                                        atrLength: 14,
                                        reversalAmount: 1
                                    },
                                    inputInfo: {
                                        source: {
                                            name: "Source"
                                        },
                                        style: {
                                            name: "Style"
                                        },
                                        atrLength: {
                                            name: "ATR length"
                                        },
                                        reversalAmount: {
                                            name: "Reversal amount"
                                        }
                                    }
                                },
                                pnfStyle: {
                                    upColor: A,
                                    downColor: k,
                                    upColorProjection: "rgba( 169, 220, 195, 1)",
                                    downColorProjection: "rgba( 245, 166, 174, 1)",
                                    inputs: {
                                        sources: "Close",
                                        reversalAmount: 3,
                                        boxSize: 1,
                                        style: "ATR",
                                        atrLength: 14,
                                        oneStepBackBuilding: !1
                                    },
                                    inputInfo: {
                                        sources: {
                                            name: "Source"
                                        },
                                        boxSize: {
                                            name: "Box size"
                                        },
                                        reversalAmount: {
                                            name: "Reversal amount"
                                        },
                                        style: {
                                            name: "Style"
                                        },
                                        atrLength: {
                                            name: "ATR length"
                                        },
                                        oneStepBackBuilding: {
                                            name: "One step back building"
                                        }
                                    }
                                },
                                baselineStyle: {
                                    baselineColor: "rgba( 117, 134, 150, 1)",
                                    topFillColor1: i(A, 72),
                                    topFillColor2: i(A, 95),
                                    bottomFillColor1: i(k, 95),
                                    bottomFillColor2: i(k, 72),
                                    topLineColor: A,
                                    bottomLineColor: k,
                                    topLineWidth: 2,
                                    bottomLineWidth: 2,
                                    priceSource: "close",
                                    transparency: 50,
                                    baseLevelPercentage: 50
                                },
                                rangeStyle: {
                                    upColor: A,
                                    downColor: k,
                                    thinBars: !0,
                                    upColorProjection: "rgba( 169, 220, 195, 1)",
                                    downColorProjection: "rgba( 245, 166, 174, 1)",
                                    inputs: {
                                        range: 10,
                                        phantomBars: !1
                                    },
                                    inputInfo: {
                                        range: {
                                            name: "Range"
                                        },
                                        phantomBars: {
                                            name: "Phantom bars"
                                        }
                                    }
                                }
                            },
                            chartEventsSourceProperties: {
                                visible: !0,
                                futureOnly: !0,
                                breaks: {
                                    color: "rgba(85, 85, 85, 1)",
                                    visible: !1,
                                    style: CanvasEx.LINESTYLE_DASHED,
                                    width: 1
                                }
                            },
                            tradingProperties: {
                                showPositions: !0,
                                positionPL: {
                                    visibility: !0,
                                    display: o.Money
                                },
                                showOrders: !0,
                                showExecutions: !0,
                                showReverse: !0,
                                horizontalAlignment: s.Right,
                                extendLeft: !0,
                                lineWidth: 1,
                                lineStyle: CanvasEx.LINESTYLE_SOLID
                            },
                            editorFontsList: ["Verdana", "Courier New", "Times New Roman", "Arial"],
                            volumePaneSize: "large"
                        },
                        sessions: v,
                        drawings: {
                            magnet: !1,
                            magnetMode: f.WeakMagnet,
                            stayInDrawingMode: !1,
                            drawOnAllCharts: !0
                        },
                        linetoolorder: {
                            extendLeft: "inherit",
                            lineLength: "inherit",
                            lineColor: "rgba( 255, 0, 0, 1)",
                            lineActiveBuyColor: "rgb(64,148,232)",
                            lineInactiveBuyColor: "rgba(64,148,232,.5)",
                            lineActiveSellColor: "rgb(231,86,86)",
                            lineInactiveSellColor: "rgba(231,86,86,.5)",
                            lineStyle: "inherit",
                            lineWidth: "inherit",
                            bodyBorderActiveBuyColor: "rgb(64,148,232)",
                            bodyBorderInactiveBuyColor: "rgba(64,148,232,.5)",
                            bodyBorderActiveSellColor: "rgb(231,86,86)",
                            bodyBorderInactiveSellColor: "rgba(231,86,86,.5)",
                            bodyBackgroundColor: "rgba( 255, 255, 255, 0.75)",
                            bodyBackgroundTransparency: 25,
                            bodyTextInactiveLimitColor: "rgba(38,140,2,.5)",
                            bodyTextActiveLimitColor: "rgb(38,140,2)",
                            bodyTextInactiveStopColor: "rgba(231,86,86,.5)",
                            bodyTextActiveStopColor: "rgb(231,86,86)",
                            bodyTextInactiveBuyColor: "rgba(64,148,232,.5)",
                            bodyTextActiveBuyColor: "rgb(64,148,232)",
                            bodyTextInactiveSellColor: "rgba(231,86,86,.5)",
                            bodyTextActiveSellColor: "rgb(231,86,86)",
                            bodyFontFamily: "Verdana",
                            bodyFontSize: 9,
                            bodyFontBold: !0,
                            bodyFontItalic: !1,
                            quantityBorderActiveBuyColor: "rgb(64,148,232)",
                            quantityBorderInactiveBuyColor: "rgba(64,148,232,.5)",
                            quantityBorderActiveSellColor: "rgb(231,86,86)",
                            quantityBorderInactiveSellColor: "rgba(231,86,86,.5)",
                            quantityBackgroundInactiveBuyColor: "rgba(64,148,232,.5)",
                            quantityBackgroundActiveBuyColor: "rgb(64,148,232)",
                            quantityBackgroundInactiveSellColor: "rgba(231,86,86,.5)",
                            quantityBackgroundActiveSellColor: "rgb(231,86,86)",
                            quantityTextColor: "rgba( 255, 255, 255, 1)",
                            quantityTextTransparency: 0,
                            quantityFontFamily: "Verdana",
                            quantityFontSize: 9,
                            quantityFontBold: !0,
                            quantityFontItalic: !1,
                            cancelButtonBorderActiveBuyColor: "rgb(64,148,232)",
                            cancelButtonBorderInactiveBuyColor: "rgba(64,148,232,.5)",
                            cancelButtonBorderActiveSellColor: "rgb(231,86,86)",
                            cancelButtonBorderInactiveSellColor: "rgba(231,86,86,.5)",
                            cancelButtonBackgroundColor: "rgba( 255, 255, 255, 0.75)",
                            cancelButtonBackgroundTransparency: 25,
                            cancelButtonIconActiveBuyColor: "rgb(64,148,232)",
                            cancelButtonIconInactiveBuyColor: "rgba(64,148,232,.5)",
                            cancelButtonIconActiveSellColor: "rgb(231,86,86)",
                            cancelButtonIconInactiveSellColor: "rgba(231,86,86,.5)",
                            tooltip: "",
                            modifyTooltip: "",
                            cancelTooltip: ""
                        },
                        linetoolposition: {
                            extendLeft: "inherit",
                            lineLength: "inherit",
                            lineBuyColor: "rgb(64,148,232)",
                            lineSellColor: "rgb(231,86,86)",
                            lineStyle: "inherit",
                            lineWidth: "inherit",
                            bodyBorderBuyColor: "rgb(64,148,232)",
                            bodyBorderSellColor: "rgb(231,86,86)",
                            bodyBackgroundColor: "rgba( 255, 255, 255, 0.75)",
                            bodyBackgroundTransparency: 25,
                            bodyTextPositiveColor: "rgb(38,140,2)",
                            bodyTextNeutralColor: "rgb(100,100,100)",
                            bodyTextNegativeColor: "rgb(231,86,86)",
                            bodyFontFamily: "Verdana",
                            bodyFontSize: 9,
                            bodyFontBold: !0,
                            bodyFontItalic: !1,
                            quantityBorderBuyColor: "rgb(64,148,232)",
                            quantityBorderSellColor: "rgb(231,86,86)",
                            quantityBackgroundBuyColor: "rgb(64,148,232)",
                            quantityBackgroundSellColor: "rgb(231,86,86)",
                            quantityTextColor: "rgba( 255, 255, 255, 1)",
                            quantityTextTransparency: 0,
                            quantityFontFamily: "Verdana",
                            quantityFontSize: 9,
                            quantityFontBold: !0,
                            quantityFontItalic: !1,
                            reverseButtonBorderBuyColor: "rgb(64,148,232)",
                            reverseButtonBorderSellColor: "rgb(231,86,86)",
                            reverseButtonBackgroundColor: "rgba( 255, 255, 255, 0.75)",
                            reverseButtonBackgroundTransparency: 25,
                            reverseButtonIconBuyColor: "rgb(64,148,232)",
                            reverseButtonIconSellColor: "rgb(231,86,86)",
                            closeButtonBorderBuyColor: "rgb(64,148,232)",
                            closeButtonBorderSellColor: "rgb(231,86,86)",
                            closeButtonBackgroundColor: "rgba( 255, 255, 255, 0.75)",
                            closeButtonBackgroundTransparency: 25,
                            closeButtonIconBuyColor: "rgb(64,148,232)",
                            closeButtonIconSellColor: "rgb(231,86,86)",
                            tooltip: "",
                            protectTooltip: "",
                            closeTooltip: "",
                            reverseTooltip: ""
                        },
                        linetoolexecution: {
                            direction: "buy",
                            arrowHeight: 8,
                            arrowSpacing: 1,
                            arrowBuyColor: "#4094e8",
                            arrowSellColor: "#e75656",
                            text: "",
                            textColor: "rgba( 0, 0, 0, 1)",
                            textTransparency: 0,
                            fontFamily: "Verdana",
                            fontSize: 10,
                            fontBold: !1,
                            fontItalic: !1,
                            tooltip: ""
                        },
                        linetoolicon: {
                            color: y,
                            size: 40,
                            icon: 61720,
                            angle: .5 * Math.PI,
                            scale: 1
                        },
                        linetoolimage: {
                            transparency: 0,
                            cssWidth: 0,
                            cssHeight: 0,
                            angle: 0
                        },
                        linetoolbezierquadro: {
                            linecolor: y,
                            linewidth: 1,
                            fillBackground: !1,
                            backgroundColor: i(y, 80),
                            transparency: 50,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal
                        },
                        linetoolbeziercubic: {
                            linecolor: "#00bcd4",
                            linewidth: 1,
                            fillBackground: !1,
                            backgroundColor: "rgba(0, 188, 212, 0.2)",
                            transparency: 50,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal
                        },
                        linetooltrendline: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textcolor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !1,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !1,
                            showBarsRange: !1,
                            showDateTimeRange: !1,
                            showDistance: !1,
                            showAngle: !1,
                            statsPosition: _.Right
                        },
                        linetoolinfoline: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textcolor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !0,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !0,
                            showBarsRange: !0,
                            showDateTimeRange: !0,
                            showDistance: !0,
                            showAngle: !0,
                            statsPosition: _.Center
                        },
                        linetooltimecycles: {
                            linecolor: "rgba(21, 153, 128, 1)",
                            linewidth: 1,
                            fillBackground: !0,
                            backgroundColor: "rgba(106, 168, 79, 0.5)",
                            transparency: 50,
                            linestyle: CanvasEx.LINESTYLE_SOLID
                        },
                        linetoolsineline: {
                            linecolor: "rgba( 21, 153, 128, 1)",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID
                        },
                        linetooltrendangle: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            textcolor: y,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !1,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !1,
                            showBarsRange: !1,
                            extendRight: !1,
                            extendLeft: !1,
                            statsPosition: _.Right
                        },
                        linetooldisjointangle: {
                            linecolor: M,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            fillBackground: !0,
                            backgroundColor: i(M, 80),
                            transparency: 20,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            textcolor: M,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            showPrices: !1,
                            showPriceRange: !1,
                            showDateTimeRange: !1,
                            showBarsRange: !1
                        },
                        linetoolflatbottom: {
                            linecolor: "rgba(171, 71, 188, 1)",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            fillBackground: !0,
                            backgroundColor: "rgba(171, 71, 188, 0.2)",
                            transparency: 20,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            textcolor: "rgba(171, 71, 188, 1)",
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            showPrices: !1,
                            showPriceRange: !1,
                            showDateTimeRange: !1,
                            showBarsRange: !1
                        },
                        linetoolfibspiral: {
                            counterclockwise: !1,
                            linecolor: M,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID
                        },
                        linetooldaterange: {
                            linecolor: y,
                            linewidth: 1,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fontsize: 12,
                            fillLabelBackground: !0,
                            labelBackgroundColor: i(y, 10),
                            fillBackground: !0,
                            backgroundColor: i(y, 80),
                            backgroundTransparency: 60,
                            drawBorder: !1,
                            borderColor: i(y, 10),
                            extendTop: !1,
                            extendBottom: !1,
                            showLabel: !0
                        },
                        linetoolpricerange: {
                            linecolor: y,
                            linewidth: 1,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fontsize: 12,
                            fillLabelBackground: !0,
                            labelBackgroundColor: i(y, 10),
                            fillBackground: !0,
                            backgroundColor: i(y, 80),
                            backgroundTransparency: 60,
                            drawBorder: !1,
                            borderColor: i(y, 10),
                            extendLeft: !1,
                            extendRight: !1,
                            showLabel: !0
                        },
                        linetooldateandpricerange: {
                            linecolor: y,
                            linewidth: 1,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fontsize: 12,
                            fillLabelBackground: !0,
                            labelBackgroundColor: i(y, 10),
                            fillBackground: !0,
                            backgroundColor: i(y, 80),
                            backgroundTransparency: 60,
                            borderWidth: 1,
                            drawBorder: !1,
                            borderColor: y,
                            showLabel: !0
                        },
                        linetoolriskrewardshort: {
                            linecolor: "rgba(120, 123, 134, 1)",
                            linewidth: 1,
                            textcolor: "rgba(255, 255, 255, 1)",
                            fontsize: 12,
                            fillLabelBackground: !0,
                            labelBackgroundColor: "rgba( 88, 88, 88, 1)",
                            fillBackground: !0,
                            stopBackground: i(E, 80),
                            profitBackground: i(M, 80),
                            stopBackgroundTransparency: 80,
                            profitBackgroundTransparency: 80,
                            drawBorder: !1,
                            borderColor: "rgba( 102, 123, 139, 1)",
                            compact: !1,
                            riskDisplayMode: "percents",
                            accountSize: 1e3,
                            lotSize: 1,
                            risk: 25,
                            alwaysShowStats: !1,
                            showPriceLabels: !0
                        },
                        linetoolriskrewardlong: {
                            linecolor: "rgba(120, 123, 134, 1)",
                            linewidth: 1,
                            textcolor: "rgba(255, 255, 255, 1)",
                            fontsize: 12,
                            fillLabelBackground: !0,
                            labelBackgroundColor: "rgba( 88, 88, 88, 1)",
                            fillBackground: !0,
                            stopBackground: i(E, 80),
                            profitBackground: i(M, 80),
                            stopBackgroundTransparency: 80,
                            profitBackgroundTransparency: 80,
                            drawBorder: !1,
                            borderColor: "rgba( 102, 123, 139, 1)",
                            compact: !1,
                            riskDisplayMode: "percents",
                            accountSize: 1e3,
                            lotSize: 1,
                            risk: 25,
                            alwaysShowStats: !1,
                            showPriceLabels: !0
                        },
                        linetoolarrow: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            leftEnd: g.Normal,
                            rightEnd: g.Arrow,
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textcolor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !1,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !1,
                            showBarsRange: !1,
                            showDateTimeRange: !1,
                            showDistance: !1,
                            showAngle: !1,
                            statsPosition: _.Right
                        },
                        linetoolray: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !0,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textcolor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !1,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !1,
                            showBarsRange: !1,
                            showDateTimeRange: !1,
                            showDistance: !1,
                            showAngle: !1,
                            statsPosition: _.Right
                        },
                        linetoolextended: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !0,
                            extendRight: !0,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal,
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textcolor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            alwaysShowStats: !1,
                            showMiddlePoint: !1,
                            showPriceLabels: !1,
                            showPriceRange: !1,
                            showBarsRange: !1,
                            showDateTimeRange: !1,
                            showDistance: !1,
                            showAngle: !1,
                            statsPosition: _.Right
                        },
                        linetoolhorzline: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showPrice: !0,
                            showLabel: !1,
                            textcolor: y,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "top"
                        },
                        linetoolhorzray: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showPrice: !0,
                            showLabel: !1,
                            textcolor: y,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "top"
                        },
                        linetoolvertline: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLine: !0,
                            showTime: !0,
                            showLabel: !1,
                            horzLabelsAlign: "right",
                            vertLabelsAlign: "top",
                            textcolor: y,
                            textOrientation: "vertical",
                            fontsize: 14,
                            bold: !1,
                            italic: !1
                        },
                        linetoolcrossline: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showPrice: !0,
                            showTime: !0
                        },
                        linetoolcirclelines: {
                            trendline: {
                                visible: !0,
                                color: "rgba( 128, 128, 128, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            linecolor: "rgba( 128, 204, 219, 1)",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID
                        },
                        linetoolfibtimezone: {
                            horzLabelsAlign: "right",
                            vertLabelsAlign: "bottom",
                            baselinecolor: "rgba( 128, 128, 128, 1)",
                            linecolor: "rgba( 0, 85, 219, 1)",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showLabels: !0,
                            fillBackground: !1,
                            transparency: 80,
                            trendline: {
                                visible: !0,
                                color: "rgba( 128, 128, 128, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            level1: n(0, "rgba(120, 123, 134, 1)", !0),
                            level2: n(1, y, !0),
                            level3: n(2, y, !0),
                            level4: n(3, y, !0),
                            level5: n(5, y, !0),
                            level6: n(8, y, !0),
                            level7: n(13, y, !0),
                            level8: n(21, y, !0),
                            level9: n(34, y, !0),
                            level10: n(55, y, !0),
                            level11: n(89, y, !0)
                        },
                        linetooltext: {
                            color: y,
                            fontsize: 14,
                            fillBackground: !1,
                            backgroundColor: "rgba( 91, 133, 191, 0.3)",
                            backgroundTransparency: 70,
                            drawBorder: !1,
                            borderColor: "rgba( 102, 123, 139, 1)",
                            bold: !1,
                            italic: !1,
                            fixedSize: !0,
                            wordWrap: !1,
                            wordWrapWidth: 200
                        },
                        linetooltextabsolute: {
                            color: y,
                            fontsize: 14,
                            fillBackground: !1,
                            backgroundColor: "rgba( 155, 190, 213, 0.3)",
                            backgroundTransparency: 70,
                            drawBorder: !1,
                            borderColor: "rgba( 102, 123, 139, 1)",
                            bold: !1,
                            italic: !1,
                            fixedSize: !1,
                            wordWrap: !1,
                            wordWrapWidth: 200
                        },
                        linetoolballoon: {
                            color: "#ffffff",
                            backgroundColor: "rgba(156, 39, 176, 0.7)",
                            borderColor: "rgba(156, 39, 176, 0.0)",
                            fontsize: 14,
                            transparency: 30
                        },
                        linetoolbrush: {
                            linecolor: "#00bcd4",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            smooth: 5,
                            fillBackground: !1,
                            backgroundColor: "rgba(0, 188, 212, 0.5)",
                            transparency: 50,
                            leftEnd: g.Normal,
                            rightEnd: g.Normal
                        },
                        linetoolhighlighter: {
                            linecolor: "rgba(236, 64, 122, 0.15)",
                            smooth: 5,
                            transparency: 85
                        },
                        linetoolpolyline: {
                            linecolor: "#7e57c2",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            fillBackground: !0,
                            backgroundColor: "rgba(126, 87, 194, 0.2)",
                            transparency: 50,
                            filled: !1
                        },
                        linetoolsignpost: {
                            itemType: p.Emoji,
                            emoji: "🙂",
                            showImage: !1,
                            plateColor: y,
                            fontSize: 12,
                            bold: !1,
                            italic: !1
                        },
                        linetoolpath: {
                            lineColor: y,
                            lineWidth: 2,
                            lineStyle: CanvasEx.LINESTYLE_SOLID,
                            leftEnd: g.Normal,
                            rightEnd: g.Arrow
                        },
                        linetoolarrowmarkleft: {
                            color: y,
                            arrowColor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            showLabel: !0
                        },
                        linetoolarrowmarkup: {
                            color: M,
                            arrowColor: M,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            showLabel: !0
                        },
                        linetoolarrowmarkright: {
                            color: y,
                            arrowColor: y,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            showLabel: !0
                        },
                        linetoolarrowmarkdown: {
                            color: x,
                            arrowColor: x,
                            fontsize: 14,
                            bold: !1,
                            italic: !1,
                            showLabel: !0
                        },
                        linetoolflagmark: {
                            flagColor: y
                        },
                        linetoolnote: {
                            markerColor: y,
                            textColor: "#ffffff",
                            backgroundColor: i(y, 30),
                            backgroundTransparency: 0,
                            borderColor: y,
                            fontSize: 14,
                            bold: !1,
                            italic: !1,
                            fixedSize: !0
                        },
                        linetoolnoteabsolute: {
                            markerColor: y,
                            textColor: "#ffffff",
                            backgroundColor: i(y, 30),
                            backgroundTransparency: 0,
                            borderColor: y,
                            fontSize: 14,
                            bold: !1,
                            italic: !1,
                            fixedSize: !0
                        },
                        linetoolpricelabel: {
                            color: "#ffffff",
                            backgroundColor: y,
                            borderColor: y,
                            fontWeight: "bold",
                            fontsize: 14,
                            transparency: 0
                        },
                        linetoolpricenote: {
                            showLabel: !1,
                            horzLabelsAlign: "center",
                            vertLabelsAlign: "bottom",
                            textColor: y,
                            fontSize: 14,
                            bold: !1,
                            italic: !1,
                            lineColor: y,
                            priceLabelBackgroundColor: y,
                            priceLabelBorderColor: y,
                            priceLabelTextColor: "#ffffff",
                            priceLabelFontSize: 12,
                            priceLabelBold: !1,
                            priceLabelItalic: !1
                        },
                        linetoolarrowmarker: {
                            backgroundColor: w,
                            textColor: w,
                            bold: !0,
                            italic: !1,
                            fontsize: 16,
                            showLabel: !0
                        },
                        linetoolrectangle: {
                            color: "#9c27b0",
                            fillBackground: !0,
                            backgroundColor: "rgba(156, 39, 176, 0.2)",
                            linewidth: 1,
                            transparency: 50,
                            showLabel: !1,
                            horzLabelsAlign: "left",
                            vertLabelsAlign: "bottom",
                            textColor: "#9c27b0",
                            fontSize: 14,
                            bold: !1,
                            italic: !1,
                            extendLeft: !1,
                            extendRight: !1
                        },
                        linetoolrotatedrectangle: {
                            color: "#4caf50",
                            fillBackground: !0,
                            backgroundColor: "rgba(76, 175, 80, 0.2)",
                            transparency: 50,
                            linewidth: 1
                        },
                        linetoolcircle: {
                            color: L,
                            backgroundColor: i(L, 80),
                            fillBackground: !0,
                            linewidth: 1
                        },
                        linetoolellipse: {
                            color: "#e91e63",
                            fillBackground: !0,
                            backgroundColor: "rgba(233, 30, 99, 0.2)",
                            transparency: 50,
                            linewidth: 1
                        },
                        linetoolarc: {
                            color: "#ab47bc",
                            fillBackground: !0,
                            backgroundColor: "rgba(171, 71, 188, 0.2)",
                            transparency: 50,
                            linewidth: 1
                        },
                        linetoolprediction: {
                            linecolor: y,
                            linewidth: 1,
                            sourceBackColor: y,
                            sourceTextColor: "rgba(255, 255, 255, 1)",
                            sourceStrokeColor: y,
                            targetStrokeColor: y,
                            targetBackColor: y,
                            targetTextColor: "rgba(255, 255, 255, 1)",
                            successBackground: "rgba(76, 175, 80, 1)",
                            successTextColor: "rgba(255, 255, 255, 1)",
                            failureBackground: E,
                            failureTextColor: "rgba(255, 255, 255, 1)",
                            intermediateBackColor: "rgba(234, 210, 137, 1)",
                            intermediateTextColor: "rgba(109, 77, 34, 1)",
                            transparency: 10,
                            centersColor: "rgba( 32, 32, 32, 1)"
                        },
                        linetooltriangle: {
                            color: "#f57c00",
                            fillBackground: !0,
                            backgroundColor: "rgba(245, 124, 0, 0.2)",
                            transparency: 50,
                            linewidth: 1
                        },
                        linetoolcallout: {
                            color: "#ffffff",
                            backgroundColor: "rgba(0, 151, 167, 0.7)",
                            transparency: 50,
                            linewidth: 1,
                            fontsize: 14,
                            bordercolor: "rgba(0, 151, 167, 1)",
                            bold: !1,
                            italic: !1,
                            wordWrap: !1,
                            wordWrapWidth: 200
                        },
                        linetoolparallelchannel: {
                            linecolor: y,
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            extendLeft: !1,
                            extendRight: !1,
                            fillBackground: !0,
                            backgroundColor: i(y, 80),
                            transparency: 20,
                            showMidline: !0,
                            midlinecolor: y,
                            midlinewidth: 1,
                            midlinestyle: CanvasEx.LINESTYLE_DASHED
                        },
                        linetoolelliottimpulse: {
                            degree: 7,
                            showWave: !0,
                            color: "rgba( 61, 133, 198, 1)",
                            linewidth: 1
                        },
                        linetoolelliotttriangle: {
                            degree: 7,
                            showWave: !0,
                            color: "rgba( 255, 152, 0, 1)",
                            linewidth: 1
                        },
                        linetoolelliotttriplecombo: {
                            degree: 7,
                            showWave: !0,
                            color: "rgba( 106, 168, 79, 1)",
                            linewidth: 1
                        },
                        linetoolelliottcorrection: {
                            degree: 7,
                            showWave: !0,
                            color: "rgba( 61, 133, 198, 1)",
                            linewidth: 1
                        },
                        linetoolelliottdoublecombo: {
                            degree: 7,
                            showWave: !0,
                            color: "rgba( 106, 168, 79, 1)",
                            linewidth: 1
                        },
                        linetoolbarspattern: {
                            color: y,
                            mode: c.Bars,
                            mirrored: !1,
                            flipped: !1
                        },
                        linetoolghostfeed: {
                            averageHL: 20,
                            variance: 50,
                            candleStyle: {
                                upColor: T,
                                downColor: S,
                                drawWick: !0,
                                drawBorder: !0,
                                borderColor: "#378658",
                                borderUpColor: M,
                                borderDownColor: E,
                                wickColor: "rgba(120, 123, 134, 1)"
                            },
                            transparency: 50
                        },
                        study: {
                            inputs: {},
                            styles: {},
                            palettes: {},
                            bands: {},
                            area: {},
                            graphics: {},
                            showInDataWindow: !0,
                            visible: !0,
                            showLegendValues: !0,
                            showLabelsOnPriceScale: !0,
                            precision: "default"
                        },
                        linetoolpitchfork: {
                            fillBackground: !0,
                            transparency: 80,
                            style: l.Original,
                            median: {
                                visible: !0,
                                color: E,
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            extendLines: !1,
                            level0: n(.25, "rgba(255, 183, 77, 1)", !1),
                            level1: n(.382, "rgba(129, 199, 132, 1)", !1),
                            level2: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level3: n(.618, M, !1),
                            level4: n(.75, "rgba(100, 181, 246, 1)", !1),
                            level5: n(1, y, !0),
                            level6: n(1.5, "rgba(156, 39, 176, 1)", !1),
                            level7: n(1.75, "rgba(233, 30, 99, 1)", !1),
                            level8: n(2, C, !1)
                        },
                        linetoolpitchfan: {
                            fillBackground: !0,
                            transparency: 80,
                            median: {
                                visible: !0,
                                color: E,
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level0: n(.25, "rgba(255, 183, 77, 1)", !1),
                            level1: n(.382, "rgba(129, 199, 132, 1)", !1),
                            level2: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level3: n(.618, M, !1),
                            level4: n(.75, "rgba(100, 181, 246, 1)", !1),
                            level5: n(1, y, !0),
                            level6: n(1.5, "rgba(156, 39, 176, 1)", !1),
                            level7: n(1.75, "rgba(233, 30, 99, 1)", !1),
                            level8: n(2, C, !1)
                        },
                        linetoolgannfan: {
                            showLabels: !0,
                            fillBackground: !0,
                            transparency: 80,
                            level1: F(1, 8, "rgba(255, 183, 77, 1)", !0),
                            level2: F(1, 4, "rgba(129, 199, 132, 1)", !0),
                            level3: F(1, 3, "rgba(76, 175, 80, 1)", !0),
                            level4: F(1, 2, M, !0),
                            level5: F(1, 1, "rgba(100, 181, 246, 1)", !0),
                            level6: F(2, 1, y, !0),
                            level7: F(3, 1, "rgba(156, 39, 176, 1)", !0),
                            level8: F(4, 1, "rgba(233, 30, 99, 1)", !0),
                            level9: F(8, 1, C, !0)
                        },
                        linetoolganncomplex: {
                            fillBackground: !1,
                            arcsBackground: {
                                fillBackground: !0,
                                transparency: 80
                            },
                            reverse: !1,
                            scaleRatio: "",
                            showLabels: !0,
                            labelsStyle: {
                                fontSize: 12,
                                bold: !1,
                                italic: !1
                            },
                            levels: [b("rgba(120, 123, 134, 1)", !0, 1), b("rgba(255, 152, 0, 1)", !0, 1), b("rgba(129, 199, 132, 1)", !0, 1), b("rgba(76, 175, 80, 1)", !0, 1), b(M, !0, 1), b("rgba(120, 123, 134, 1)", !0, 1)],
                            fanlines: [P("rgba(179, 157, 219, 1)", !1, 1, 8, 1), P(E, !1, 1, 5, 1), P("rgba(120, 123, 134, 1)", !1, 1, 4, 1), P("rgba(255, 152, 0, 1)", !1, 1, 3, 1), P("rgba(129, 199, 132, 1)", !0, 1, 2, 1), P("rgba(76, 175, 80, 1)", !0, 1, 1, 1), P(M, !0, 1, 1, 2), P(M, !1, 1, 1, 3), P(y, !1, 1, 1, 4), P("rgba(149, 117, 205, 1)", !1, 1, 1, 5), P("rgba(179, 157, 219, 1)", !1, 1, 1, 8)],
                            arcs: [P("rgba(255, 152, 0, 1)", !0, 1, 1, 0), P("rgba(255, 152, 0, 1)", !0, 1, 1, 1), P("rgba(255, 152, 0, 1)", !0, 1, 1.5, 0), P("rgba(129, 199, 132, 1)", !0, 1, 2, 0), P("rgba(129, 199, 132, 1)", !0, 1, 2, 1), P("rgba(76, 175, 80, 1)", !0, 1, 3, 0), P("rgba(76, 175, 80, 1)", !0, 1, 3, 1), P(M, !0, 1, 4, 0), P(M, !0, 1, 4, 1), P(y, !0, 1, 5, 0), P(y, !0, 1, 5, 1)]
                        },
                        linetoolgannfixed: {
                            fillBackground: !1,
                            arcsBackground: {
                                fillBackground: !0,
                                transparency: 80
                            },
                            reverse: !1,
                            levels: [b("rgba(120, 123, 134, 1)", !0, 1), b("rgba(255, 152, 0, 1)", !0, 1), b("rgba(129, 199, 132, 1)", !0, 1), b("rgba(76, 175, 80, 1)", !0, 1), b(M, !0, 1), b("rgba(120, 123, 134, 1)", !0, 1)],
                            fanlines: [P("rgba(179, 157, 219, 1)", !1, 1, 8, 1), P(E, !1, 1, 5, 1), P("rgba(120, 123, 134, 1)", !1, 1, 4, 1), P("rgba(255, 152, 0, 1)", !1, 1, 3, 1), P("rgba(129, 199, 132, 1)", !0, 1, 2, 1), P("rgba(76, 175, 80, 1)", !0, 1, 1, 1), P(M, !0, 1, 1, 2), P(M, !1, 1, 1, 3), P(y, !1, 1, 1, 4), P("rgba(149, 117, 205, 1)", !1, 1, 1, 5), P("rgba(179, 157, 219, 1)", !1, 1, 1, 8)],
                            arcs: [P("rgba(255, 152, 0, 1)", !0, 1, 1, 0), P("rgba(255, 152, 0, 1)", !0, 1, 1, 1), P("rgba(255, 152, 0, 1)", !0, 1, 1.5, 0), P("rgba(129, 199, 132, 1)", !0, 1, 2, 0), P("rgba(129, 199, 132, 1)", !0, 1, 2, 1), P("rgba(76, 175, 80, 1)", !0, 1, 3, 0), P("rgba(76, 175, 80, 1)", !0, 1, 3, 1), P(M, !0, 1, 4, 0), P(M, !0, 1, 4, 1), P(y, !0, 1, 5, 0), P(y, !0, 1, 5, 1)]
                        },
                        linetoolgannsquare: {
                            color: "rgba( 21, 56, 153, 0.8)",
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showTopLabels: !0,
                            showBottomLabels: !0,
                            showLeftLabels: !0,
                            showRightLabels: !0,
                            fillHorzBackground: !0,
                            horzTransparency: 80,
                            fillVertBackground: !0,
                            vertTransparency: 80,
                            reverse: !1,
                            fans: t("rgba(149, 152, 161, 1)", !1),
                            hlevel1: r(0, "rgba(120, 123, 134, 1)", !0),
                            hlevel2: r(.25, "rgba(245, 124, 0, 1)", !0),
                            hlevel3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            hlevel4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            hlevel5: r(.618, M, !0),
                            hlevel6: r(.75, y, !0),
                            hlevel7: r(1, "rgba(120, 123, 134, 1)", !0),
                            vlevel1: r(0, "rgba(120, 123, 134, 1)", !0),
                            vlevel2: r(.25, "rgba(245, 124, 0, 1)", !0),
                            vlevel3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            vlevel4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            vlevel5: r(.618, M, !0),
                            vlevel6: r(.75, y, !0),
                            vlevel7: r(1, "rgba(120, 123, 134, 1)", !0)
                        },
                        linetoolfibspeedresistancefan: {
                            fillBackground: !0,
                            transparency: 80,
                            grid: {
                                color: "rgba( 21, 56, 153, 0.8)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                visible: !0
                            },
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            showTopLabels: !0,
                            showBottomLabels: !0,
                            showLeftLabels: !0,
                            showRightLabels: !0,
                            reverse: !1,
                            hlevel1: r(0, "rgba(120, 123, 134, 1)", !0),
                            hlevel2: r(.25, "rgba(245, 124, 0, 1)", !0),
                            hlevel3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            hlevel4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            hlevel5: r(.618, M, !0),
                            hlevel6: r(.75, y, !0),
                            hlevel7: r(1, "rgba(120, 123, 134, 1)", !0),
                            vlevel1: r(0, "rgba(120, 123, 134, 1)", !0),
                            vlevel2: r(.25, "rgba(245, 124, 0, 1)", !0),
                            vlevel3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            vlevel4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            vlevel5: r(.618, M, !0),
                            vlevel6: r(.75, y, !0),
                            vlevel7: r(1, "rgba(120, 123, 134, 1)", !0)
                        },
                        linetoolfibretracement: {
                            showCoeffs: !0,
                            showPrices: !0,
                            fillBackground: !0,
                            transparency: 80,
                            extendLines: !1,
                            extendLinesLeft: !1,
                            horzLabelsAlign: "left",
                            vertLabelsAlign: "bottom",
                            reverse: !1,
                            coeffsAsPercents: !1,
                            fibLevelsBasedOnLogScale: !1,
                            trendline: {
                                visible: !0,
                                color: "rgba(120, 123, 134, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            levelsStyle: {
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level1: r(0, "rgba(120, 123, 134, 1)", !0),
                            level2: r(.236, E, !0),
                            level3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            level4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            level5: r(.618, M, !0),
                            level6: r(.786, "rgba(100, 181, 246, 1)", !0),
                            level7: r(1, "rgba(120, 123, 134, 1)", !0),
                            level8: r(1.618, y, !0),
                            level9: r(2.618, E, !0),
                            level10: r(3.618, "rgba(156, 39, 176, 1)", !0),
                            level11: r(4.236, "rgba(233, 30, 99, 1)", !0),
                            level12: r(1.272, "rgba(129, 199, 132, 1)", !1),
                            level13: r(1.414, E, !1),
                            level16: r(2, M, !1),
                            level14: r(2.272, "rgba(129, 199, 132, 1)", !1),
                            level15: r(2.414, "rgba(76, 175, 80, 1)", !1),
                            level17: r(3, "rgba(100, 181, 246, 1)", !1),
                            level18: r(3.272, "rgba(120, 123, 134, 1)", !1),
                            level19: r(3.414, y, !1),
                            level20: r(4, "rgba( 204, 40, 40, 1)", !1),
                            level21: r(4.272, "rgba(156, 39, 176, 1)", !1),
                            level22: r(4.414, "rgba(233, 30, 99, 1)", !1),
                            level23: r(4.618, "rgba(129, 199, 132, 1)", !1),
                            level24: r(4.764, M, !1)
                        },
                        linetoolfibchannel: {
                            showCoeffs: !0,
                            showPrices: !0,
                            fillBackground: !0,
                            transparency: 80,
                            extendLeft: !1,
                            extendRight: !1,
                            horzLabelsAlign: "left",
                            vertLabelsAlign: "middle",
                            coeffsAsPercents: !1,
                            levelsStyle: {
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level1: r(0, "rgba(120, 123, 134, 1)", !0),
                            level2: r(.236, E, !0),
                            level3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            level4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            level5: r(.618, M, !0),
                            level6: r(.786, "rgba(100, 181, 246, 1)", !0),
                            level7: r(1, "rgba(120, 123, 134, 1)", !0),
                            level8: r(1.618, y, !0),
                            level9: r(2.618, E, !0),
                            level10: r(3.618, "rgba(156, 39, 176, 1)", !0),
                            level11: r(4.236, "rgba(233, 30, 99, 1)", !0),
                            level12: r(1.272, "rgba(129, 199, 132, 1)", !1),
                            level13: r(1.414, E, !1),
                            level16: r(2, M, !1),
                            level14: r(2.272, "rgba(129, 199, 132, 1)", !1),
                            level15: r(2.414, "rgba(76, 175, 80, 1)", !1),
                            level17: r(3, "rgba(100, 181, 246, 1)", !1),
                            level18: r(3.272, "rgba(120, 123, 134, 1)", !1),
                            level19: r(3.414, y, !1),
                            level20: r(4, "rgba( 204, 40, 40, 1)", !1),
                            level21: r(4.272, "rgba(156, 39, 176, 1)", !1),
                            level22: r(4.414, "rgba(233, 30, 99, 1)", !1),
                            level23: r(4.618, "rgba(129, 199, 132, 1)", !1),
                            level24: r(4.764, M, !1)
                        },
                        linetoolprojection: {
                            showCoeffs: !0,
                            fillBackground: !0,
                            transparency: 80,
                            color1: i(y, 80),
                            color2: "rgba(156, 39, 176, 0.2)",
                            linewidth: 1,
                            trendline: {
                                visible: !0,
                                color: "rgba(149, 152, 161, 1)",
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level1: n(1, "rgba( 128, 128, 128, 1)", !0)
                        },
                        linetool5pointspattern: {
                            color: y,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fillBackground: !0,
                            backgroundColor: y,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            transparency: 85,
                            linewidth: 1
                        },
                        linetoolcypherpattern: {
                            color: y,
                            textcolor: "#FFFFFF",
                            fillBackground: !0,
                            backgroundColor: y,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            transparency: 85,
                            linewidth: 1
                        },
                        linetooltrianglepattern: {
                            color: "#673AB7",
                            textcolor: "#FFFFFF",
                            fillBackground: !0,
                            backgroundColor: "#673AB7",
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            transparency: 85,
                            linewidth: 1
                        },
                        linetoolabcd: {
                            color: M,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            linewidth: 1
                        },
                        linetoolthreedrivers: {
                            color: "#673AB7",
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fillBackground: !0,
                            backgroundColor: "rgba( 149, 40, 204, 0.5)",
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            transparency: 50,
                            linewidth: 1
                        },
                        linetoolheadandshoulders: {
                            color: M,
                            textcolor: "rgba( 255, 255, 255, 1)",
                            fillBackground: !0,
                            backgroundColor: M,
                            fontsize: 12,
                            bold: !1,
                            italic: !1,
                            transparency: 85,
                            linewidth: 1
                        },
                        linetoolfibwedge: {
                            showCoeffs: !0,
                            fillBackground: !0,
                            transparency: 80,
                            trendline: {
                                visible: !0,
                                color: "rgba( 128, 128, 128, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level1: n(.236, E, !0),
                            level2: n(.382, "rgba(129, 199, 132, 1)", !0),
                            level3: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level4: n(.618, M, !0),
                            level5: n(.786, "rgba(100, 181, 246, 1)", !0),
                            level6: n(1, "rgba(120, 123, 134, 1)", !0),
                            level7: n(1.618, y, !1),
                            level8: n(2.618, E, !1),
                            level9: n(3.618, "rgba(103, 58, 183, 1)", !1),
                            level10: n(4.236, "rgba(233, 30, 99, 1)", !1),
                            level11: n(4.618, "rgba(233, 30, 99, 1)", !1)
                        },
                        linetoolfibcircles: {
                            showCoeffs: !0,
                            fillBackground: !0,
                            transparency: 80,
                            coeffsAsPercents: !1,
                            trendline: {
                                visible: !0,
                                color: "rgba(120, 123, 134, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            level1: n(.236, E, !0),
                            level2: n(.382, "rgba(129, 199, 132, 1)", !0),
                            level3: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level4: n(.618, M, !0),
                            level5: n(.786, "rgba(100, 181, 246, 1)", !0),
                            level6: n(1, "rgba(120, 123, 134, 1)", !0),
                            level7: n(1.618, y, !0),
                            level8: n(2.618, E, !0),
                            level9: n(3.618, "rgba(103, 58, 183, 1)", !0),
                            level10: n(4.236, "rgba(233, 30, 99, 1)", !0),
                            level11: n(4.618, "rgba(233, 30, 99, 1)", !0)
                        },
                        linetoolfibspeedresistancearcs: {
                            showCoeffs: !0,
                            fillBackground: !0,
                            transparency: 80,
                            fullCircles: !1,
                            trendline: {
                                visible: !0,
                                color: "rgba(120, 123, 134, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            level1: n(.236, E, !0),
                            level2: n(.382, "rgba(129, 199, 132, 1)", !0),
                            level3: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level4: n(.618, M, !0),
                            level5: n(.786, "rgba(100, 181, 246, 1)", !0),
                            level6: n(1, "rgba(120, 123, 134, 1)", !0),
                            level7: n(1.618, y, !0),
                            level8: n(2.618, E, !0),
                            level9: n(3.618, "rgba(103, 58, 183, 1)", !0),
                            level10: n(4.236, "rgba(233, 30, 99, 1)", !0),
                            level11: n(4.618, "rgba(233, 30, 99, 1)", !0)
                        },
                        linetooltrendbasedfibextension: {
                            showCoeffs: !0,
                            showPrices: !0,
                            fillBackground: !0,
                            transparency: 80,
                            extendLines: !1,
                            extendLinesLeft: !1,
                            horzLabelsAlign: "left",
                            vertLabelsAlign: "bottom",
                            reverse: !1,
                            coeffsAsPercents: !1,
                            fibLevelsBasedOnLogScale: !1,
                            trendline: {
                                visible: !0,
                                color: "rgba(120, 123, 134, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            levelsStyle: {
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            level1: r(0, "rgba(120, 123, 134, 1)", !0),
                            level2: r(.236, E, !0),
                            level3: r(.382, "rgba(129, 199, 132, 1)", !0),
                            level4: r(.5, "rgba(76, 175, 80, 1)", !0),
                            level5: r(.618, M, !0),
                            level6: r(.786, "rgba(100, 181, 246, 1)", !0),
                            level7: r(1, "rgba(120, 123, 134, 1)", !0),
                            level8: r(1.618, y, !0),
                            level9: r(2.618, E, !0),
                            level10: r(3.618, "rgba(156, 39, 176, 1)", !0),
                            level11: r(4.236, "rgba(233, 30, 99, 1)", !0),
                            level12: r(1.272, "rgba(129, 199, 132, 1)", !1),
                            level13: r(1.414, E, !1),
                            level16: r(2, M, !1),
                            level14: r(2.272, "rgba(129, 199, 132, 1)", !1),
                            level15: r(2.414, "rgba(76, 175, 80, 1)", !1),
                            level17: r(3, "rgba(100, 181, 246, 1)", !1),
                            level18: r(3.272, "rgba(120, 123, 134, 1)", !1),
                            level19: r(3.414, y, !1),
                            level20: r(4, "rgba( 204, 40, 40, 1)", !1),
                            level21: r(4.272, "rgba(156, 39, 176, 1)", !1),
                            level22: r(4.414, "rgba(233, 30, 99, 1)", !1),
                            level23: r(4.618, "rgba(129, 199, 132, 1)", !1),
                            level24: r(4.764, M, !1)
                        },
                        linetooltrendbasedfibtime: {
                            showCoeffs: !0,
                            fillBackground: !0,
                            transparency: 80,
                            horzLabelsAlign: "right",
                            vertLabelsAlign: "bottom",
                            trendline: {
                                visible: !0,
                                color: "rgba(120, 123, 134, 1)",
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_DASHED
                            },
                            level1: n(0, "rgba(120, 123, 134, 1)", !0),
                            level2: n(.382, E, !0),
                            level3: n(.5, "rgba(129, 199, 132, 1)", !1),
                            level4: n(.618, "rgba(76, 175, 80, 1)", !0),
                            level5: n(1, M, !0),
                            level6: n(1.382, "rgba(100, 181, 246, 1)", !0),
                            level7: n(1.618, "rgba(120, 123, 134, 1)", !0),
                            level8: n(2, y, !0),
                            level9: n(2.382, E, !0),
                            level10: n(2.618, "rgba(156, 39, 176, 1)", !0),
                            level11: n(3, "rgba(233, 30, 99, 1)", !0)
                        },
                        linetoolschiffpitchfork: {
                            fillBackground: !0,
                            transparency: 80,
                            style: l.Schiff,
                            median: {
                                visible: !0,
                                color: E,
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            extendLines: !1,
                            level0: n(.25, "rgba(255, 183, 77, 1)", !1),
                            level1: n(.382, "rgba(129, 199, 132, 1)", !1),
                            level2: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level3: n(.618, M, !1),
                            level4: n(.75, "rgba(100, 181, 246, 1)", !1),
                            level5: n(1, y, !0),
                            level6: n(1.5, "rgba(156, 39, 176, 1)", !1),
                            level7: n(1.75, "rgba(233, 30, 99, 1)", !1),
                            level8: n(2, C, !1)
                        },
                        linetoolschiffpitchfork2: {
                            fillBackground: !0,
                            transparency: 80,
                            style: l.Schiff2,
                            median: {
                                visible: !0,
                                color: E,
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            extendLines: !1,
                            level0: n(.25, "rgba(255, 183, 77, 1)", !1),
                            level1: n(.382, "rgba(129, 199, 132, 1)", !1),
                            level2: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level3: n(.618, M, !1),
                            level4: n(.75, "rgba(100, 181, 246, 1)", !1),
                            level5: n(1, y, !0),
                            level6: n(1.5, "rgba(156, 39, 176, 1)", !1),
                            level7: n(1.75, "rgba(233, 30, 99, 1)", !1),
                            level8: n(2, C, !1)
                        },
                        linetoolinsidepitchfork: {
                            fillBackground: !0,
                            transparency: 80,
                            style: l.Inside,
                            median: {
                                visible: !0,
                                color: E,
                                linewidth: 1,
                                linestyle: CanvasEx.LINESTYLE_SOLID
                            },
                            extendLines: !1,
                            level0: n(.25, "rgba(255, 183, 77, 1)", !1),
                            level1: n(.382, "rgba(129, 199, 132, 1)", !1),
                            level2: n(.5, "rgba(76, 175, 80, 1)", !0),
                            level3: n(.618, M, !1),
                            level4: n(.75, "rgba(100, 181, 246, 1)", !1),
                            level5: n(1, y, !0),
                            level6: n(1.5, "rgba(156, 39, 176, 1)", !1),
                            level7: n(1.75, "rgba(233, 30, 99, 1)", !1),
                            level8: n(2, C, !1)
                        },
                        linetoolregressiontrend: {
                            linewidth: 1,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            styles: {
                                upLine: {
                                    visible: !0,
                                    color: i(y, 70),
                                    linestyle: CanvasEx.LINESTYLE_SOLID,
                                    linewidth: 1
                                },
                                downLine: {
                                    visible: !0,
                                    color: i(y, 70),
                                    linestyle: CanvasEx.LINESTYLE_SOLID,
                                    linewidth: 1
                                },
                                baseLine: {
                                    visible: !0,
                                    color: i(E, 70),
                                    linestyle: CanvasEx.LINESTYLE_SOLID,
                                    linewidth: 1
                                },
                                extendLines: !1,
                                showPearsons: !0,
                                transparency: 70
                            }
                        }
                    }, I(TradingView.defaultProperties.chartproperties), D()
                }
                if (void 0 === TradingView.defaultProperties["study_MA@tv-basicstudies"] && (TradingView.defaultProperties["study_MA@tv-basicstudies"] = {
                        description: "Moving Average",
                        shortDescription: "MA",
                        inputs: {
                            length: 9,
                            source: "close"
                        },
                        styles: {
                            MovAvg: {
                                visible: !0,
                                color: y,
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1,
                                plottype: u.Line,
                                histogramBase: 0,
                                title: "MA"
                            }
                        }
                    }), void 0 === TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"] && (TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"] = {
                        fontsize: 10,
                        borderColor: y,
                        backColor: "#E3EFFD",
                        textColor: "#131722"
                    }),
                    void 0 === TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]) {
                    TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"] = {
                        _hardCodedDefaultsVersion: 1,
                        fontsize: 11,
                        levelsStyle: {
                            showLabels: !0,
                            visibility: {
                                P: !0,
                                "S1/R1": !0,
                                "S2/R2": !0,
                                "S3/R3": !0,
                                "S4/R4": !0,
                                "S5/R5": !0
                            },
                            colors: {
                                P: "#FB8C00",
                                "S1/R1": "#FB8C00",
                                "S2/R2": "#FB8C00",
                                "S3/R3": "#FB8C00",
                                "S4/R4": "#FB8C00",
                                "S5/R5": "#FB8C00"
                            },
                            widths: {
                                P: 1,
                                "S1/R1": 1,
                                "S2/R2": 1,
                                "S3/R3": 1,
                                "S4/R4": 1,
                                "S5/R5": 1
                            }
                        }
                    }
                }
                if (void 0 === TradingView.defaultProperties["study_ZigZag@tv-basicstudies"] && (TradingView.defaultProperties["study_ZigZag@tv-basicstudies"] = {
                        color: y,
                        linewidth: 2
                    }), void 0 === TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"] && (TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"] = {
                        inputs: {},
                        level0: t("rgba( 255, 0, 0, 1)", !1),
                        level1: t("rgba( 0, 128, 0, 1)", !1),
                        level2: t("rgba( 0, 0, 255, 1)", !1),
                        level3: t("rgba( 255, 0, 255, 1)", !1),
                        level4: t("rgba( 0, 128, 255, 1)", !0),
                        level5: t("rgba( 255, 0, 0, 1)", !0),
                        level6: t("rgba( 0, 128, 0, 1)", !0),
                        level7: t("rgba( 0, 0, 255, 1)", !0),
                        level8: t("rgba( 255, 0, 255, 1)", !0)
                    }), void 0 === TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"] && (TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"] = {
                        styles: {
                            upLine: {
                                visible: !0,
                                color: i(y, 70),
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1
                            },
                            downLine: {
                                visible: !0,
                                color: i(y, 70),
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1
                            },
                            baseLine: {
                                visible: !0,
                                color: i(E, 70),
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1
                            },
                            extendLines: !0,
                            showPearsons: !0,
                            backgroundColor: "rgba( 153, 21, 21, 0.3)",
                            transparency: 70
                        }
                    }), void 0 === TradingView.defaultProperties["study_Compare@tv-basicstudies"] && (TradingView.defaultProperties["study_Compare@tv-basicstudies"] = {
                        minTick: "default"
                    }), void 0 === TradingView.defaultProperties["study_Overlay@tv-basicstudies"]) {
                    TradingView.defaultProperties["study_Overlay@tv-basicstudies"] = {
                        style: a.STYLE_LINE,
                        allowExtendTimeScale: !1,
                        showPriceLine: !1,
                        minTick: "default",
                        candleStyle: {
                            upColor: "rgba( 107, 165, 131, 1)",
                            downColor: "rgba( 215, 84, 66, 1)",
                            drawWick: !0,
                            drawBorder: !0,
                            drawBody: !0,
                            borderColor: "rgba( 55, 134, 88, 1)",
                            borderUpColor: "rgba( 34, 84, 55, 1)",
                            borderDownColor: "rgba( 91, 26, 19, 1)",
                            wickColor: "rgba( 115, 115, 117, 1)",
                            wickUpColor: "rgba( 115, 115, 117, 1)",
                            wickDownColor: "rgba( 115, 115, 117, 1)",
                            barColorsOnPrevClose: !1
                        },
                        hollowCandleStyle: {
                            upColor: "rgba( 107, 165, 131, 1)",
                            downColor: "rgba( 215, 84, 66, 1)",
                            drawWick: !0,
                            drawBorder: !0,
                            drawBody: !0,
                            borderColor: "rgba( 55, 134, 88, 1)",
                            borderUpColor: "rgba( 34, 84, 55, 1)",
                            borderDownColor: "rgba( 91, 26, 19, 1)",
                            wickColor: "rgba( 115, 115, 117, 1)",
                            wickUpColor: "rgba( 115, 115, 117, 1)",
                            wickDownColor: "rgba( 115, 115, 117, 1)",
                            barColorsOnPrevClose: !1
                        },
                        barStyle: {
                            upColor: "rgba( 107, 165, 131, 1)",
                            downColor: "rgba( 215, 84, 66, 1)",
                            barColorsOnPrevClose: !1,
                            dontDrawOpen: !1,
                            thinBars: !0
                        },
                        lineStyle: {
                            color: "#FF6D00",
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            linewidth: 2,
                            priceSource: "close",
                            styleType: a.STYLE_LINE_TYPE_SIMPLE
                        },
                        areaStyle: {
                            color1: y,
                            color2: y,
                            linecolor: y,
                            linestyle: CanvasEx.LINESTYLE_SOLID,
                            linewidth: 2,
                            priceSource: "close",
                            transparency: 95
                        },
                        baselineStyle: {
                            baselineColor: "rgba( 117, 134, 150, 1)",
                            topFillColor1: "rgba( 83, 185, 135, 0.05)",
                            topFillColor2: "rgba( 83, 185, 135, 0.05)",
                            bottomFillColor1: "rgba( 235, 77, 92, 0.05)",
                            bottomFillColor2: "rgba( 235, 77, 92, 0.05)",
                            topLineColor: "rgba( 83, 185, 135, 1)",
                            bottomLineColor: "rgba( 235, 77, 92, 1)",
                            topLineWidth: 2,
                            bottomLineWidth: 2,
                            priceSource: "close",
                            transparency: 50,
                            baseLevelPercentage: 50
                        },
                        styles: {
                            open: {
                                visible: !0,
                                color: "rgba( 255, 0, 0, 1)",
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1,
                                plottype: u.Line,
                                histogramBase: 0
                            },
                            high: {
                                visible: !0,
                                color: "rgba( 255, 0, 0, 1)",
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1,
                                plottype: u.Line,
                                histogramBase: 0
                            },
                            low: {
                                visible: !0,
                                color: "rgba( 255, 0, 0, 1)",
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1,
                                plottype: u.Line,
                                histogramBase: 0
                            },
                            close: {
                                visible: !0,
                                color: "rgba( 255, 0, 0, 1)",
                                linestyle: CanvasEx.LINESTYLE_SOLID,
                                linewidth: 1,
                                plottype: u.Line,
                                histogramBase: 0
                            }
                        }
                    }
                }
                for (var R = e.split("."), B = TradingView.defaultProperties, N = 0; N < R.length; N++) B && (B = B[R[N]]);
                return null != B ? TradingView.clone(B) : {}
            };

            function F(e, t, r, o, n) {
                if (o)
                    for (var i in o) {
                        var s = i.split("."),
                            a = c(s[0]),
                            l = void 0 !== n && n === s[0];
                        0 !== s.length && l && (a = c((s = s.slice(1))[0])), 0 !== s.length && e.hasOwnProperty(a) ? u(e, s, o[i]) || d(i) : l && d(i)
                    }

                function c(e) {
                    return t && t[e] ? t[e] : e
                }

                function u(e, t, r, o) {
                    var n = c(t[0]);
                    return !!e.hasOwnProperty(n) && (t.length > 1 ? u(e[n], t.slice(1), r) : (e[n] && e[n].setValue ? e[n].setValue(r) : e[n] = r, !0))
                }

                function d(e) {
                    r || b.logWarn("Path `" + e + "` does not exist.")
                }
            }

            function I(e, t, r, o) {
                window.__defaultsOverrides && F(e, t, r, window.__defaultsOverrides, o)
            }

            function D() {
                var e = /^linetool.+/;
                Object.keys(TradingView.defaultProperties).forEach((function(t) {
                    e.test(t) && I(TradingView.defaultProperties[t], null, !1, t)
                }))
            }

            function O(e, t) {
                return t ? function(e, t) {
                    var r = P(e);
                    if (!window._UNIT_TESTS) {
                        var o = TradingView.clone(TVSettings.getJSON(e, null));
                        if (function(e) {
                                var t = new Set(["linetoolregressiontrend"]);
                                return e.startsWith("study_") || t.has(e)
                            }(e) && o && function(e) {
                                if (!e) return !1;
                                e = e.toString();
                                var t = new RegExp("\\d+").exec(e);
                                return null !== t && t[0] === e
                            }(o.version)) {
                            var n = o.inputs,
                                i = t.updateStudyInputs(o.id, o.version, "last", n, null);
                            o.inputs = i;
                            var s = t.updateStudyState(o, o);
                            o = s
                        }
                        TradingView.merge(r, o)
                    }
                    return r
                }(e, t) : function(e) {
                    var t = P(e);
                    if (!window._UNIT_TESTS) {
                        var r = TradingView.clone(TVSettings.getJSON(e, null));
                        r && TradingView.merge(t, r)
                    }
                    return t
                }(e)
            }
            O.create = function(e, t) {
                if (t) {
                    var r = P(e);
                    TradingView.defaultProperties[e] = Object.assign(t, r)
                }
            }, O.remove = function(e) {
                TradingView.defaultProperties[e] = void 0
            }, TradingView.saveDefaults = function(e, t) {
                TVSettings.setJSON(e, t)
            }, TradingView.factoryDefaults = P, window.applyDefaultOverridesToLinetools = D, window.applyDefaultsOverrides = I, window.applyPropertiesOverrides = F, window.defaults = O, t.applyDefaultOverridesToLinetools = D, t.applyDefaultsOverrides = I, t.applyPropertiesOverrides = F, t.defaults = O, t.factoryDefaults = P, t.saveDefaults = TradingView.saveDefaults
        },
        10934: (e, t, r) => {
            "use strict";
            r.d(t, {
                monthFormatFunction: () => p,
                dateFormatFunctions: () => f,
                availableDateFormats: () => g,
                defaultDateFormat: () => m
            });
            var o = r(8107),
                n = r(11228);
            const i = {
                    1: () => (0, o.t)("Jan"),
                    2: () => (0, o.t)("Feb"),
                    3: () => (0, o.t)("Mar"),
                    4: () => (0, o.t)("Apr"),
                    5: () => (0, o.t)("May", {
                        context: "short"
                    }),
                    6: () => (0, o.t)("Jun"),
                    7: () => (0, o.t)("Jul"),
                    8: () => (0, o.t)("Aug"),
                    9: () => (0, o.t)("Sep"),
                    10: () => (0, o.t)("Oct"),
                    11: () => (0, o.t)("Nov"),
                    12: () => (0, o.t)("Dec")
                },
                s = (e, t) => (t ? e.getMonth() : e.getUTCMonth()) + 1,
                a = (e, t) => t ? e.getFullYear() : e.getUTCFullYear(),
                l = (e, t) => (0, n.numberToStringWithLeadingZero)(((e, t) => t ? e.getDate() : e.getUTCDate())(e, t), 2),
                c = (e, t) => i[s(e, t)](),
                u = (e, t) => (0, n.numberToStringWithLeadingZero)(s(e, t), 2),
                d = (e, t) => (0, n.numberToStringWithLeadingZero)(a(e, t) % 100, 2),
                h = (e, t) => (0, n.numberToStringWithLeadingZero)(a(e, t), 4),
                p = (e, t) => c(e, t),
                f = {
                    "dd MMM 'yy": (e, t) => `${l(e,t)} ${c(e,t)} '${d(e,t)}`,
                    "MMM dd, yyyy": (e, t) => `${c(e,t)} ${l(e,t)}, ${h(e,t)}`,
                    "MMM dd": (e, t) => `${c(e,t)} ${l(e,t)}`,
                    "yyyy-MM-dd": (e, t) => `${h(e,t)}-${u(e,t)}-${l(e,t)}`,
                    "yy-MM-dd": (e, t) => `${d(e,t)}-${u(e,t)}-${l(e,t)}`,
                    "yy/MM/dd": (e, t) => `${d(e,t)}/${u(e,t)}/${l(e,t)}`,
                    "yyyy/MM/dd": (e, t) => `${h(e,t)}/${u(e,t)}/${l(e,t)}`,
                    "dd-MM-yyyy": (e, t) => `${l(e,t)}-${u(e,t)}-${h(e,t)}`,
                    "dd-MM-yy": (e, t) => `${l(e,t)}-${u(e,t)}-${d(e,t)}`,
                    "dd/MM/yy": (e, t) => `${l(e,t)}/${u(e,t)}/${d(e,t)}`,
                    "dd/MM/yyyy": (e, t) => `${l(e,t)}/${u(e,t)}/${h(e,t)}`,
                    "MM/dd/yy": (e, t) => `${u(e,t)}/${l(e,t)}/${d(e,t)}`,
                    "MM/dd/yyyy": (e, t) => `${u(e,t)}/${l(e,t)}/${h(e,t)}`
                },
                g = Object.keys(f),
                m = () => -1 !== ["ja", "ko", "zh", "zh_TW"].indexOf(window.language || "") ? "yyyy-MM-dd" : "dd MMM 'yy"
        },
        80790: (e, t, r) => {
            "use strict";
            r.d(t, {
                NumericFormatter: () => i
            });
            var o = r(11228),
                n = r(93302);
            class i {
                constructor(e) {
                    this._precision = e
                }
                format(e) {
                    return (void 0 !== this._precision ? e.toFixed(this._precision) : i.formatNoE(e)).replace(".", o.formatterOptions.decimalSign)
                }
                parse(e) {
                    const t = e.replace(o.formatterOptions.decimalSign, ".");
                    let r = parseFloat(t);
                    return this._precision && (r = +r.toFixed(this._precision)), r
                }
                static formatNoE(e) {
                    if (!Number.isFinite(e)) return String(e);
                    const t = new n.Big(e);
                    return t.lt(1) ? t.toFixed() : t.toString()
                }
            }
        },
        14704: (e, t, r) => {
            "use strict";
            r.d(t, {
                PercentageFormatter: () => i
            });
            var o = r(11228),
                n = r(82755);
            class i extends o.PriceFormatter {
                constructor(e) {
                    super(e), this.type = "percentage"
                }
                state() {
                    const e = o.PriceFormatter.prototype.state.call(this);
                    return e.percent = !0, e
                }
                parse(e) {
                    return e = e.replace("%", ""), super.parse(e)
                }
                format(e, t, r, o, i = !0) {
                    const s = super.format(e, t, r, o, !1) + "%";
                    return i ? (0, n.forceLTRStr)(s) : s
                }
                static serialize(e) {
                    return e.state()
                }
                static deserialize(e) {
                    return new i(e.priceScale)
                }
            }
        },
        11228: (e, t, r) => {
            "use strict";
            r.d(t, {
                formatterOptions: () => l,
                numberToStringWithLeadingZero: () => c,
                PriceFormatter: () => u
            });
            var o = r(8107),
                n = r(31565),
                i = r(82755);
            const s = (0, r(87380).getLogger)("Chart.PriceFormatter"),
                a = new RegExp(/^(-?)[0-9]+$/),
                l = {
                    decimalSign: ".",
                    decimalSignFractional: "'"
                };

            function c(e, t) {
                if (!(0, n.isNumber)(e)) return "n/a";
                if (!(0, n.isInteger)(t)) throw new TypeError("invalid length");
                if (t < 0 || t > 16) throw new TypeError("invalid length");
                if (0 === t) return e.toString();
                return ("0000000000000000" + e.toString()).slice(-t)
            }
            class u {
                constructor(e, t, r, i) {
                    if (this.type = "price", this._formatterErrors = {
                            custom: (0, o.t)("Price format is invalid."),
                            fraction: (0, o.t)("Fraction part is invalid."),
                            secondFraction: (0, o.t)("Second fraction part is invalid.")
                        }, t || (t = 1), (0, n.isNumber)(e) && (0, n.isInteger)(e) || (e = 100), e < 0) throw new TypeError("invalid base");
                    this._priceScale = e, this._minMove = t, this._minMove2 = i, r && void 0 !== i && i > 0 && 2 !== i && 4 !== i && 8 !== i ? s.logDebug("invalid minmove2") : (this._fractional = r, this.calculateDecimal())
                }
                isFractional() {
                    return !!this._fractional
                }
                state() {
                    return {
                        fractional: this._fractional,
                        fractionalLength: this._fractionalLength,
                        minMove: this._minMove,
                        minMove2: this._minMove2,
                        priceScale: this._priceScale
                    }
                }
                calculateDecimal() {
                    if (this._fractionalLength = 0, this._priceScale > 0 && this._minMove > 0) {
                        let e = this._priceScale;
                        for (this._fractional && this._minMove2 && (e /= this._minMove2); e > 1;) e /= 10, this._fractionalLength++
                    }
                }
                format(e, t, r, o = !0, n = !0) {
                    let s, a = "";
                    return e < 0 ? (a = !1 === o ? "" : "−", e = -e) : e && !0 === t && (a = "+"), s = this._fractional ? a + this._formatAsFractional(e, r) : a + this._formatAsDecimal(e, r), n ? (0, i.forceLTRStr)(s) : s
                }
                parse(e) {
                    return e = (e = (0, i.stripLTRMarks)(e)).replace("−", "-"), this._fractional ? this._minMove2 ? this._parseAsDoubleFractional(e) : this._parseAsSingleFractional(e) : this._parseAsDecimal(e)
                }
                hasForexAdditionalPrecision() {
                    return !this._fractional && 10 === this._minMove2
                }
                static serialize(e) {
                    return e.state()
                }
                static deserialize(e) {
                    return new u(e.priceScale, e.minMove, e.fractional, e.minMove2)
                }
                _formatAsDecimal(e, t) {
                    let r;
                    t = t || 0, r = this._fractional ? Math.pow(10, this._fractionalLength || 0) : Math.pow(10, t) * this._priceScale / this._minMove;
                    const o = 1 / r;
                    let n;
                    if (r > 1) n = Math.floor(e);
                    else {
                        const t = Math.floor(Math.round(e / o) * o);
                        n = 0 === Math.round((e - t) / o) ? t : t + o
                    }
                    let i = "";
                    if (r > 1) {
                        let o = parseFloat((Math.round(e * r) - n * r).toFixed(this._fractionalLength));
                        o >= r && (o -= r, n += 1);
                        const s = void 0 !== this._fractionalLength ? this._fractionalLength : NaN;
                        i = l.decimalSign + c(parseFloat(o.toFixed(this._fractionalLength)) * this._minMove, s + t), i = this._removeEndingZeros(i, t)
                    }
                    return n.toString() + i
                }
                _getFractPart(e, t) {
                    const r = [0, 5],
                        o = [0, 2, 5, 7];
                    return 2 === t ? void 0 === r[e] ? -1 : r[e] : 4 === t ? void 0 === o[e] ? -1 : o[e] : e
                }
                _formatAsFractional(e, t) {
                    const r = this._priceScale / this._minMove;
                    let o = Math.floor(e),
                        n = t ? Math.floor(e * r) - o * r : Math.round(e * r) - o * r;
                    n === r && (n = 0, o += 1);
                    let i = "";
                    if (t) {
                        let s = (e - o - n / r) * r;
                        s = Math.round(s * Math.pow(10, t)), i = c(s, t), i = this._removeEndingZeros(i, t)
                    }
                    if (!this._fractionalLength) throw new Error("_fractionalLength is not calculated");
                    let s = "";
                    if (this._minMove2) {
                        const e = n % this._minMove2;
                        n = (n - e) / this._minMove2;
                        const t = c(n, this._fractionalLength),
                            r = this._getFractPart(e, this._minMove2);
                        s = t + l.decimalSignFractional + r
                    } else n = this._getFractPart(n, this._priceScale), s = c(n * this._minMove, this._fractionalLength);
                    return o.toString() + l.decimalSignFractional + s + i
                }
                _removeEndingZeros(e, t) {
                    for (let r = 0; r < t && "0" === e[e.length - 1]; r++) e = e.substring(0, e.length - 1);
                    return e
                }
                _parseAsDecimal(e) {
                    let t = a.exec(e);
                    if (t) {
                        const t = parseFloat(e);
                        return {
                            value: t,
                            res: !0,
                            suggest: this.format(t)
                        }
                    }
                    if (t = new RegExp("^(-?)[0-9]+\\" + l.decimalSign + "[0-9]*$").exec(e), t) {
                        const t = parseFloat(e.replace(l.decimalSign, "."));
                        return {
                            value: t,
                            res: !0,
                            suggest: this.format(t)
                        }
                    }
                    return {
                        error: this._formatterErrors.custom,
                        res: !1
                    }
                }
                _patchFractPart(e, t) {
                    const r = {
                            0: 0,
                            5: 1
                        },
                        o = {
                            0: 0,
                            2: 1,
                            5: 2,
                            7: 3
                        };
                    return 2 === t ? void 0 === r[e] ? -1 : r[e] : 4 === t ? void 0 === o[e] ? -1 : o[e] : e
                }
                _parseAsSingleFractional(e) {
                    let t = a.exec(e);
                    if (t) {
                        const t = parseFloat(e);
                        return {
                            value: t,
                            res: !0,
                            suggest: this.format(t)
                        }
                    }
                    if (t = new RegExp("^(-?)([0-9]+)\\" + l.decimalSignFractional + "([0-9]+)$").exec(e), t) {
                        const e = !!t[1],
                            r = parseInt(t[2]),
                            o = this._priceScale,
                            n = this._patchFractPart(parseInt(t[3]), o);
                        if (n >= o || n < 0) return {
                            error: this._formatterErrors.fraction,
                            res: !1
                        };
                        let i = r + n / o;
                        return e && (i = -i), {
                            value: i,
                            res: !0,
                            suggest: this.format(i)
                        }
                    }
                    return {
                        error: this._formatterErrors.custom,
                        res: !1
                    }
                }
                _parseAsDoubleFractional(e) {
                    let t = a.exec(e);
                    if (t) {
                        const t = parseFloat(e);
                        return {
                            value: t,
                            res: !0,
                            suggest: this.format(t)
                        }
                    }
                    if (t = new RegExp("^(-?)([0-9]+)\\" + l.decimalSignFractional + "([0-9]+)\\" + l.decimalSignFractional + "([0-9]+)$").exec(e), t) {
                        const e = !!t[1],
                            r = parseInt(t[2]),
                            o = void 0 !== this._minMove2 ? this._minMove2 : NaN,
                            n = this._priceScale / o,
                            i = this._minMove2,
                            s = this._patchFractPart(parseInt(t[3]), n),
                            a = this._patchFractPart(parseInt(t[4]), i);
                        if (s >= n || s < 0) return {
                            error: this._formatterErrors.fraction,
                            res: !1
                        };
                        if (void 0 !== i && a >= i || a < 0) return {
                            error: this._formatterErrors.secondFraction,
                            res: !1
                        };
                        let l = void 0 !== i ? r + s / n + a / (n * i) : NaN;
                        return e && (l = -l), {
                            value: l,
                            res: !0,
                            suggest: this.format(l)
                        }
                    }
                    return {
                        error: this._formatterErrors.custom,
                        res: !1
                    }
                }
            }
        },
        81293: (e, t, r) => {
            "use strict";
            r.d(t, {
                PLACE_HOLDER: () => a,
                NOT_AVAILABLE_VOLUME_FORMATTER: () => l,
                VolumeFormatter: () => c
            });
            var o = r(8107),
                n = r(80790),
                i = r(31565),
                s = r(75496);
            const a = "---",
                l = 1e100;
            class c {
                constructor(e) {
                    this.type = "volume", this._numericFormatter = new n.NumericFormatter, this._fractionalValues = void 0 !== e && e > 0, this._precision = e
                }
                state() {
                    return {
                        precision: this._precision
                    }
                }
                format(e, t) {
                    if (!(0, i.isNumber)(e)) return a;
                    let r = "";
                    return e < 0 ? (r = "−", e = -e) : e > 0 && t && (r = "+"), e >= l ? (0, o.t)("N/A") : (!this._fractionalValues || e >= 995 ? e = Math.round(e) : this._fractionalValues && (e = +e.toFixed(this._precision)), e < 995 ? r + this._formatNumber(e) : e < 999995 ? r + this._formatNumber(e / 1e3) + "K" : e < 999999995 ? (e = 1e3 * Math.round(e / 1e3), r + this._formatNumber(e / 1e6) + "M") : e < 999999999995 ? (e = 1e6 * Math.round(e / 1e6), r + this._formatNumber(e / 1e9) + "B") : (e = 1e9 * Math.round(e / 1e9), r + this._formatNumber(e / 1e12) + "T"))
                }
                parse(e) {
                    if ("---" === e) return {
                        error: "not a number",
                        res: !1,
                        value: NaN
                    };
                    const t = {
                            K: 1e3,
                            M: 1e6,
                            B: 1e9
                        },
                        r = e.slice(-1);
                    if (t.hasOwnProperty(r)) {
                        const o = this._numericFormatter.parse(e.slice(0, -1));
                        return (0, i.isNumber)(o) ? {
                            res: !0,
                            value: o * t[r]
                        } : {
                            error: "not a number",
                            res: !1,
                            value: NaN
                        }
                    } {
                        const t = this._numericFormatter.parse(e);
                        return (0, i.isNumber)(t) ? {
                            res: !0,
                            value: t
                        } : {
                            error: "not a number",
                            res: !1,
                            value: NaN
                        }
                    }
                }
                static serialize(e) {
                    return e.state()
                }
                static deserialize(e) {
                    return new c(e.precision)
                }
                _formatNumber(e) {
                    return this._fractionalValues && (e = (0, s.fixComputationError)(e)), this._numericFormatter.format(e).replace(/(\.[1-9]*)0+$/, (e, t) => t)
                }
            }
        },
        94209: (e, t, r) => {
            "use strict";
            var o, n;
            r.d(t, {
                    PositionPLDisplay: () => o,
                    TradingSourcesHorizontalAlignment: () => n,
                    tradingPreferencesDefault: () => i,
                    CustomSourceLayer: () => s
                }),
                function(e) {
                    e[e.Money = 0] = "Money", e[e.Pips = 1] = "Pips", e[e.Percentage = 2] = "Percentage"
                }(o || (o = {})),
                function(e) {
                    e[e.Left = 0] = "Left", e[e.Center = 1] = "Center", e[e.Right = 2] = "Right"
                }(n || (n = {}));
            const i = {
                showPositions: !1,
                positionPL: {
                    visibility: !1,
                    display: o.Money
                },
                showOrders: !1,
                showExecutions: !1,
                showReverse: !1,
                extendLeft: !1,
                horizontalAlignment: n.Right,
                lineWidth: 0,
                lineStyle: 0
            };
            var s;
            ! function(e) {
                e[e.Background = 0] = "Background", e[e.Foreground = 1] = "Foreground", e[e.Topmost = 2] = "Topmost"
            }(s || (s = {}))
        },
        2459: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                ResolutionKind: () => i,
                SpecialResolutionKind: () => s,
                Interval: () => u,
                isHour: () => h
            });
            const o = /^(\d*)([TSHDWMR])$/,
                n = /^(\d+)$/;
            var i, s;
            ! function(e) {
                e.Ticks = "ticks", e.Seconds = "seconds", e.Minutes = "minutes", e.Days = "days", e.Weeks = "weeks", e.Months = "months", e.Range = "range", e.Invalid = "invalid"
            }(i || (i = {})),
            function(e) {
                e.Hours = "hours"
            }(s || (s = {}));
            const a = {};
            a[i.Ticks] = 1e3, a[i.Seconds] = 1e3, a[i.Minutes] = 60 * a[i.Seconds], a[i.Days] = 1440 * a[i.Minutes], a[i.Weeks] = 7 * a[i.Days];
            const l = {
                    T: i.Ticks,
                    S: i.Seconds,
                    D: i.Days,
                    W: i.Weeks,
                    M: i.Months,
                    R: i.Range
                },
                c = new Set([i.Ticks, i.Seconds, i.Minutes]);
            class u {
                constructor(e, t) {
                    this._kind = i.Invalid, this._multiplier = 0, e !== i.Invalid && t > 0 && (this._kind = e, this._multiplier = t)
                }
                kind() {
                    return this._kind
                }
                multiplier() {
                    return this._multiplier
                }
                isValid() {
                    return this.kind() !== i.Invalid && this.multiplier() > 0
                }
                isDWM() {
                    return this.isValid() && !this.isRange() && !this.isIntraday() && !this.isTicks()
                }
                isIntraday() {
                    const e = c.has(this.kind());
                    return this.isValid() && e
                }
                isSeconds() {
                    return this.kind() === i.Seconds
                }
                isMinutes() {
                    return this.kind() === i.Minutes
                }
                isMinuteHours() {
                    return this.kind() === i.Minutes && h(this.multiplier())
                }
                isDays() {
                    return this.kind() === i.Days
                }
                isWeeks() {
                    return this.kind() === i.Weeks
                }
                isMonths() {
                    return this.kind() === i.Months
                }
                isRange() {
                    return this.kind() === i.Range
                }
                isTicks() {
                    return this.kind() === i.Ticks
                }
                isTimeBased() {
                    return !this.isRange()
                }
                letter() {
                    return this.isValid() && this.kind() !== i.Minutes ? this.kind()[0].toUpperCase() : ""
                }
                value() {
                    return this.isValid() ? this.kind() === i.Minutes ? this.multiplier() + "" : this.multiplier() + this.letter() : ""
                }
                isEqualTo(e) {
                    if (!(e instanceof u)) throw new Error("Argument is not an Interval");
                    return !(!this.isValid() || !e.isValid()) && (this.kind() === e.kind() && this.multiplier() === e.multiplier())
                }
                inMilliseconds(e = Date.now()) {
                    if (!this.isValid() || this.isRange()) return NaN;
                    if (this.isMonths()) {
                        const t = new Date(e);
                        t.setUTCMonth(t.getUTCMonth() + (this.multiplier() || 1));
                        return +t - e
                    }
                    const t = this.multiplier();
                    return a[this.kind()] * t
                }
                static isEqual(e, t) {
                    return e === t || u.parse(e).isEqualTo(u.parse(t))
                }
                static parseExt(e) {
                    e = (e + "").toUpperCase().split(",")[0];
                    let t = o.exec(e);
                    return null !== t ? "H" === t[2] ? {
                        interval: new u(i.Minutes, 60 * d(t[1])),
                        guiResolutionKind: s.Hours
                    } : {
                        interval: new u(l[t[2]], d(t[1])),
                        guiResolutionKind: l[t[2]]
                    } : (t = n.exec(e), null !== t ? {
                        interval: new u(i.Minutes, d(t[1])),
                        guiResolutionKind: i.Minutes
                    } : {
                        interval: new u(i.Invalid, 0),
                        guiResolutionKind: i.Invalid
                    })
                }
                static parse(e) {
                    return u.parseExt(e).interval
                }
                static kind(e) {
                    return u.parse(e).kind()
                }
                static isValid(e) {
                    return u.parse(e).isValid()
                }
                static isDWM(e) {
                    return u.parse(e).isDWM()
                }
                static isIntraday(e) {
                    return u.parse(e).isIntraday()
                }
                static isSeconds(e) {
                    return u.parse(e).isSeconds()
                }
                static isMinutes(e) {
                    return u.parse(e).isMinutes()
                }
                static isMinuteHours(e) {
                    return u.parse(e).isMinuteHours()
                }
                static isDays(e) {
                    return u.parse(e).isDays()
                }
                static isWeeks(e) {
                    return u.parse(e).isWeeks()
                }
                static isMonths(e) {
                    return u.parse(e).isMonths()
                }
                static isRange(e) {
                    return u.parse(e).isRange()
                }
                static isTicks(e) {
                    return u.parse(e).isTicks()
                }
                static isTimeBased(e) {
                    return u.parse(e).isTimeBased()
                }
                static normalize(e) {
                    const t = u.parse(e);
                    return t.isValid() ? t.value() : null
                }
            }

            function d(e) {
                return 0 === e.length ? 1 : parseInt(e, 10)
            }

            function h(e) {
                return e >= 60 && !(e % 60)
            }
        },
        91491: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    LineToolBarsPatternMode: () => o
                }),
                function(e) {
                    e[e.Bars = 0] = "Bars", e[e.Line = 1] = "Line", e[e.OpenClose = 2] = "OpenClose", e[e.LineOpen = 3] = "LineOpen", e[e.LineHigh = 4] = "LineHigh", e[e.LineLow = 5] = "LineLow", e[e.LineHL2 = 6] = "LineHL2"
                }(o || (o = {}))
        },
        53995: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    LineToolPitchforkStyle: () => o
                }),
                function(e) {
                    e[e.Original = 0] = "Original", e[e.Schiff = 1] = "Schiff", e[e.Inside = 2] = "Inside", e[e.Schiff2 = 3] = "Schiff2"
                }(o || (o = {}))
        },
        95215: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    MagnetMode: () => o
                }),
                function(e) {
                    e[e.WeakMagnet = 0] = "WeakMagnet", e[e.StrongMagnet = 1] = "StrongMagnet"
                }(o || (o = {}))
        },
        98815: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    LineEnd: () => o
                }),
                function(e) {
                    e[e.Normal = 0] = "Normal", e[e.Arrow = 1] = "Arrow", e[e.Circle = 2] = "Circle"
                }(o || (o = {}))
        },
        93828: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    StatsPosition: () => o
                }),
                function(e) {
                    e[e.Left = 0] = "Left", e[e.Center = 1] = "Center", e[e.Right = 2] = "Right"
                }(o || (o = {}))
        },
        57086: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    PriceAxisLastValueMode: () => o
                }),
                function(e) {
                    e[e.LastPriceAndPercentageValue = 0] = "LastPriceAndPercentageValue", e[e.LastValueAccordingToScale = 1] = "LastValueAccordingToScale"
                }(o || (o = {}))
        },
        97786: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                STATUS_OFFLINE: () => o,
                STATUS_RESOLVING: () => n,
                STATUS_LOADING: () => i,
                STATUS_READY: () => s,
                STATUS_INVALID_SYMBOL: () => a,
                STATUS_SNAPSHOT: () => l,
                STATUS_EOD: () => c,
                STATUS_PULSE: () => u,
                STATUS_DELAYED: () => d,
                STATUS_DELAYED_STREAMING: () => h,
                STATUS_NO_BARS: () => p,
                STATUS_REPLAY: () => f,
                STATUS_ERROR: () => g,
                SERIES_STATUS_TEXT: () => m,
                STYLE_LINE_TYPE_MARKERS: () => _,
                STYLE_LINE_TYPE_STEP: () => v,
                STYLE_LINE_TYPE_SIMPLE: () => b,
                STYLE_BARS: () => y,
                STYLE_CANDLES: () => w,
                STYLE_LINE: () => S,
                STYLE_AREA: () => C,
                STYLE_RENKO: () => k,
                STYLE_KAGI: () => E,
                STYLE_PNF: () => x,
                STYLE_PB: () => T,
                STYLE_HEIKEN_ASHI: () => A,
                STYLE_HOLLOW_CANDLES: () => M,
                STYLE_BASELINE: () => L,
                STYLE_RANGE: () => P,
                STYLE_HILO: () => F,
                STYLE_SHORT_NAMES: () => I,
                SYMBOL_STRING_DATA: () => D
            });
            const o = 0,
                n = 1,
                i = 2,
                s = 3,
                a = 4,
                l = 5,
                c = 6,
                u = 7,
                d = 8,
                h = 9,
                p = 10,
                f = 11,
                g = 12,
                m = {
                    [o]: "connecting",
                    [n]: "loading",
                    [i]: "loading",
                    [s]: "realtime",
                    [a]: "invalid",
                    [l]: "snapshot",
                    [c]: "endofday",
                    [u]: "endofday",
                    [d]: "delayed",
                    [h]: "delayed_streaming",
                    [p]: "forbidden",
                    [f]: "replay",
                    [g]: "error"
                },
                _ = 0,
                v = 1,
                b = 2,
                y = 0,
                w = 1,
                S = 2,
                C = 3,
                k = 4,
                E = 5,
                x = 6,
                T = 7,
                A = 8,
                M = 9,
                L = 10,
                P = 11,
                F = 12,
                I = {
                    0: "bar",
                    1: "candle",
                    9: "hollowCandle",
                    2: "line",
                    3: "area",
                    4: "renko",
                    7: "pb",
                    5: "kagi",
                    6: "pnf",
                    8: "ha",
                    10: "baseline",
                    11: "range",
                    12: "hilo"
                },
                D = {
                    4: {
                        type: "BarSetRenko@tv-prostudies",
                        basicStudyVersion: 40
                    },
                    7: {
                        type: "BarSetPriceBreak@tv-prostudies",
                        basicStudyVersion: 34
                    },
                    5: {
                        type: "BarSetKagi@tv-prostudies",
                        basicStudyVersion: 34
                    },
                    6: {
                        type: "BarSetPnF@tv-prostudies",
                        basicStudyVersion: 34
                    },
                    8: {
                        type: "BarSetHeikenAshi@tv-basicstudies",
                        basicStudyVersion: 60
                    },
                    11: {
                        type: "BarSetRange@tv-basicstudies",
                        basicStudyVersion: 72
                    }
                }
        },
        20554: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                isRequiringRestartSeriesStyles: () => w,
                isRangeBasedStyle: () => S,
                isRangeStyle: () => C,
                isTimeBasedStyle: () => k,
                isValidStyle: () => E,
                isSingleValueBasedStyle: () => x,
                setLastUsedStyle: () => T,
                getLastUsedStyle: () => A,
                getLastUsedSingleValueBasedStyle: () => M,
                getDefaultStyle: () => L,
                getChartStyleByResolution: () => P,
                chartStyleStudyId: () => F,
                preparePriceAxisProperties: () => I,
                hasProjection: () => O,
                isPriceSourceStyle: () => R,
                getSeriesPriceFormattingState: () => B,
                createSeriesFormatter: () => N,
                symbolCurrencyConvertible: () => $,
                symbolCurrency: () => j,
                symbolOriginalCurrency: () => W,
                symbolBaseCurrency: () => V,
                isConvertedToOtherCurrency: () => U,
                symbolUnitConvertible: () => q,
                symbolUnit: () => z,
                symbolOriginalUnit: () => H,
                isConvertedToOtherUnit: () => Y,
                symbolUnitConvertibleGroupsIfExist: () => K,
                symbolCurrentContract: () => X,
                extractSymbolNameFromSymbolInfo: () => G,
                symbolTitle: () => Q,
                displayedSymbolName: () => J,
                displayedSymbolExchange: () => Z,
                actualSymbol: () => ee,
                proSymbol: () => te,
                symbolForApi: () => re,
                isRegularSessionId: () => oe,
                isCloseBasedSymbol: () => ne,
                hasVolume: () => ie,
                isEconomicsSymbol: () => se
            });
            var o = r(42098),
                n = r(97786),
                i = r(2459),
                s = r(11228),
                a = r(18277),
                l = r(98006),
                c = r(16282),
                u = r(81293),
                d = r(14704);
            const h = (0, l.isFeatureEnabled)("unit_conversion"),
                p = a.enabled("pay_attention_to_ticker_not_symbol"),
                f = a.enabled("uppercase_instrument_names"),
                g = a.enabled("charting_library_single_symbol_request"),
                m = a.enabled("use_ticker_on_symbol_info_update"),
                _ = [4, 5, 6, 7, 8],
                v = [4, 5, 6, 7, 8, 11],
                b = [0, 1, 9, 2, 3, 10],
                y = [2, 10, 3];

            function w(e) {
                return -1 !== _.indexOf(e)
            }

            function S(e) {
                return -1 !== v.indexOf(e)
            }

            function C(e) {
                return 11 === e
            }

            function k(e) {
                return -1 !== b.indexOf(e)
            }

            function E(e) {
                return S(e) || k(e)
            }

            function x(e) {
                switch (e) {
                    case 3:
                    case 10:
                    case 2:
                        return !0;
                    default:
                        return !1
                }
            }

            function T(e, t) {
                E(e) && (11 !== e && o.setValue("chart.lastUsedStyle", e), ne(t) && x(e) && o.setValue("chart.lastUsedSingleValueBasedStyle", e))
            }

            function A() {
                const e = o.getInt("chart.lastUsedStyle");
                return void 0 === e ? 1 : e
            }

            function M() {
                const e = o.getInt("chart.lastUsedSingleValueBasedStyle");
                return void 0 === e ? 2 : e
            }

            function L(e) {
                return e ? 11 : 1
            }

            function P(e, t) {
                const r = C(t),
                    o = i.Interval.isRange(e);
                return !r && o ? L(!0) : r && !o ? L(!1) : t
            }

            function F(e, t) {
                const r = n.SYMBOL_STRING_DATA[e];
                return void 0 === r ? null : t ? `${r.type}-${r.basicStudyVersion}` : r.type
            }

            function I(e) {
                const t = e.priceAxisProperties,
                    r = t.lockScale.value(),
                    o = 6 === e.style.value();
                (o || r) && (t.log.setValue(!1), t.percentage.setValue(!1)), t.logDisabled.setValue(!(!o && !r)), t.percentageDisabled.setValue(!(!o && !r))
            }
            const D = [4, 7, 5, 6];

            function O(e) {
                return -1 !== D.indexOf(e)
            }

            function R(e) {
                return y.includes(e)
            }

            function B(e, t = "default", r = !1) {
                let o, n, i = 100,
                    s = 1;
                if ("default" === t) null != e && (i = e.pricescale, s = e.minmov, o = e.fractional, n = e.minmove2);
                else {
                    let e = t.split(",");
                    3 !== e.length && (e = ["100", "1", "false"]), i = parseInt(e[0]), s = parseInt(e[1]), o = "true" === e[2]
                }
                return r && (s = 1), {
                    priceScale: i,
                    minMove: s,
                    fractional: o,
                    minMove2: n
                }
            }

            function N(e, t, r = !1) {
                if ("default" === t && null != e) {
                    if ("volume" === e.formatter || "volume" === e.format) return new u.VolumeFormatter(2);
                    if ("percent" === e.formatter || "percent" === e.format) return new d.PercentageFormatter(e.pricescale)
                }
                const {
                    priceScale: o,
                    minMove: n,
                    fractional: i,
                    minMove2: a
                } = B(e, t, r);
                return new s.PriceFormatter(o, n, i, a)
            }

            function $(e) {
                return null !== e && "spread" !== e.type
            }

            function j(e, t, r) {
                if (null === e) return null;
                const o = !t || r ? e.currency_id : e.currency_code;
                return void 0 === o || "" === o ? null : o
            }

            function W(e, t) {
                return (t ? e.original_currency_code : e.original_currency_id) || j(e, t)
            }

            function V(e) {
                return e.base_currency_id || null
            }

            function U(e) {
                return !(null === e || !$(e)) && (void 0 !== e.original_currency_id && e.original_currency_id !== e.currency_id)
            }

            function q(e) {
                return h && null !== e && "spread" !== e.type
            }

            function z(e) {
                if (null === e || !h) return null;
                const t = e.unit_id;
                return void 0 === t || "" === t ? null : t
            }

            function H(e) {
                return h ? e.original_unit_id || z(e) : null
            }

            function Y(e) {
                return !(null === e || !q(e)) && (void 0 !== e.original_unit_id && e.original_unit_id !== e.unit_id)
            }

            function K(e) {
                return null !== e && q(e) ? e.unit_conversion_types || null : []
            }

            function X(e) {
                return "futures" === e.type && e.front_contract || null
            }

            function G(e, t) {
                let r = e && (e.pro_name || e.full_name || e.name);
                return g && t ? r = t : m && e && e.ticker && (r = e.ticker), f && r && (r = r.toUpperCase()), r
            }

            function Q(e, t, r = "exchange") {
                return t ? e.name : `${e.name}, ${e[r]}`
            }

            function J(e) {
                let t = e && (X(e) || e.name) || "";
                return t.length > 40 && (t = t.substring(0, 37) + "..."), t.trim()
            }

            function Z(e) {
                const t = e ? e.exchange : "";
                return f ? t.toUpperCase() : t
            }

            function ee(e, t) {
                return null !== e ? e.full_name : t
            }

            function te(e, t) {
                return null !== e ? e.pro_name : t
            }

            function re(e, t) {
                return p && e ? (0, c.ensureDefined)(e.ticker) : ee(e, t)
            }

            function oe(e) {
                return "regular" === e || "us_regular" === e
            }

            function ne(e) {
                return "c" === (null == e ? void 0 : e.visible_plots_set)
            }

            function ie(e) {
                return void 0 !== e.visible_plots_set ? "ohlcv" === e.visible_plots_set : !e.has_no_volume
            }

            function se(e) {
                return "ECONOMICS" === e.listed_exchange
            }
        },
        42461: (e, t, r) => {
            "use strict";
            r.d(t, {
                sessionsPreferencesDefault: () => n
            });
            var o = r(50214);
            const n = {
                graphics: {
                    backgrounds: {
                        outOfSession: {
                            color: o.colorsPalette["color-tv-blue-500"],
                            transparency: 92,
                            visible: !1
                        },
                        preMarket: {
                            color: "#FF9800",
                            transparency: 92,
                            visible: !1
                        },
                        postMarket: {
                            color: o.colorsPalette["color-tv-blue-500"],
                            transparency: 92,
                            visible: !1
                        }
                    },
                    vertlines: {
                        sessBreaks: {
                            color: "#4985e7",
                            style: 2,
                            visible: !1,
                            width: 1
                        }
                    }
                }
            }
        },
        93441: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    StoriesTimeLineItemType: () => o
                }),
                function(e) {
                    e[e.Image = 0] = "Image", e[e.Emoji = 1] = "Emoji"
                }(o || (o = {}))
        },
        55782: (e, t, r) => {
            "use strict";
            var o, n;

            function i(e) {
                return "line" === e.type
            }

            function s(e) {
                return "shapes" === e.type
            }

            function a(e) {
                return "chars" === e.type
            }

            function l(e) {
                return "arrows" === e.type
            }

            function c(e) {
                return "dataoffset" === e.type
            }

            function u(e) {
                return "ohlc_open" === e.type
            }

            function d(e) {
                return "ohlc_high" === e.type
            }

            function h(e) {
                return "ohlc_low" === e.type
            }

            function p(e) {
                return "ohlc_close" === e.type
            }

            function f(e) {
                return u(e) || d(e) || h(e) || p(e)
            }

            function g(e) {
                return "colorer" === e.type
            }

            function m(e) {
                return "bar_colorer" === e.type
            }

            function _(e) {
                return "bg_colorer" === e.type
            }

            function v(e) {
                return "text_colorer" === e.type
            }

            function b(e) {
                return "ohlc_colorer" === e.type
            }

            function y(e) {
                return "wick_colorer" === e.type
            }

            function w(e) {
                return "border_colorer" === e.type
            }

            function S(e) {
                return "up_colorer" === e.type
            }

            function C(e) {
                return "down_colorer" === e.type
            }

            function k(e) {
                return "alertcondition" === e.type
            }

            function E(e) {
                return "Plot" !== e
            }

            function x(e) {
                return "ohlc_bars" === e.plottype
            }

            function T(e) {
                return "ohlc_candles" === e.plottype
            }

            function A(e) {
                return g(e) || m(e) || _(e) || c(e) || b(e) || k(e) || S(e) || C(e) || w(e) || y(e) || v(e)
            }

            function M(e) {
                return g(e) || v(e) || m(e) || c(e) || b(e) || y(e) || w(e) || S(e) || C(e) || k(e)
            }
            r.r(t), r.d(t, {
                    LineStudyPlotStyle: () => o,
                    isLinePlot: () => i,
                    isShapesPlot: () => s,
                    isCharsPlot: () => a,
                    isArrowsPlot: () => l,
                    isDataOffsetPlot: () => c,
                    isOhlcOpenPlot: () => u,
                    isOhlcHighPlot: () => d,
                    isOhlcLowPlot: () => h,
                    isOhlcClosePlot: () => p,
                    isOhlcPlot: () => f,
                    isColorerPlot: () => g,
                    isBarColorerPlot: () => m,
                    isBgColorerPlot: () => _,
                    isTextColorerPlot: () => v,
                    isOhlcColorerPlot: () => b,
                    isCandleWickColorerPlot: () => y,
                    isCandleBorderColorerPlot: () => w,
                    isUpColorerPlot: () => S,
                    isDownColorerPlot: () => C,
                    isAlertConditionPlot: () => k,
                    isPlotTitleDefined: () => E,
                    isOhlcPlotStyleBars: () => x,
                    isOhlcPlotStyleCandles: () => T,
                    PlotSymbolSize: () => n,
                    isPlotWithTechnicalValues: () => A,
                    isNonVisualPlot: () => M
                }),
                function(e) {
                    e[e.Line = 0] = "Line", e[e.Histogram = 1] = "Histogram", e[e.Cross = 3] = "Cross", e[e.Area = 4] = "Area", e[e.Columns = 5] = "Columns", e[e.Circles = 6] = "Circles", e[e.LineWithBreaks = 7] = "LineWithBreaks", e[e.AreaWithBreaks = 8] = "AreaWithBreaks", e[e.StepLine = 9] = "StepLine", e[e.StepLineWithDiamonds = 10] = "StepLineWithDiamonds"
                }(o || (o = {})),
                function(e) {
                    e.Auto = "auto", e.Tiny = "tiny", e.Small = "small", e.Normal = "normal", e.Large = "large", e.Huge = "huge"
                }(n || (n = {}))
        },
        84434: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                MINUTE_SPAN: () => o,
                HOUR_SPAN: () => n,
                DAY_SPAN: () => i,
                WEEK_SPAN: () => s,
                MONTH_SPAN: () => a,
                YEAR_SPAN: () => l,
                DEFAULT_BAR_SPACING: () => c
            });
            const o = 20,
                n = 30,
                i = 40,
                s = 50,
                a = 60,
                l = 70,
                c = 6
        },
        77670: (e, t, r) => {
            r(95355).setClasses();
            var o = r(95498).whenDocumentReady,
                n = r(25443).initGA,
                i = r(43080).handleTVLinksClick;
            o(() => {
                n(), i()
            })
        },
        16191: (e, t, r) => {
            "use strict";
            r(77670), r(18184), r(15634), r(50450);
            var o = r(94970),
                n = r(42098),
                i = r.n(n),
                s = (r(68421), r(8107)),
                a = (r(34131), r(87780)),
                l = r(61424);
            r(70978), r(28741);
            r(18184);
            var c = r(28788);
            var u = r(49617),
                d = r(53808);

            function h(e, t) {
                return Array.isArray(e) && Array.isArray(t) ? function(e, t) {
                    const r = [...e, ...t];
                    return [Math.min(...r), Math.max(...r)]
                }(e, t) : "string" != typeof e ? function(e, t) {
                    return e.operator !== t.operator ? null : "greater" === t.operator ? {
                        operator: e.operator,
                        value: Math.min(t.value, e.value)
                    } : {
                        operator: e.operator,
                        value: Math.max(e.value, t.value)
                    }
                }(e, t) : e === t ? e : null
            }
            const p = {
                    forex: {
                        top_gainers: (0, s.t)("Rising pairs"),
                        top_losers: (0, s.t)("Falling pairs")
                    },
                    default: {
                        top_gainers: (0, s.t)("Top gainers"),
                        top_losers: (0, s.t)("Top losers")
                    }
                },
                f = [{
                    id: "general",
                    title: (0,
                        s.t)("General"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {}
                    }
                }, {
                    id: "most_capitalized",
                    title: (0, s.t)("Most capitalized"),
                    content: {
                        sort_field: "market_cap_basic",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        }
                    }
                }, {
                    id: "volume_leaders",
                    title: (0, s.t)("Volume leaders"),
                    adjustFilter: {
                        volume: [1]
                    },
                    content: {
                        sort_field: "volume",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "top_gainers",
                    title: p.default.top_gainers,
                    adjustFilter: {
                        change: [1]
                    },
                    content: {
                        sort_field: "change",
                        sort_direction: "desc",
                        filters: {
                            change: {
                                operator: "greater",
                                value: 0
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "top_losers",
                    title: p.default.top_losers,
                    adjustFilter: {
                        change: [0]
                    },
                    content: {
                        sort_field: "change",
                        sort_direction: "asc",
                        filters: {
                            change: {
                                operator: "less",
                                value: 0
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "ath",
                    title: (0, s.t)("All-time high"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            "High.All": {
                                operator: "eless",
                                value: "high"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "atl",
                    title: (0, s.t)("All-time low"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            "Low.All": {
                                operator: "egreater",
                                value: "low"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "high_dividend",
                    title: (0, s.t)("High-dividend"),
                    content: {
                        sort_field: "dividend_yield_recent",
                        sort_direction: "desc",
                        filters: {
                            dividend_yield_recent: {
                                operator: "greater",
                                value: 0
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "above_52wk_high",
                    title: (0, s.t)("New 52-week high"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            price_52_week_high: {
                                operator: "eless",
                                value: "high"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "below_52wk_low",
                    title: (0, s.t)("New 52-week low"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            price_52_week_low: {
                                operator: "egreater",
                                value: "low"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "monthly_high",
                    title: (0, s.t)("New monthly high"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            "High.1M": {
                                operator: "eless",
                                value: "high"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "monthly_low",
                    title: (0, s.t)("New monthly low"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            "Low.1M": {
                                operator: "egreater",
                                value: "low"
                            },
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "most_volatile",
                    title: (0, s.t)("Most volatile"),
                    adjustFilter: {
                        "Volatility.D": [1]
                    },
                    content: {
                        sort_field: "Volatility.D",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "unusual_volume",
                    title: (0, s.t)("Unusual volume"),
                    adjustFilter: {
                        relative_volume_10d_calc: [1]
                    },
                    content: {
                        sort_field: "relative_volume_10d_calc",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            relative_volume_10d_calc: null
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "overbought",
                    title: (0, s.t)("Overbought"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            RSI: {
                                operator: "greater",
                                value: 70
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "oversold",
                    title: (0, s.t)("Oversold"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            RSI: {
                                operator: "less",
                                value: 30
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "outperforming_SMA50",
                    title: (0, s.t)("Outperforming SMA50"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            SMA50: {
                                operator: "less",
                                value: "close"
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "underperforming_SMA50",
                    title: (0, s.t)("Underperforming SMA50"),
                    content: {
                        sort_field: "name",
                        sort_direction: "asc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            SMA50: {
                                operator: "greater",
                                value: "close"
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "earnings_this_week",
                    title: (0, s.t)("Earnings this week"),
                    content: {
                        sort_field: "market_cap_basic",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            earnings_release_next_date: null
                        }
                    }
                }, {
                    id: "pre_market_gainers",
                    title: (0, s.t)("Pre-market gainers"),
                    adjustFilter: {
                        premarket_change: [1]
                    },
                    content: {
                        sort_field: "premarket_change",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            premarket_change: {
                                operator: "greater",
                                value: 0
                            }
                        },
                        options: {
                            active_symbols_only: !0
                        }
                    }
                }, {
                    id: "after_hours_gainers",
                    title: (0, s.t)("After hours gainers"),
                    adjustFilter: {
                        postmarket_volume: [1]
                    },
                    content: {
                        sort_field: "postmarket_volume",
                        sort_direction: "desc",
                        filters: {
                            is_primary: {
                                operator: "equal",
                                value: !0
                            },
                            postmarket_volume: {
                                operator: "greater",
                                value: 0
                            }
                        }
                    }
                }];

            function g(e) {
                f.forEach(t => {
                    if (t.disabled = !1, t.id in c.marketFilterValues.america)
                        for (const e in c.marketFilterValues.america[t.id]) t.content.filters[e] = c.marketFilterValues.america[t.id][e];
                    (t => {
                        ["forex", "crypto"].includes(e[0]) || e.includes("brazil") ? delete t.content.filters.name : t.content.filters.name = ["common", "dr", "etf"], 1 === e.length && "america" === e[0] ? t.content.filters.exchange = ["NYSE", "NASDAQ", "AMEX"] : delete t.content.filters.exchange;
                        const r = [];
                        for (const i of e) {
                            const e = c.marketFilterValues[i];
                            if (e && t.id in e)
                                if (t.disabled || null !== e[t.id]) {
                                    const i = e[t.id];
                                    for (const e in i) {
                                        const s = i[e];
                                        if (null === s || (o = t.content.filters[e], n = s, Object.prototype.toString.call(o) !== Object.prototype.toString.call(n))) delete t.content.filters[e], r.push(e);
                                        else if (!r.includes(e) && e in t.content.filters) {
                                            const o = h(t.content.filters[e], s);
                                            o ? t.content.filters[e] = o : (delete t.content.filters[e], r.push(e))
                                        } else t.content.filters[e] = s
                                    }
                                } else t.disabled = !0
                        }
                        var o, n;
                        "forex" === e[0] && (p.forex[t.id] ? t.title = p.forex[t.id] : p.default[t.id] && (t.title = p.default[t.id]))
                    })(t), "general" === t.id && (t.disabled = "forex" !== e[0] && "crypto" !== e[0]), ["pre_market_gainers", "after_hours_gainers"].includes(t.id) && (t.disabled = !0)
                })
            }
            var m = r(16290),
                _ = r(96276),
                v = r.n(_);
            r(4755);
            var b = r(68026),
                y = r(34698);
            y.themes[b.StdTheme.Light].label(), b.StdTheme.Light, y.themes[b.StdTheme.Dark].label(), b.StdTheme.Dark;
            var w = r(24481);

            function S(e) {
                const t = C((0,
                        c.getMarketsByScreenerType)("stock"), e),
                    r = C((0, c.getMarketsByScreenerType)("forex"), e),
                    o = C((0, c.getMarketsByScreenerType)("crypto"), e);
                return t.concat(r).concat(o)
            }

            function C(e, t) {
                const r = (0, m.getEmbedDeprecatedExchanges)(t);
                return Object.keys(e).filter(t => {
                    if (["forex", "crypto"].includes(t)) return !0;
                    const o = e[t];
                    return !!o && (o.stocks = o.stocks.filter(e => -1 === r.indexOf(e)), 0 !== o.stocks.length)
                }).map(t => ({
                    title: e[t] ? e[t].title + (e[t].stocks.length ? ` (${e[t].stocks.join(", ")})` : "") : t,
                    value: t
                })).sort((e, t) => "america" === e.value ? -1 : "america" === t.value || e.title > t.title ? 1 : -1)
            }

            function k(e) {
                return (0, c.getUnavailableWidgetMarkets)().includes(e)
            }
            var E = r(16639),
                x = r(18277),
                T = (r(16638), r(9906), r(43755), r(97097), r(7087), r(6870), r(86227), r(46861), r(24964), r(43206), r(10090), r(74977), r(29206), r(29761), r(90268), r(78031), r(66551), r(1961), r(69954), r(95387), r(30831), r(71928)),
                A = r(59288),
                M = r(16152),
                L = r(58988);
            class P {
                constructor(e) {
                    this._coll = e
                }
                getItemByIdx(e) {
                    return this._coll.item(e)
                }
                getItems() {
                    return Array.from(this._coll)
                }
                getFirstItem() {
                    return this.getItemByIdx(0)
                }
                getLastItem() {
                    const e = this._coll.length;
                    return this.getItemByIdx(e - 1)
                }
                getItemIdx(e) {
                    return Array.prototype.findIndex.call(this._coll, t => t === e)
                }
                getLength() {
                    return this._coll.length
                }
                contains(e) {
                    return -1 !== this.getItemIdx(e)
                }
            }
            var F, I = r(26083);
            ! function(e) {
                e[e.Prev = -1] = "Prev", e[e.Next = 1] = "Next"
            }(F || (F = {}));
            class D {
                constructor(e) {
                    this._list = e.list, this._items = new P(this._list.getElementsByClassName(e.listItemClass)), this._focused = new P(this._list.getElementsByClassName(e.focusedListItemClass)), this._selected = new P(this._list.getElementsByClassName(e.selectedListItemClass)), this._cursor = new P(this._list.getElementsByClassName("cursor")), this._selectedListItemClass = e.selectedListItemClass, this._focusedListItemClass = e.focusedListItemClass, this._onSelect = e.onSelect, this._onNavigate = e.onNavigate, this._onConfirm = e.onConfirm, this._onDelete = e.onDelete, this._mouseActions = new Map, this.hotkeys = (0, I.createGroup)({
                        desc: "Selectable list"
                    }), e.modes && e.modes.forEach(t => new t({
                        selection: this,
                        localHotkeyElement: this._list,
                        globalHotkeyElement: e.globalHotkeys ? null : this._list
                    }))
                }
                selectItem(e) {
                    e.classList.add(this._selectedListItemClass)
                }
                unselectItem(e) {
                    e.classList.remove(this._selectedListItemClass)
                }
                focusItem(e) {
                    this.removeFocus(), e.classList.add(this._focusedListItemClass), this.setCursor(e)
                }
                getFocusedItemIdx() {
                    const e = this._focused.getFirstItem();
                    return e ? this._items.getItemIdx(e) : -1
                }
                getFocusedItem() {
                    return this._focused.getFirstItem()
                }
                isSelected(e) {
                    return this._selected.contains(e)
                }
                isFocused(e) {
                    return this._focused.contains(e)
                }
                isListItem(e) {
                    return this._items.contains(e)
                }
                removeSelections() {
                    this._selected.getItems().forEach(e => e.classList.remove(this._selectedListItemClass))
                }
                removeFocus() {
                    this._focused.getItems().forEach(e => e.classList.remove(this._focusedListItemClass))
                }
                move(e, t, r) {
                    const o = e ? this._items.getItemIdx(e) : -1;
                    let n;
                    n = "number" == typeof t ? this._items.getItemByIdx(this._calcNextItemIdx(o, t)) : t, n && (r(n, e), this._scrollIfNotVisible(n))
                }
                getSelectedItems() {
                    return this._selected.getItems()
                }
                getList() {
                    return this._list
                }
                getItemsCollection() {
                    return this._items
                }
                getSelectedCollection() {
                    return this._selected
                }
                setCursor(e) {
                    this.removeCursor(), e.classList.add("cursor")
                }
                removeCursor() {
                    this._cursor.getItems().forEach(e => e.classList.remove("cursor"))
                }
                getCursorItem() {
                    return this._cursor.getFirstItem()
                }
                getCursorItemIdx() {
                    const e = this.getCursorItem();
                    return e ? this._items.getItemIdx(e) : -1
                }
                onSelect(e, t) {
                    this._onSelect && this._onSelect({
                        cursor: t,
                        items: this.getSelectedItems(),
                        action: e
                    })
                }
                onNavigate(e, t) {
                    this._onNavigate && this._onNavigate({
                        cursor: e,
                        cursorIdx: this.getCursorItemIdx(),
                        items: [e],
                        action: t
                    })
                }
                onConfirm(e, t) {
                    this._onConfirm && this._onConfirm({
                        cursor: e,
                        items: [e],
                        action: t
                    })
                }
                onDelete(e, t, r) {
                    this._onDelete && this._onDelete({
                        cursor: r,
                        items: e,
                        action: t
                    })
                }
                registerMouseAction(e, t) {
                    this._mouseActions.set(e, t)
                }
                dispatchMouseEvent(e, t) {
                    const r = this._mouseActions.get(e);
                    r && r(t)
                }
                delegateClick(e) {
                    return t => {
                        if (!t.defaultPrevented) {
                            const r = this._list.contains(t.target);
                            let o = t.target;
                            for (; r && o !== this._list;) {
                                if (o && this.isListItem(o)) return void e(o);
                                o = o && o.parentElement
                            }
                        }
                    }
                }
                clear() {
                    this.removeSelections(), this.removeFocus(), this.removeCursor()
                }
                destroy() {
                    this.hotkeys.destroy(), delete this._list, delete this._items, delete this._selected, delete this._focused, delete this._cursor, delete this._mouseActions
                }
                _scrollIfNotVisible(e) {
                    const t = this._list.getBoundingClientRect(),
                        r = e.getBoundingClientRect(),
                        o = t.top,
                        n = t.bottom,
                        i = r.top,
                        s = r.bottom;
                    i < o ? this._list.scrollTop -= o - i : s > n && (this._list.scrollTop += s - n)
                }
                _calcNextItemIdx(e, t) {
                    const r = this._items.getLength() - 1;
                    let o = e + t;
                    return o < 0 && (o = r), o > r && (o = 0), o
                }
            }
            class O {
                constructor(e) {
                    this._focusNext = () => {
                        if (!this._isValidNavigation()) return;
                        const e = this._selection.getCursorItem();
                        this._selection.move(e, F.Next, this._focusItem.bind(this, "down"))
                    }, this._focusPrev = () => {
                        if (!this._isValidNavigation()) return;
                        const e = this._selection.getCursorItem();
                        this._selection.move(e, F.Prev, this._focusItem.bind(this, "up"))
                    }, this._focusFirst = () => {
                        if (!this._isValidNavigation()) return;
                        const e = this._selection.getItemsCollection().getFirstItem(),
                            t = this._selection.getFocusedItem();
                        this._selection.move(t, e, this._focusItem.bind(this, "home"))
                    }, this._focusLast = () => {
                        if (!this._isValidNavigation()) return;
                        const e = this._selection.getItemsCollection().getLastItem(),
                            t = this._selection.getFocusedItem();
                        this._selection.move(t, e, this._focusItem.bind(this, "end"))
                    }, this._selection = e.selection, this._selection.registerMouseAction("click", this._selection.delegateClick(this._focusItem.bind(this, "click"))), this._selection.hotkeys.add({
                        desc: "Focus Previous",
                        hotkey: 38,
                        handler: this._focusPrev,
                        element: e.globalHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Focus Next",
                        hotkey: 40,
                        handler: this._focusNext,
                        element: e.globalHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Focus Previous",
                        hotkey: I.Modifiers.Shift + 32,
                        handler: this._focusPrev,
                        element: e.globalHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Focus Next",
                        hotkey: 32,
                        handler: this._focusNext,
                        element: e.globalHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Focus First",
                        hotkey: 36,
                        handler: this._focusFirst,
                        element: e.globalHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Focus Last",
                        hotkey: 35,
                        handler: this._focusLast,
                        element: e.globalHotkeyElement
                    })
                }
                _focusItem(e, t) {
                    this._selection.removeSelections(), this._selection.focusItem(t), this._selection.setCursor(t), this._selection.selectItem(t), this._selection.onNavigate(t, e)
                }
                _isValidNavigation() {
                    return document.activeElement === document.body || this._selection.getList().contains(document.activeElement)
                }
            }
            class R {
                constructor(e) {
                    this._selection = e.selection, this._selection.hotkeys.add({
                        hotkey: I.Modifiers.Alt + 13,
                        handler: this._onItemKeyDown.bind(this, "alt+return"),
                        element: e.localHotkeyElement
                    }), this._selection.hotkeys.add({
                        hotkey: I.Modifiers.Alt + I.Modifiers.Shift + 13,
                        handler: this._onItemKeyDown.bind(this, "alt+return"),
                        element: e.localHotkeyElement
                    })
                }
                _onItemKeyDown(e, t) {
                    const r = this._selection.getCursorItem();
                    r && this._selection.onConfirm(r, e)
                }
            }
            class B {
                constructor(e) {
                    this._selection = e.selection, this._selection.registerMouseAction("shift+click", this._selection.delegateClick(this._onItemClick.bind(this, "shift+click"))), this._selection.hotkeys.add({
                        desc: "Extend Selection Down",
                        hotkey: I.Modifiers.Shift + 40,
                        handler: this._nextRangeItem.bind(this, "shift+down"),
                        element: e.localHotkeyElement
                    }), this._selection.hotkeys.add({
                        desc: "Extend Selection Up",
                        hotkey: I.Modifiers.Shift + 38,
                        handler: this._prevRangeItem.bind(this, "shift+up"),
                        element: e.localHotkeyElement
                    })
                }
                _nextRangeItem(e) {
                    const t = this._selection.getItemsCollection(),
                        r = this._selection.getCursorItem();
                    this._selection.getCursorItemIdx() !== t.getLength() - 1 && this._selection.move(r, F.Next, this._addItemToRange(e, (e, t) => e < t))
                }
                _prevRangeItem(e) {
                    const t = this._selection.getCursorItem();
                    0 !== this._selection.getCursorItemIdx() && this._selection.move(t, F.Prev, this._addItemToRange(e, (e, t) => e > t))
                }
                _onItemClick(e, t) {
                    const r = this._selection.getItemsCollection().getItems(),
                        o = this._getRangeInfo(t);
                    this._selection.removeSelections();
                    for (let e = o.start; e <= o.end; e++) this._selection.isSelected(r[e]) || this._selection.selectItem(r[e]);
                    this._selection.setCursor(t), this._selection.onSelect(e, t)
                }
                _getRangeInfo(e) {
                    const t = this._selection.getItemsCollection().getItemIdx(e),
                        r = this._selection.getFocusedItemIdx(),
                        o = -1 !== r ? r : 0;
                    return t > o ? {
                        start: o,
                        end: t
                    } : {
                        start: t,
                        end: o
                    }
                }
                _addItemToRange(e, t) {
                    return (r, o) => {
                        const n = this._selection.getItemsCollection().getItemIdx(r),
                            i = this._selection.getFocusedItemIdx();
                        0 === this._selection.getSelectedCollection().getLength() && o && this._selection.selectItem(o), t(i, n) ? this._selection.selectItem(r) : o && this._selection.unselectItem(o), this._selection.setCursor(r), this._selection.onSelect(e, r)
                    }
                }
            }
            class N {
                constructor(e) {
                    this._selection = e.selection, this._selection.registerMouseAction("ctrl+click", this._selection.delegateClick(this._onItemClick.bind(this, "ctrl+click"))), this._selection.registerMouseAction("meta+click", this._selection.delegateClick(this._onItemClick.bind(this, "meta+click"))), this._selection.hotkeys.add({
                        hotkey: I.Modifiers.Mod + 65,
                        handler: this._selectAll.bind(this, "ctrl+a"),
                        element: e.localHotkeyElement
                    }), this._selection.hotkeys.add({
                        hotkey: 27,
                        handler: this._unselectAll.bind(this, "esc"),
                        element: e.localHotkeyElement
                    })
                }
                _onItemClick(e, t) {
                    const r = this._selection.getFocusedItem(),
                        o = this._selection.getSelectedCollection().getLength();
                    r && 0 === o && this._selection.selectItem(r), this._toggleSelection(t), this._selection.onSelect(e, t)
                }
                _toggleSelection(e) {
                    this._selection.isSelected(e) ? this._selection.unselectItem(e) : this._selection.selectItem(e), this._selection.setCursor(e)
                }
                _selectAll(e) {
                    this._selection.getItemsCollection().getItems().forEach(e => this._selection.selectItem(e)), this._selection.onSelect(e)
                }
                _unselectAll(e) {
                    this._selection.removeSelections();
                    const t = this._selection.getFocusedItem();
                    t && this._selection.setCursor(t), this._selection.onSelect(e)
                }
            }
            class $ {
                constructor(e) {
                    this._selection = e.selection, this._selection.hotkeys.add({
                        desc: "Delete",
                        hotkey: 46,
                        handler: this._delete.bind(this, "del"),
                        element: e.globalHotkeyElement
                    })
                }
                _delete(e) {
                    const t = this._selection.getSelectedItems(),
                        r = this._selection.getCursorItem();
                    r && t.length > 0 ? this._selection.onDelete(t, e, r) : r && this._selection.onDelete([r], e, r)
                }
            }
            var j = r(68724);
            class W {
                constructor(e) {
                    this._dispatchClick = e => {
                        e.ctrlKey && !(0, j.isMac)() ? this._selection.dispatchMouseEvent("ctrl+click", e) : e.shiftKey ? this._selection.dispatchMouseEvent("shift+click", e) : e.metaKey && (0, j.isMac)() ? this._selection.dispatchMouseEvent("meta+click", e) : this._selection.dispatchMouseEvent("click", e)
                    }, this._onSelect = e => {
                        this._collectKeys(), this._opts.onSelect && this._opts.onSelect(e)
                    }, this._onNavigate = e => {
                        this._collectKeys(), this._opts.onNavigate && this._opts.onNavigate(e)
                    }, this._disableSelection = () => {
                        this._list.onselectstart = () => !1
                    }, this._enableSelection = () => {
                        this._list.onselectstart = () => null
                    }, this._opts = e, this._list = e.list, this._selection = new D({
                        list: e.list,
                        listItemClass: e.listItemClass,
                        selectedListItemClass: e.selectedListItemClass,
                        focusedListItemClass: e.focusedListItemClass,
                        onSelect: this._onSelect,
                        onNavigate: this._onNavigate,
                        onConfirm: e.onConfirm,
                        onDelete: e.onDelete,
                        modes: e.modes,
                        globalHotkeys: Boolean(e.globalHotkeys)
                    }), this._selectedKeys = [], this._focusedKey = null, this._cursorKey = null, this.activate(), this._collectKeys()
                }
                activate() {
                    this._list.addEventListener("click", this._dispatchClick), this._list.addEventListener("keydown", this._disableSelection), this._list.addEventListener("keyup", this._enableSelection), this._selection.hotkeys.promote()
                }
                deactivate() {
                    this._list.removeEventListener("click", this._dispatchClick), this._list.removeEventListener("keydown", this._disableSelection), this._list.removeEventListener("keyup", this._enableSelection)
                }
                focusItem(e) {
                    this._selection.isSelected(e) || this._selection.isFocused(e) || (this._selection.removeSelections(), this._selection.focusItem(e))
                }
                removeFocus() {
                    this._selection.removeFocus()
                }
                restore() {
                    if (this._opts.getNodeKey) {
                        const e = this._selection.getItemsCollection().getItems(),
                            t = this._opts.getNodeKey;
                        e.forEach(e => {
                            const r = t(e);
                            this._focusedKey === r && this._selection.focusItem(e), this._cursorKey === r && this._selection.setCursor(e), this._selectedKeys.includes(r) && this._selection.selectItem(e)
                        })
                    }
                }
                getSelectedKeys() {
                    return this._collectKeys(), this._selectedKeys
                }
                getFocusedKey() {
                    return this._collectKeys(), this._focusedKey || null
                }
                clear() {
                    this._selection.clear()
                }
                destroy() {
                    this.deactivate(), this._selection.destroy(), delete this._selection, delete this._list, delete this._opts
                }
                _collectKeys() {
                    if (this._opts.getNodeKey) {
                        const e = this._opts.getNodeKey,
                            t = this._selection.getSelectedItems(),
                            r = this._selection.getFocusedItem(),
                            o = this._selection.getCursorItem();
                        this._selectedKeys = t.map(t => e(t)), this._focusedKey = r ? e(r) : null, this._cursorKey = o ? e(o) : null
                    }
                }
            }
            var V, U = r(79200),
                q = (r(46678), r(26687), r(79882), r(88674)),
                z = (r(76914), r(23946)),
                H = r(7137),
                Y = r(79407),
                K = r(72162),
                X = r(74291),
                G = r(28089);
            ! function(e) {
                e[e.None = 0] = "None", e[e.Widget = 1] = "Widget", e[e.Site = 2] = "Site"
            }(V || (V = {}));
            var Q = r(11585),
                J = r(5803),
                Z = r(82755),
                ee = r(38723);
            class te {
                constructor(e) {
                    this.event = "change_timeframe", this.source = "timeframe_selector", this.location = "toolbar", this.state = "", this.value = e
                }
            }
            class re {
                constructor(e, t) {
                    this.event = "change_columnset", this.source = "columset_selector", this.location = "toolbar", this.state = "", this.value = (0, ee.getColumnSetNameForSnowPlow)(t), this.source = e
                }
            }
            class oe {
                constructor(e, t) {
                    this.event = "change_favorite_columnsets", this.source = "columnset_star_button", this.location = "toolbar", this.value = (0, ee.getColumnSetNameForSnowPlow)(t), this.state = e
                }
            }
            class ne {
                constructor() {
                    this.event = "rename_custom_columnset", this.source = "columnset_pen_button", this.location = "toolbar", this.state = "", this.value = ""
                }
            }
            class ie {
                constructor(e) {
                    this.event = "change_filterset", this.source = "filterset_selector", this.location = "toolbar", this.state = "", this.value = (0, ee.getFilterSetNameForSnowPlow)(e)
                }
            }
            class se {
                constructor() {
                    this.event = "rename_custom_filterset", this.source = "filterset_pen_button", this.location = "toolbar", this.state = "", this.value = ""
                }
            }
            var ae = r(94801);
            class le {
                constructor(e, t, r) {
                    this.event = "change_columns", this.source = "column_selector", this.location = "header_fields_popup" === e ? "header" : "toolbar", this.state = t ? "added" : "removed", this.value = r
                }
            }
            class ce {
                constructor(e) {
                    this.event = "column_move", this.source = "column_header", this.location = "header", this.state = ae.UserActionState.Drag, this.value = e
                }
            }
            class ue {
                constructor() {
                    this.event = "refresh_screener_data", this.source = "refresh_button", this.location = "toolbar", this.state = "", this.value = ""
                }
            }
            class de {
                constructor(e) {
                    this.event = "change_refresh_interval", this.source = "refresh_interval_selector", this.location = "toolbar", this.state = "", this.value = (0, ee.getSnowPlowRefreshInterval)(e)
                }
            }
            var he = r(18184);
            const pe = r(87380).getLogger("Screener.Popups");
            class fe {
                constructor(e, t, r) {
                    this._model = e, this._view = t, this._bridge = r, this._markets = null, this._model.fieldSetSaved.subscribe(null, () => this._view.$fieldSetsButton.removeClass("tv-screener-toolbar__button--unsaved")), this._model.filterSetSaved.subscribe(null, () => this._view.$filterSetsButton.removeClass("tv-screener-toolbar__button--unsaved")), this._fieldsPopupCache = {}
                }
                showPromptDialog(e, t) {
                    return new Promise(r => {
                        (0, Y.showRename)({
                            title: e.title,
                            text: e.label,
                            initValue: t,
                            mainButtonText: (0, s.t)("Save"),
                            maxLength: 128,
                            onRename: ({
                                newValue: e,
                                dialogClose: t
                            }) => {
                                r(e), t()
                            },
                            onClose: r
                        })
                    })
                }
                showMaintenanceDialog() {
                    (0, q.showNoticeDialog)({
                        type: "modal",
                        title: (0, s.t)("Screener maintenance"),
                        content: (0, s.t)("We are doing some brief daily maintenance. Screener will be back really soon, thanks for your patience!")
                    })
                }
                showConfirmDialog(e) {
                    return new Promise(t => {
                        (0, Y.showConfirm)({
                            text: e,
                            onConfirm: ({
                                dialogClose: e
                            }) => {
                                t(!0), e()
                            },
                            onClose: () => t(!1)
                        })
                    })
                }
                showNotice(e, t) {
                    (0, q.showNoticeDialog)({
                        content: e,
                        title: t
                    })
                }
                setFieldsPopup(e, t, r) {
                    e.addClass("tv-dropdown-behavior__button");
                    const o = he(`<div class="${t||""}">`);
                    o.insertAfter(e).append(e);
                    const n = he('<div class="tv-dropdown__body tv-dropdown__body--over-trigger tv-dropdown-behavior__body tv-screener-fields-popup i-hidden">').appendTo(o);
                    r && n.addClass(r);
                    const i = he('<div class="tv-screener-fields-popup__search-wrap">').appendTo(n),
                        a = he(`<input type="text" placeholder="${(0,s.t)("Search column")}" class="tv-screener-fields-popup__search-input">`).appendTo(i),
                        l = he('<div class="tv-dropdown-behavior__scroll">').appendTo(n),
                        c = he('<div class="tv-screener-fields-popup__items-wrap tv-dropdown-behavior__inscroll">').appendTo(l);
                    "header_fields-button" === e.attr("data-name") && c.attr({
                        "data-name": "header_fields_popup"
                    });
                    const u = he('<div class="tv-screener-fields-popup__item tv-screener-fields-popup__item--no-matches js-hidden">No matches</div>').appendTo(n);
                    a.on("change input", e => {
                        const t = a.val().trim().toLowerCase();
                        t ? c.find(".js-fields-item").each((function() {
                            const e = he(this);
                            e.toggleClass("js-hidden", !~e.text().toLowerCase().indexOf(t))
                        })) : c.find(".js-fields-item").removeClass("js-hidden"), u.toggleClass("js-hidden", !!c.find(".js-fields-item:not(.js-hidden)").size()), o.tvDropdown("updateScroll")
                    }), o.on("beforeOpenMenu", () => {
                        a.val(""), c.find(".js-fields-item").removeClass("js-hidden"), u.addClass("js-hidden"), this.resetFieldsPopup(c), l.css("maxHeight", he(window).height() - e.offset().top + he(window).scrollTop() - e.outerHeight() - i.outerHeight() - 20)
                    }).on("afterOpenMenu", () => {
                        a.focus()
                    }).tvDropdown({
                        scroll: !0,
                        noAnimation: !0
                    }), setTimeout(() => this.resetFieldsPopup(c), 0)
                }
                resetFieldsPopup(e) {
                    e.empty();
                    const t = e => {
                            if (e in this._fieldsPopupCache) {
                                const t = this._fieldsPopupCache[e];
                                return t.checkbox.prop("checked", u.fields[e].checked), t.item
                            }
                            const t = he('<div class="tv-dropdown-behavior__item">');
                            he(`<label data-field="${e}" class="tv-control-select__option-wrap tv-screener-fields-popup__item js-fields-item">\n\t\t\t\t<input type="checkbox" name="${e}" class="js-field-checkbox"${u.fields[e].checked?" checked":""}>\n\t\t\t\t<span class="tv-control-checkbox__label">${(0,s.t)(u.fields[e].title)}</span>\n\t\t\t</label>`).appendTo(t);
                            const r = t.find(".js-field-checkbox").tvControlCheckbox();
                            return this._fieldsPopupCache[e] = {
                                item: t,
                                checkbox: r
                            }, t
                        },
                        r = this._view.sortedFields.filter(u.isFieldToDisplay).sort((e, t) => u.fields[e].title.localeCompare(u.fields[t].title, void 0, {
                            ignorePunctuation: !0,
                            numeric: !0
                        })),
                        o = r.filter(e => u.fields[e].checked),
                        n = r.filter(e => !u.fields[e].checked);
                    o.concat(n).forEach(r => {
                            "is_primary" !== r && t(r).appendTo(e)
                        }),
                        e.find(".js-field-checkbox").off("change"), e.find(".js-field-checkbox").on("change", t => {
                            const r = he(t.currentTarget),
                                o = r.attr("name");
                            u.fields[o].checked = r.prop("checked");
                            const n = e.attr("data-name"),
                                i = u.fields[o].checked;
                            (0, ee.sendSnowPlowData)(new le(n, i, o));
                            const s = u.fields[o].checked ? this._view._table.fieldsOrder.concat(o) : this._view._table.fieldsOrder.filter(e => e !== o);
                            this._model.preventPrevScanRequest(), this._model.fieldSetChanged.fire(s.filter(e => u.fields[e] && !0 !== u.fields[e].disabled && !0 !== u.fields[e].hiddenColumn)), this._model.update(), this._view.$fieldSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", this._model.isFieldSetChanged())
                        })
                }
                setPopup(e, t, r) {
                    e.addClass("tv-dropdown-behavior__button");
                    const o = he(`<div class="${t||""}">`);
                    o.insertAfter(e).append(e);
                    const n = he('<div class="tv-dropdown__body tv-dropdown__body--over-trigger tv-dropdown-behavior__body tv-screener-popup i-hidden">').appendTo(o);
                    r && n.addClass(r);
                    const i = he('<div class="tv-dropdown-behavior__scroll js-container">').appendTo(n);
                    return he('<div class="tv-screener-popup__items-wrap tv-dropdown-behavior__inscroll js-content">').appendTo(i), o.on("beforeOpenMenu", () => {
                        i.css("maxHeight", he(window).height() - e.offset().top + he(window).scrollTop() - 45)
                    }).tvDropdown({
                        scroll: !0,
                        noAnimation: !0
                    })
                }
                setFieldSetsPopup(e) {
                    const t = this.setPopup(e, "tv-screener-toolbar__button-wrap");
                    t.tvDropdown("disable");
                    const r = t.find(".js-content");
                    r.on("click", ".js-set", e => {
                        const o = he(e.currentTarget);
                        r.find(".js-item-active").removeClass("tv-screener-popup__item--active js-item-active"), o.addClass("tv-screener-popup__item--active js-item-active");
                        const n = o.attr("data-set");
                        this._model.applyFieldSet(n), this._view.adjustToolbarWidth(), t.tvDropdown("close"), (0, ee.sendSnowPlowData)(new re("columnset_selector", n))
                    }).on("click", ".js-set-delete", e => {
                        const r = he(e.currentTarget),
                            o = this._model.getFieldSetById(r.parent().attr("data-set")),
                            n = this._model.currentFieldSetId() === o.id;
                        this.showConfirmDialog((0, s.t)("Do you really want to delete Column Set '{name}' ?").format({
                            name: o.title
                        })).then(e => {
                            e && this._model.saveFieldSet({
                                id: o.id,
                                delete: 1
                            }, "Delete field set").then(() => {
                                this._model.removeFavoriteFieldSet(o.id), n && this._model.applyFieldSet(this._model.defaultFieldSets[0].id, null, !0), this._view.adjustToolbarWidth()
                            })
                        }), t.tvDropdown("close"), e.stopPropagation()
                    }).on("click", ".js-set-star", e => {
                        const t = he(e.currentTarget),
                            r = t.parent().attr("data-set");
                        t.parent().toggleClass("tv-screener-popup__item--favorite"), this._model.addFavoriteFieldSet(r), e.stopPropagation(), (0, ee.sendSnowPlowData)(new oe("added", r))
                    }).on("click", ".js-set-star-active", e => {
                        const t = he(e.currentTarget),
                            r = t.parent().attr("data-set");
                        t.parent().toggleClass("tv-screener-popup__item--favorite"), this._model.removeFavoriteFieldSet(r), e.stopPropagation(), (0, ee.sendSnowPlowData)(new oe("removed", r))
                    }).on("click", ".js-set-rename", e => {
                        const r = he(e.currentTarget).parent().attr("data-set"),
                            o = this._model.getFieldSetById(r);
                        this.showPromptDialog({
                            title: (0, s.t)("Rename Column Set"),
                            label: (0,
                                s.t)("Enter a new column set name:")
                        }, o.title).then(e => {
                            e && e !== o.title && (this._model.saveFieldSet({
                                id: o.id,
                                title: e
                            }, "Rename field set"), this._view.$fieldSetsButton.removeClass("tv-screener-toolbar__button--active js-no-pointer-events"), this._model.currentFieldSetId() == o.id && this._view.$fieldSetsButton.text(e), (0, ee.sendSnowPlowData)(new ne))
                        }), t.tvDropdown("close"), e.stopPropagation()
                    }).on("click", ".js-save", e => {
                        this.confirmAndSaveCurrentFieldSet().then(e => {
                            const t = this._model.getFieldSetById(e.id);
                            this._model.settingsSaver.setValue(this._model.settingKey + ".fieldSetId", e.id, {
                                forceFlush: !0
                            }), this._view.$fieldSetsButton.text(t.title);
                            const r = this.$favoritesBar && this.$favoritesBar.find(`.js-favorite-item[data-set=${e.id}]`) || he();
                            r.size() && r.removeClass("tv-screener-toolbar__favorites-item--active")
                        }).catch(e => {
                            e && pe.logError(e)
                        }), t.tvDropdown("close")
                    }), this._model.loadingComplete.subscribe(null, () => {
                        t.tvDropdown("enable")
                    }, !0), t.on("beforeOpenMenu", () => this.setFieldSetsPopupContent(r))
                }
                setFieldSetsPopupContent(e) {
                    e.empty(), this._bridge.onWidget || he(`<div class="tv-control-select__option-wrap tv-screener-popup__item tv-screener-popup__item--save js-save">${(0,Q.appendEllipsis)((0,s.t)("Save Columns As"))}</div>`).prepend(he(r(33828)).attr({
                        class: "tv-screener-toolbar__button-icon",
                        width: "20",
                        height: "14",
                        style: "top: -2px; margin-right: 10px;"
                    })).appendTo(e);
                    const t = he('<div class="tv-screener-popup__item--presets"></div>').appendTo(e);
                    this._model.settings.fieldSets.forEach(e => {
                        const o = he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div data-set="${e.id}"  class="tv-control-select__option-wrap tv-screener-popup__item tv-screener-popup__item--preset js-set" title="${TradingView.clean(e.title)}">\n\t\t\t\t\t<span class="js-field-set-name"></span>\n\t\t\t\t\t<span class="tv-screener-popup__item-delete js-set-delete" title="${(0,s.t)("Delete")}">\n\t\t\t\t\t\t${r(3558)}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="tv-screener-popup__item-rename js-set-rename" title="${(0,s.t)("Rename")}">\n\t\t\t\t\t\t${r(99926)}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="tv-screener-popup__item-star-active js-set-star-active" title="${(0,s.t)("Remove from favorites")}">\n\t\t\t\t\t\t${r(41142)}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="tv-screener-popup__item-star js-set-star" title="${(0,s.t)("Add to favorites")}">\n\t\t\t\t\t\t${r(78044)}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>`).appendTo(t);
                        o.find(".js-field-set-name").text(ge(e.title)), o.find(".js-set").toggleClass("tv-screener-popup__item--favorite", -1 !== this._model.favoriteFieldSets.indexOf(e.id))
                    }), this._model.defaultFieldSets.forEach(t => {
                        he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div data-set="${t.id}" class="tv-control-select__option-wrap tv-screener-popup__item js-set">\n\t\t\t\t\t${t.title}\n\t\t\t\t\t${this._bridge.onWidget?"":`<span class="tv-screener-popup__item-star-active js-set-star-active" title="${(0,
s.t)("Remove from favorites")}">\n\t\t\t\t\t\t\t${r(41142)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class="tv-screener-popup__item-star js-set-star" title="${(0,s.t)("Add to favorites")}">\n\t\t\t\t\t\t\t${r(78044)}\n\t\t\t\t\t\t</span>`}\n\t\t\t\t</div>\n\t\t\t</div>`).appendTo(e).find(".js-set").toggleClass("tv-screener-popup__item--favorite", -1 !== this._model.favoriteFieldSets.indexOf(t.id))
                    }), e.find(`[data-set="${this._model.currentFieldSetId()}"]`).addClass("tv-screener-popup__item--active js-item-active")
                }
                confirmAndSaveCurrentFieldSet() {
                    const e = this._model.getFieldSetById(this._model.currentFieldSetId()),
                        t = this._view._table.fieldsOrder.slice(0);
                    if (!u.fields.type.disabled && u.fields.type.checked) {
                        const e = t.indexOf("name"); - 1 !== e && t.splice(e + 1, 0, "type")
                    }
                    if (!u.fields.description.disabled && u.fields.description.checked) {
                        const e = t.indexOf("name"); - 1 !== e && t.splice(e + 1, 0, "description")
                    }
                    const r = JSON.stringify(t),
                        o = e && !this._model.defaultFieldSets.find(t => t.id === e.id);
                    return new Promise((t, n) => runOrSignIn(() => this.showPromptDialog({
                        title: (0, s.t)("Save Columns As"),
                        label: (0, s.t)("Enter a new column set name:")
                    }, e && e.title || "").then(i => {
                        if (void 0 === i) return void n();
                        const s = {
                            title: TradingView.clean(i),
                            content: r
                        };
                        let a = "Create field set";
                        o && e.title === i && (s.id = e.id, a = "Update field set"), this._model.saveFieldSet(s, a).then(t, n)
                    })))
                }
                setFilterSetsPopup(e, t) {
                    const r = this.setPopup(e, "tv-screener-toolbar__button-wrap", "tv-dropdown__body--position_right");
                    r.tvDropdown("disable");
                    const o = r.find(".js-content"),
                        n = this._bridge.$body;

                    function i(e) {
                        if ((0, Z.isRtl)()) e.toggleClass("tv-dropdown__body--position_right", !0);
                        else {
                            const t = r.width(),
                                o = n.find(".tv-screener-toolbar").width(),
                                i = r.position().left,
                                s = o - (t + i);
                            e.toggleClass("tv-dropdown__body--position_right", i > s)
                        }
                    }
                    o.on("click", ".js-set", e => {
                        const t = he(e.currentTarget);
                        o.find(".js-item-active").removeClass("tv-screener-popup__item--active js-item-active"), t.addClass("tv-screener-popup__item--active js-item-active"), this._view.$filterSetsButton.toggleClass("i-disabled", !0), new Promise(e => {
                            this._bridge.onWidget ? e() : this._model.isFilterSetChanged() ? this.showConfirmDialog((0, s.t)("You have unsaved changes in your current screen. Would you like to save them?")).then(t => {
                                t ? this.confirmAndSaveCurrentFilterSet().then(e, t => {
                                    t && pe.logError(t), e()
                                }) : e()
                            }) : e()
                        }).then(() => {
                            const e = ge(t.attr("data-set"));
                            this._model.applyFilterSet(e), this._model.trackEvent("Apply filter set " + e), this._view.$filterSetsButton.toggleClass("i-disabled", !1), (0, ee.sendSnowPlowData)(new ie(e))
                        }), setTimeout(() => r.tvDropdown("close"), 200)
                    }).on("click", ".js-set-delete", e => {
                        const t = he(e.currentTarget),
                            o = this._model.getFilterSetById(t.parent().attr("data-set")),
                            n = this._model.currentFilterSetId() === o.id;
                        this.showConfirmDialog((0, s.t)("Do you really want to delete Screen '{name}' ?").format({
                                name: o.title
                            })).then(e => {
                                e && this._model.saveFilterSet({
                                    id: o.id,
                                    delete: 1
                                }, "Delete filter set").then(() => {
                                    if (n) {
                                        const e = this._model.defaultFilterSets.find(e => !0 !== e.disabled) || this._model.defaultFilterSets[0];
                                        this._model.applyFilterSet(e.id)
                                    }
                                })
                            }),
                            r.tvDropdown("close"), e.stopPropagation()
                    }).on("click", ".js-set-rename", e => {
                        const t = he(e.currentTarget).parent().attr("data-set"),
                            o = this._model.getFilterSetById(t);
                        this.showPromptDialog({
                            title: (0, s.t)("Rename Screens"),
                            label: (0, s.t)("Enter a new screen name:")
                        }, o.title).then(e => {
                            e && e !== o.title && (this._model.saveFilterSet({
                                id: o.id,
                                title: e
                            }, "Rename filter set"), this._view.$filterSetsButton.removeClass("tv-screener-toolbar__button--active js-no-pointer-events"), this._model.currentFilterSetId() == o.id && this._view.$filterSetsButtonTitle.text(e), (0, ee.sendSnowPlowData)(new se))
                        }), r.tvDropdown("close"), e.stopPropagation()
                    }).on("click", ".js-save", e => {
                        this.confirmAndSaveCurrentFilterSet().then(e => {
                            void 0 !== e.id ? (this._model.settingsSaver.setValue(this._model.settingKey + ".filterSetId", e.id, {
                                forceFlush: !0
                            }), this._view.$filterSetsButtonTitle.text(this._model.getFilterSetById(e.id).title)) : pe.logError("Unable to get id of created set")
                        }).catch(e => {
                            e && pe.logError(e)
                        }), r.tvDropdown("close")
                    }).on("click", ".js-set-alert", e => {
                        const t = he(e.currentTarget),
                            o = t.parent().attr("data-set");
                        this._view.toggleAlert.fire(o, "toggle_alert_bell"), t.is(".js-active") || r.tvDropdown("close"), e.stopPropagation()
                    }), this.$filterSetsPopupContent = o, this._bridge.width ? (i(o.parent().parent()), this._bridge.width.subscribe(() => {
                        i(o.parent().parent())
                    })) : he(window).on("resize", () => {
                        i(o.parent().parent())
                    }), this._model.loadingComplete.subscribe(null, () => {
                        r.tvDropdown("enable")
                    }, !0), r.on("beforeOpenMenu", () => {
                        this.setFilterSetsPopupContent(t), t && this.updateFilterSetsPopupAlerts(this._model.alerts.getFilterSetIdsWithRunningAlerts())
                    })
                }
                updateFilterSetsPopupAlerts(e) {
                    this.$filterSetsPopupContent && this.$filterSetsPopupContent.find(".js-set").each((function() {
                        const t = he(this),
                            r = t.attr("data-set"),
                            o = e.indexOf(r) > -1;
                        t.find(".js-set-alert").toggleClass("tv-screener-popup__item-alert-toggle--active js-active", o).attr("title", o ? (0, s.t)("Disable Alert") : (0, s.t)("Enable Alert"))
                    }))
                }
                setFilterSetsPopupContent(e) {
                    const t = this.$filterSetsPopupContent;
                    t.empty(), this._bridge.onWidget || he(`<div class="tv-control-select__option-wrap tv-screener-popup__item tv-screener-popup__item--save tv-screener-popup__item--space-left js-save">${(0,Q.appendEllipsis)((0,s.t)("Save Screens As"))}</div>`).prepend(he(r(33828)).attr({
                        class: "tv-screener-toolbar__button-icon",
                        width: "20",
                        height: "14",
                        style: "top: -2px; margin-right: 10px;"
                    })).appendTo(t);
                    const o = he('<div class="tv-screener-popup__item--presets"></div>').appendTo(t);
                    this._model.settings.filterSets.forEach(t => {
                        const n = he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div data-set="${t.id}" class="tv-control-select__option-wrap tv-screener-popup__item tv-screener-popup__item--preset tv-screener-popup__item--space-left js-set">\n\t\t\t\t\t<span class="js-filter-set-name"></span>\n\t\t\t\t\t<span class="tv-screener-popup__item-rename js-set-rename" title="${(0,s.t)("Rename")}">\n\t\t\t\t\t\t${r(99926)}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="tv-screener-popup__item-delete tv-screener-popup__item-delete--right js-set-delete" title="${(0,
s.t)("Delete")}">\n\t\t\t\t\t\t${r(3558)}\n\t\t\t\t\t</span>\n\t\t\t\t\t${e?`<span class="tv-screener-popup__item-alert-toggle apply-common-tooltip js-set-alert">${r(83407)}</span>`:""}\n\t\t\t\t</div>\n\t\t\t</div>`);
                        n.find(".js-filter-set-name").text(ge(t.title)), n.appendTo(o)
                    }), this._model.defaultFilterSets.forEach(o => {
                        o.disabled || he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div data-set="${o.id}" class="tv-control-select__option-wrap tv-screener-popup__item tv-screener-popup__item--space-left js-set">\n\t\t\t\t\t${o.title}\n\t\t\t\t\t${e?`<span class="tv-screener-popup__item-alert-toggle apply-common-tooltip js-set-alert">${r(83407)}</span>`:""}\n\t\t\t\t</div>\n\t\t\t</div>`).appendTo(t)
                    }), t.find(`[data-set="${this._model.currentFilterSetId()}"]`).addClass("tv-screener-popup__item--active js-item-active")
                }
                confirmAndSaveCurrentFilterSet() {
                    const e = this._model.getFilterSetById(this._model.currentFilterSetId()),
                        t = JSON.stringify(this._model.currentFilterState()),
                        r = e && !this._model.defaultFilterSets.find(t => t.id === e.id);
                    return new Promise((o, n) => runOrSignIn(() => this.showPromptDialog({
                        title: (0, s.t)("Save Screens As"),
                        label: (0, s.t)("Enter a new screen name:")
                    }, e.title).then(i => {
                        if (void 0 === i) return void n();
                        const s = {
                            title: TradingView.clean(i),
                            content: t
                        };
                        let a = "Create filter set";
                        r && e.title === i && (s.id = e.id, a = "Update filter set"), this._model.saveFilterSet(s, a).then(o, n)
                    })))
                }
                setHiddenFavoritesPopup(e, t, r, o) {
                    e.addClass("tv-dropdown-behavior__button");
                    const n = he('<div class="tv-screener-toolbar__favorites-more-wrap">');
                    n.insertAfter(e).append(e);
                    const i = he('<div class="tv-dropdown__body tv-dropdown__body--over-trigger tv-dropdown-behavior__body tv-dropdown__body--position_right i-hidden">').appendTo(n),
                        s = he('<div class="tv-dropdown-behavior__scroll js-container">').appendTo(i),
                        a = he('<div class="tv-screener-popup__items-wrap tv-dropdown-behavior__inscroll js-content">').appendTo(s);
                    a.on("click", ".js-set", e => {
                        const t = he(e.currentTarget).attr("data-set");
                        o(t), (0, ee.sendSnowPlowData)(new re("columnset_favorites_picker", t)), n.tvDropdown("close")
                    });
                    const l = () => {
                        a.empty(), t().forEach(e => {
                            he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t\t<div data-set="${e.id}" class="tv-control-select__option-wrap tv-screener-popup__item js-set">\n\t\t\t\t\t\t${TradingView.clean(e.title)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>`).toggleClass("tv-screener-popup__item--active", r(e.id)).appendTo(a)
                        }), n.tvDropdown("updateScroll")
                    };
                    return n.on("beforeOpenMenu", () => {
                        l(), s.css("maxHeight", he(window).height() - e.offset().top + he(window).scrollTop() - 45)
                    }).on("resetContent", () => l()).on("forceClose", () => n.tvDropdown("close")).tvDropdown({
                        scroll: !0,
                        noAnimation: !0
                    })
                }
                setSelectPopup(e, t) {
                    const {
                        wrapClass: r,
                        buttonClass: o,
                        dropdownClass: n
                    } = e, {
                        buttonTitle: i
                    } = t, s = he(`<div class="${r} tv-dropdown tv-dropdown--inline tv-dropdown-behavior">`), a = he(`<div class="tv-dropdown__button tv-dropdown-behavior__button ${o}" title="${i}">`).appendTo(s), l = he(`<div class="tv-dropdown__body tv-dropdown-behavior__body tv-dropdown__body--over-trigger tv-dropdown__body--position_right i-hidden ${n}">`).appendTo(s), c = he('<div class="tv-dropdown-behavior__scroll js-container">').appendTo(l), u = he('<div class="tv-dropdown-behavior__inscroll js-content">').appendTo(c);
                    return s.on("beforeOpenMenu", () => {
                        c.css("maxHeight", he(window).height() - a.offset().top + he(window).scrollTop() - 45)
                    }).on("forceClose", () => s.tvDropdown("close")).tvDropdown({
                        scroll: !0,
                        $wrap: a,
                        $body: l,
                        noAnimation: !0
                    }), {
                        $wrap: s,
                        $button: a,
                        $dropdownBody: l,
                        $dropdownContent: u
                    }
                }
                setMarketsList(e) {
                    this._markets = e
                }
                updateRefreshIntervalsPopupContent() {
                    if (!this.$filterRefreshIntervalsPopup || !this.$filterRefreshIntervalsPopup.length) return;
                    this.$filterRefreshIntervalsPopup.empty();
                    const e = this._view.refreshIntervals;
                    for (let t = 0; t < e.length; ++t) {
                        const r = e[t];
                        let o = null;
                        if (-1 === r) o = (0, s.t)("Manual Refresh");
                        else {
                            const e = r / 60 | 0;
                            o = 1 === e ? (0, s.t)("Refresh every minute") : e < 1 ? this._model.isFastRefresh ? (0, s.t)("Auto Refresh") : (0, s.t)("Refresh every second", {
                                plural: "Refresh every {0} seconds",
                                count: r
                            }).format(r) : (0, s.t)("Refresh every minutes", {
                                plural: "Refresh every {0} minutes",
                                count: e
                            }).format(e)
                        }
                        he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<label class="tv-control-select__option-wrap tv-screener-popup__item js-interval">\n\t\t\t\t\t<span class="tv-control-radio">\n\t\t\t\t\t\t<input type="radio" name="interval" value="${r}" class="tv-control-radio__input">\n\t\t\t\t\t\t<span class="tv-control-radio__box"></span>\n\t\t\t\t\t\t<span class="tv-control-radio__ripple js-ripple"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="tv-control-radio__label tv-screener-popup__refresh-interval-label">${o}</span>\n\t\t\t\t</label>\n\t\t\t</div>`).appendTo(this.$filterRefreshIntervalsPopup)
                    }
                }
                setRefreshIntervalsPopup(e) {
                    const t = this.setPopup(e, "tv-screener-toolbar__button-wrap", "tv-screener-popup__refresh-intervals"),
                        r = t.find(".js-content");
                    this.$filterRefreshIntervalsPopup = r, this.updateRefreshIntervalsPopupContent(), t.on("beforeOpenMenu", () => {
                        r.find(`input[value=${this._model.refreshInterval}]`).prop("checked", !0)
                    }), r.on("click", ".js-interval", e => {
                        e.preventDefault();
                        const o = +he(e.currentTarget).find("input").val();
                        setTimeout(() => t.tvDropdown("close"), T.dur / 2), o !== this._model.refreshInterval && (this._model.isFastRefresh ? (r.find(`input[value=${o}]`).prop("checked", !0), this._model.refreshInterval = o) : (0, U.runOrGoPro)(() => {
                            r.find(`input[value=${o}]`).prop("checked", !0), this._model.refreshInterval = o
                        }, J.ProductFeatures.SCREENER_AUTO_REFRESH, {
                            feature: "screenerAutoRefresh"
                        }, {
                            value: -1 === o
                        }), (0, ee.sendSnowPlowData)(new de(o)))
                    })
                }
                setSelectIntervalContent(e, t, r = (() => {})) {
                    t.empty();
                    const o = this._model.selectedIntervalId;
                    for (const e of H.INTERVALS) he(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div data-interval="${e.id}" title="${e.title}" class="tv-control-select__option-wrap tv-screener-popup__item js-select-interval ${e.id===o?"tv-screener-popup__select-interval-active":""}">\n\t\t\t\t\t${e.shortTitle}\n\t\t\t\t</div>\n\t\t\t</div>`).appendTo(t);
                    e.on("afterOpenMenu", () => {
                        t.on("click", ".js-select-interval", o => {
                            o.preventDefault();
                            const n = this._model.selectedIntervalId,
                                i = he(o.currentTarget);
                            let s = (0, H.getIntervalById)(i.data("interval"));
                            if (!s || n === s.id) return;
                            const a = this._model.eodRestriction.value();
                            (0, U.runOrGoPro)(() => {
                                a !== V.None && "1d" !== s.id ? ((0, z.createGoProDialog)({
                                    feature: "screenerIntervalsEod"
                                }), s = (0, H.getIntervalById)("1d")) : (t.find(".tv-screener-popup__select-interval-active").removeClass("tv-screener-popup__select-interval-active"), t.find(`[data-interval='${s.id}']`).addClass("tv-screener-popup__select-interval-active"), r(s))
                            }, J.ProductFeatures.SCREENER_INTERVALS, {
                                feature: "screenerIntervals"
                            }, {
                                interval: s.id
                            }), setTimeout(() => {
                                e.tvDropdown("close"), t.off("click")
                            }, T.dur / 2), (0, ee.sendSnowPlowData)(new te(s.id))
                        })
                    })
                }
                setAlertsPopup(e, t) {
                    e.removeClass("tv-screener-toolbar__button--space_right").addClass("tv-dropdown-behavior__button js-prevent-dropdown");
                    const r = he('<div class="tv-screener-toolbar__button-wrap tv-screener-toolbar__button-wrap--space-right">');
                    r.insertAfter(e).append(e);
                    const o = he('<div class="tv-dropdown__body tv-dropdown__body--over-trigger tv-dropdown-behavior__body tv-dropdown__body--position_right i-hidden">').appendTo(r);
                    let n = r.position().left;
                    const i = r.width(),
                        s = he(".tv-screener-toolbar");
                    let a = s.width(),
                        l = a - (i + n);
                    return this._bridge.width ? (o.toggleClass("tv-dropdown__body--position_right", n > l), this._bridge.width.subscribe(() => {
                        n = r.position().left, a = s.width(), l = a - (i + n);
                        const e = n > l;
                        o.toggleClass("tv-dropdown__body--position_right", e)
                    })) : he(window).on("resize", () => {
                        n = r.position().left, a = s.width(), l = a - (i + n);
                        const e = n > l;
                        o.toggleClass("tv-dropdown__body--position_right", e)
                    }), t.on("click", () => r.tvDropdown("close")).appendTo(o), e.on("click", () => runOrSignIn(() => {
                        this._model.alerts.ready.then(() => r.tvDropdown("open"))
                    })), r.tvDropdown({
                        noAnimation: !0
                    })
                }
            }

            function ge(e) {
                return TradingView.clean(e, !0)
            }
            var me = r(58848),
                _e = r(65741);
            r(85738), r(87262);
            class ve {
                constructor(e, t) {
                    this.event = "open_filters_dialog", this.location = "toolbar", this.value = "", this.source = e, this.state = t > 0 ? "with_counter" : "without_counter"
                }
            }
            class be {
                constructor(e) {
                    this.event = "change_filter_dialog_tab", this.source = "filter_dialog_tab_button", this.location = "filter_dialog", this.value = "", this.state = e
                }
            }
            class ye {
                constructor() {
                    this.event = "filter_dialog_search_input_click", this.source = "filter_dialog_search_input", this.location = "filter_dialog", this.state = "user_clicked", this.value = ""
                }
            }
            class we {
                constructor(e) {
                    this.event = "filter_dialog_search_no_terms_found", this.source = "filter_dialog_search_input", this.location = "filter_dialog", this.state = "empty_search_result", this.value = "", this.value = e
                }
            }
            class Se {
                constructor(e) {
                    this.event = "filter_dialog_applied_filters",
                        this.source = "unknown", this.location = "filter_dialog", this.state = ae.UserActionState.ApplyFilters, this.value = e
                }
            }
            class Ce {
                constructor(e, t, r, o) {
                    this.event = "filter_use", this.value = e, this.state = t, this.source = r, this.location = o
                }
            }
            class ke {
                constructor(e) {
                    this.event = "apply_flagged_filter", this.source = "flagged_marker", this.location = "header", this.state = "enabled", this.value = e
                }
            }
            var Ee = r(18184);
            const xe = {
                filtersSearch: `<div class="tv-screener-search js-screener-search">\n\t\t<input type="text" class="tv-screener-search__input js-search-input" placeholder="${(0,s.t)("Search filter")}">\n\t\t${r(26469)}\n\t\t<div class="tv-screener-search__reset js-search-reset">\n\t\t\t<span class="tv-screener-search__reset-icon">${r(80096)}</span>\n\t\t\t${(0,s.t)("Reset all")}\n\t\t</div>\n\t</div>`,
                filtersBody: '<div class="tv-screener-dialog js-screener-dialog">\n\t\t<div class="tv-screener-dialog__wrap js-filters-wrap"></div>\n\t</div>'
            };
            var Te = [(0, s.t)("All"), (0, s.t)("Descriptive"), (0, s.t)("Financials"), (0, s.t)("Technical")];
            class Ae {
                constructor(e, t, r) {
                    this._model = e, this._view = t, this._bridge = r, this._dialogTitle = "screener_filters", this._categories = null
                }
                showFiltersDialog(e) {
                    return Promise.all([r.e(5058), r.e(70964), r.e(47395), r.e(99752), r.e(94795), r.e(70797), r.e(37384)]).then(r.bind(r, 53859)).then(({
                        createTabbedDialog: t
                    }) => {
                        this._categories = this._getCategories();
                        const r = this._categories.map(e => ({
                                name: Te[e]
                            })),
                            {
                                dialog: o,
                                tabs: n
                            } = t({
                                tabs: r,
                                additionalHeaderContent: xe.filtersSearch,
                                width: Math.min(1400, Math.max(646, Ee(window).width() - 200)),
                                height: Math.max(450, Ee(window).height() - 200),
                                contentAddClass: "js-dialog-content",
                                doNotCreatePages: !0,
                                destroyOnClose: !0
                            }),
                            i = o.$content.find(".js-dialog-content"),
                            s = o.$content.find(".js-screener-search");
                        this.$fieldSearchInput = s.find(".js-search-input"), this.$fieldSearchInput.on("input", (0, me.default)(e => {
                            this._view.updateFilterSearch(), o.updateScroll()
                        }, 100, {
                            leading: !1,
                            trailing: !0
                        })), this.$fieldSearchInput.on("click", () => {
                            (0, ee.sendSnowPlowData)(new ye)
                        });
                        s.find(".js-search-reset").on("click", e => this._view.resetAllFilters());
                        const a = () => {
                            const e = this.$filtersPopup.get(0).clientWidth >= 1292;
                            e && !this._$filtersWrap.is(".js-2col") ? this._$filtersWrap.addClass("js-2col tv-screener-dialog__wrap--2col") : !e && this._$filtersWrap.is(".js-2col") && this._$filtersWrap.removeClass("js-2col tv-screener-dialog__wrap--2col")
                        };
                        this.$filtersPopup = Ee(xe.filtersBody), this._$filtersWrap = this.$filtersPopup.find(".js-filters-wrap");
                        const l = [];
                        this._view.sortedFields.forEach(e => {
                            u.fields[e] && !u.fields[e].disabled && u.fields[e].control && l.push(this._view.addFieldFilter(e, this._$filtersWrap))
                        }), Promise.all(l).then(() => this._$filtersWrap.find(".js-wrap").each((e, t) => {
                            this._view.initFilterHandlers(Ee(t))
                        })), this.$filtersPopup.appendTo(i), e && this._model.settingsSaver.setValue(this._model.settingKey + ".filters.tab", 0), n.tabChanged.subscribe(null, e => {
                            this.filtersDialogTabChanged(e), o.scrollToStart(), 0 !== e && (0, ee.sendSnowPlowData)(new be(e))
                        }), this._view.$filtersButton.addClass("js-no-pointer-events"), o.on("scroll", () => {
                            o.$content.find(".js-dropdown-toggle.i-opened").trigger("resetPosition", null, i.parent())
                        });
                        const c = this._getActiveFilters(!1).sort();
                        o.on("destroy", e => {
                            const t = this._getActiveFilters(!1).sort();
                            for (const e in u.fields) "condition" === u.fields[e].control && u.fields[e].value && ((0, u.isValueAbsent)(u.fields[e].value.value) || (0, u.isValueAbsent)(u.fields[e].value.operator)) && (u.fields[e].value = null);
                            Ee(".tv-screener-dialog__filter-field").removeClass("js-hidden"), this.$fieldSearchInput.val(""), this.$filtersPopup.remove(), delete this.$filtersPopup, this._view.$filtersButton.removeClass("js-no-pointer-events"), delete this._dialog, Ee(window).off("resize", a), (0, _e.default)(c, t) || (0, ee.sendSnowPlowData)(new Se(t.join(", ")))
                        }), this._model.trackEvent("Open filters dialog"), o.open(), Ee(window).on("resize", a), a(), this.$dialogContainer = o.$content, this._dialog = o
                    })
                }
                filtersDialogTabChanged(e) {
                    const t = this._categories.map(e => "tv-screener-dialog--cat" + e).join(" ");
                    this.$filtersPopup.removeClass(t).addClass("tv-screener-dialog--cat" + this._categories[e]).scrollTop(0)
                }
                destroy() {
                    this._dialog && (this._dialog.close(), delete this._dialog)
                }
                _getCategories() {
                    const e = [0];
                    return this._view.sortedFields.forEach(t => {
                        u.fields[t] && !u.fields[t].disabled && u.fields[t].control && (e.includes(u.fields[t].category) || e.push(u.fields[t].category))
                    }), e.sort()
                }
                _getDefaultFiltersForCurrentFilterSet() {
                    const {
                        defaultFilterSets: e
                    } = this._model, t = this._model.currentFilterSetId();
                    return Object.values(e).filter(e => e.id === t)[0].content.filters
                }
                _fieldValueIsEqualToDefaultFilter(e) {
                    const t = this._getDefaultFiltersForCurrentFilterSet()[e],
                        r = u.fields[e].value;
                    switch (u.fields[e].control) {
                        case "condition":
                            return r.operator === t.operator && r.value.toString() === t.value.toString();
                        case "range":
                        case "select":
                            return r.sort().toString() === t.sort().toString();
                        default:
                            return u.fields[e].value === r
                    }
                }
                _getActiveFilters(e = !0) {
                    const t = [];
                    for (const r in u.fields)
                        if (u.fields[r].value) {
                            if ("condition" === u.fields[r].control && ((0, u.isValueAbsent)(u.fields[r].value.operator) || (0, u.isValueAbsent)(u.fields[r].value.value))) continue;
                            e ? t.push((0, u.getFieldTitle)(u.fields[r])) : t.push(r)
                        }
                    return t
                }
            }
            var Me = r(94911),
                Le = r(80238),
                Pe = r(36170),
                Fe = r(92084),
                Ie = r(29355);
            class De {
                constructor() {
                    this._handlers = []
                }
                registerHandlers(e) {
                    this._handlers.push(e)
                }
                beforeAppendSymbol(e, t) {
                    this._handlers.forEach(r => {
                        r.beforeAppendSymbol && r.beforeAppendSymbol(e, t)
                    })
                }
                beforeAppendContextMenuItems(e) {
                    return this._handlers.reduce((t, r) => r.beforeAppendContextMenuItems ? t.concat(r.beforeAppendContextMenuItems(e)) : t, [])
                }
                afterSymbolConfirm(e, t) {
                    this._handlers.forEach(r => {
                        r.afterSymbolConfirm && r.afterSymbolConfirm(e, t)
                    })
                }
                beforeAppendSymbolsHeader(e) {
                    this._handlers.forEach(t => {
                        t.beforeAppendSymbolsHeader && t.beforeAppendSymbolsHeader(e)
                    })
                }
            }
            var Oe = r(76242),
                Re = r(88001),
                Be = r(8479),
                Ne = r(67294),
                $e = r(73935),
                je = r(94184),
                We = r.n(je),
                Ve = r(30715),
                Ue = r(38530);

            function qe(e) {
                const t = Object.keys(e.modes),
                    r = Object.values(e.modes),
                    [o, n] = Ne.useState(t[0]);
                return Ne.createElement(Ne.Fragment, null, Ne.createElement(ze, {
                    isActive: o === t[0],
                    title: r[0]
                }), Ne.createElement("span", {
                    className: Ue.switcherContainer
                }, Ne.createElement(Ve.Switch, {
                    onChange: function(r) {
                        const o = r.currentTarget.checked ? t[1] : t[0];
                        n(o), e.onChange(o)
                    }
                })), Ne.createElement(ze, {
                    isActive: o === t[1],
                    title: r[1]
                }))
            }

            function ze(e) {
                return Ne.createElement("span", {
                    className: We()(Ue.modeTitle, e.isActive && Ue.modeTitleActive)
                }, e.title)
            }
            var He = r(43953),
                Ye = r(87552),
                Ke = r(36982),
                Xe = r(38405),
                Ge = r(30456),
                Qe = r(98618);
            class Je extends Ne.PureComponent {
                render() {
                    return Ne.createElement(Ke, {
                        onMeasure: this.props.onResize
                    }, Ne.createElement("div", {
                        className: this.props.className,
                        onClick: this.props.onClick
                    }, this.props.children))
                }
            }
            var Ze = r(49939);
            class et extends Ne.PureComponent {
                constructor(e) {
                    super(e), this._getDropdownHeight = () => {
                        if (!this._dropdownParent) return;
                        const e = window.innerHeight - this._dropdownParent.getBoundingClientRect().bottom - 20;
                        return e && e < 50 ? void 0 : e
                    }, this._getFirstHiddenItemIndex = () => {
                        let e;
                        if (this.state.availableWidth && !this._itemSizes.includes(null)) {
                            let t = 0;
                            for (e = 0; e < this.props.items.length; e++) {
                                const r = t + (this._itemSizes[e] || 0);
                                if (!((e === this.props.items.length - 1 ? r : r + 41) < this.state.availableWidth)) break;
                                t = r
                            }
                        } else e = this.state.availableWidth ? this.props.items.length : 0;
                        return e
                    }, this._onElementResize = e => {
                        this.setState({
                            availableWidth: e.width,
                            isOpened: !1
                        })
                    }, this._onSelect = e => {
                        this.props.onSelect && this.props.onSelect(e), this.setState({
                            activeItem: e,
                            isOpened: !1
                        })
                    }, this._onDropdownSelect = (e, t) => {
                        this.props.onSelect && this.props.onSelect(t.actualIndex), this.setState({
                            activeItem: t.actualIndex,
                            isOpened: !1
                        })
                    }, this._onOutsideClick = e => {
                        this.state.isOpened && (this.state.isOpened && (e.preventDefault(), e.stopPropagation()), this.setState({
                            isOpened: !1
                        }))
                    }, this._onDropdownItemClick = () => {
                        this.setState({
                            isOpened: !this.state.isOpened
                        })
                    }, this._onItemResize = (e, t) => {
                        this._itemSizes[e] = t.width, this._itemSizes.includes(null) || this.forceUpdate()
                    }, this._itemSizes = this.props.items.map(e => null), this.state = {
                        availableWidth: 0,
                        activeItem: this.props.activeItem || 0,
                        isOpened: !1
                    }
                }
                render() {
                    const e = this._getFirstHiddenItemIndex(),
                        t = this.props.items.slice(0, e),
                        r = this.props.items.slice(e),
                        o = t.map((e, t) => {
                            const r = this.state.activeItem === t,
                                o = je(He.itemContent, {
                                    [He.active]: r
                                });
                            return Ne.createElement(Je, {
                                key: e.title,
                                className: je(He.item, {
                                    [He.active]: r
                                }),
                                onClick: this._onSelect.bind(this, t),
                                onResize: this._onItemResize.bind(this, t)
                            }, Ne.createElement("div", {
                                className: o
                            }, e.title))
                        }),
                        n = r.map((e, r) => ({
                            elem: e.title,
                            actualIndex: r + t.length
                        })),
                        i = this.state.activeItem - e,
                        s = i >= 0,
                        a = Ne.createElement(Qe.OutsideEvent, {
                            handler: this._onOutsideClick,
                            click: !0
                        }, e => Ne.createElement("div", {
                            ref: e => e && (this._dropdownParent = $e.findDOMNode(e))
                        }, Ne.createElement("div", {
                            className: je(He.item, {
                                [He.active]: s
                            }),
                            ref: e,
                            onClick: this._onDropdownItemClick
                        }, Ne.createElement("div", {
                            className: je(He.itemContent, He.dropdownItem, {
                                [He.active]: s
                            })
                        }, Ne.createElement(Ge.Icon, {
                            className: je(He.dropdownIcon, {
                                [He.active]: this.state.isOpened
                            }),
                            icon: Ze
                        }), Ne.createElement(Xe.DropdownList, {
                            isOpened: this.state.isOpened,
                            items: n,
                            selected: s ? i : void 0,
                            onSelect: this._onDropdownSelect,
                            top: 27,
                            right: 0,
                            itemsClassName: je(Ye.bluishItem, He.dropdownListItem),
                            selectedClassName: this.props.selectedItemClassName,
                            maxHeight: this._getDropdownHeight()
                        })))));
                    return Ne.createElement(Ke, {
                        onMeasure: this._onElementResize
                    }, Ne.createElement("div", {
                        className: je(He.elementWrap, this.props.className)
                    }, Ne.createElement("div", {
                        className: He.itemsWrap
                    }, o, r.length ? a : void 0)))
                }
            }

            function tt(e, t) {
                $e.render(Ne.createElement(et, { ...t
                }), e)
            }
            var rt = r(1970);
            const ot = ["country", "sector", "industry", "description"],
                nt = ["close", "bid", "ask", "candlestick"],
                it = ["Recommend.All", "Recommend.MA", "Recommend.Other"];

            function st(e, t) {
                return e.indexOf(t)
            }

            function at(e) {
                return e.map(e => (0, Ie.escapeCSVValue)(e)).join(",")
            }

            function lt(e) {
                return e.map((e, t) => Boolean(e) ? t : void 0).filter(Boolean)
            }

            function ct(e) {
                return rt.candlestickRanges.find(t => t.key === e)
            }
            var ut = r(10934),
                dt = r(62185);
            class ht {
                constructor() {
                    this.event = "export_screener_data", this.source = "export_button", this.location = "toolbar", this.state = "", this.value = ""
                }
            }
            class pt {
                constructor(e, t) {
                    this.event = "change_forex_group", this.source = "forex_group_selector", this.location = "toolbar", this.state = e, this.value = t
                }
            }
            var ft = r(1369);

            function gt(e) {
                return Promise.all([r.e(26822), r.e(64595), r.e(69756), r.e(88278), r.e(52802), r.e(94595), r.e(94269), r.e(55442), r.e(26992), r.e(57373), r.e(70924), r.e(74155), r.e(86530), r.e(33075), r.e(67911)]).then(r.bind(r, 32097)).then(t => t.showScreenerMarketDialog(e))
            }
            var mt = r(6927),
                _t = r(74401),
                vt = r(5303),
                bt = r(1529);

            function yt(e, t) {
                const r = setInterval(() => {
                    const o = document.querySelector(e);
                    if (o) {
                        clearInterval(r);
                        new bt.default(t).observe(o), t()
                    }
                }, 20)
            }
            var wt = r(86240),
                St = r(18184);
            const Ct = parseInt(wt["size-sticky-symbol-header-height"]);

            function kt(e) {
                const {
                    $toolbar: t
                } = e, r = t.outerHeight(), o = e.table.$stickyHeader, n = document.querySelector(".js-sticky-symbol-header-container") ? 64 + Ct : 64;

                function i(t) {
                    const i = t || St(document).scrollTop(),
                        {
                            isSticky: s,
                            upperScrollLimit: a,
                            bottomScrollLimit: l
                        } = function(t) {
                            const i = e.table._$emptyMessage ? e.table._$emptyMessage.outerHeight() : 0,
                                s = e.$content.offset().top + e.$content.outerHeight(),
                                a = i || 48,
                                l = e.$content.offset().top - n - r,
                                c = s - a - n - r - o.outerHeight();
                            return {
                                isSticky: t >= l && t <= c,
                                bottomScrollLimit: c,
                                upperScrollLimit: l
                            }
                        }(i);
                    if (s) return "sticky";
                    return Math.abs(l - a) < 20 || i < a ? "absolute" : "bottom"
                }

                function s() {
                    const r = i(),
                        n = (0, Z.isRtl)() ? e.$content.offset().left - St(window).scrollLeft() : e.$content.offset().left,
                        s = e.$content.width(),
                        a = St(e.table._table).width(),
                        l = {
                            left: n,
                            width: s
                        },
                        c = { ... function(t) {
                                const r = L.breakpoints.tablet,
                                    o = i();
                                if (St(window).width() > r) return "absolute" === o ? {
                                    left: "",
                                    right: ""
                                } : {
                                    left: t,
                                    right: ""
                                };
                                const n = e.$content.scrollLeft();
                                if ((0, Z.isRtl)()) {
                                    const t = e._getResizerBridgeWidth();
                                    return "absolute" === o ? {
                                        left: "",
                                        right: n
                                    } : {
                                        left: "",
                                        right: t + n
                                    }
                                }
                                return {
                                    left: t - n,
                                    right: ""
                                }
                            }(n),
                            width: a
                        };
                    if (t.css({
                            left: "",
                            right: ""
                        }), o.css({
                            left: "",
                            right: ""
                        }), "absolute" === r) return t.css({
                        width: s
                    }), void o.css(c);
                    t.css(l), o.css(c)
                }

                function a(e) {
                    t.css({
                        top: e
                    });
                    const n = e + r;
                    o.css({
                        top: n
                    })
                }
                const l = function() {
                    let e = St(document).scrollTop(),
                        l = i(e);
                    return () => {
                        const c = St(document).scrollTop(),
                            d = i(c);
                        if ("bottom" === d) {
                            u(d);
                            return a(e + n - c), void(l = "bottom")
                        }
                        if (l !== d) {
                            if (u(d), "absolute" === d) return t.css({
                                top: 0
                            }), o.css({
                                top: r
                            }), s(), void(l = "absolute");
                            "sticky" === d && (s(), a(n), e = c, l = "sticky")
                        }
                    }
                }();

                function c() {
                    s(), l()
                }

                function u(e) {
                    const r = "absolute" === e;
                    t.toggleClass("tv-screener-toolbar--markets_absolute", r), o.toggleClass("tv-screener-sticky-header-wrapper--markets_absolute", r), t.toggleClass("tv-screener-toolbar--markets_sticky", !r), o.toggleClass("tv-screener-sticky-header-wrapper--standalone_sticky", !0), o.toggleClass("tv-screener-sticky-header-wrapper--markets_sticky", !r)
                }
                const d = function() {
                    let e;
                    return () => {
                        clearTimeout(e), e = setTimeout(c, 0)
                    }
                }();
                document.addEventListener("scroll", (function() {
                    l(), (0, Z.isRtl)() && s()
                }), {
                    passive: !0
                }), e.$content[0].addEventListener("scroll", s), window.addEventListener("resize", d), yt(".widgetbar-wrap", s), yt(".tv-screener-table", s), u(i()), c()
            }
            var Et = r(95355);

            function xt(e) {
                const {
                    $before: t = null,
                    $appendTo: r = null,
                    $dropdownContainer: o = null,
                    beforeMakingSelectPopup: n = (() => {}),
                    makeSelectPopup: i,
                    afterMakingSelectPopup: s = (() => {}),
                    afterSelectPopupAppend: a = (() => {})
                } = e, l = {
                    $dropdownContainer: o
                };
                n();
                const {
                    $wrap: c,
                    $button: u,
                    $dropdownContent: d
                } = i(l);
                return s(c, u, d), (t || r) && (t ? c.insertBefore(t) : c.appendTo(r), a(c, u, d)), u
            }
            var Tt, At = r(42491),
                Mt = r(49860),
                Lt = r(67030),
                Pt = r(73715);
            ! function(e) {
                e[e.Header = 0] = "Header", e[e.Table = 1] = "Table"
            }(Tt || (Tt = {}));
            const Ft = {
                [Tt.Header]: {
                    description: "Open header context menu",
                    prepend: !1
                },
                [Tt.Table]: {
                    description: "Open context menu",
                    prepend: !0
                }
            };

            function It(e, t, o) {
                return async function() {
                    const [{
                        TVAction: e
                    }, {
                        AddToWatchlistAction: t
                    }] = await Promise.all([r.e(34215).then(r.bind(r, 26647)), r.e(26417).then(r.bind(r, 62546))]);
                    return {
                        default: e,
                        addToWatchlist: t
                    }
                }().then(r => t(e, r)).then(t => {
                    const r = Object.values(t);
                    return Ft[o].prepend ? function(e, t) {
                        return e._lifecycle.beforeAppendContextMenuItems(t.length > 0 ? "bottom" : void 0).concat(t)
                    }(e.view, r) : r
                })
            }

            function Dt(e, t, o) {
                const {
                    view: n,
                    e: i
                } = e;
                return It(e, t, o).then(e => {
                    return t = e, o = i, r.e(34215).then(r.bind(r, 17515)).then(({
                        ContextMenuManager: e
                    }) => e.showMenu(t, o));
                    var t, o
                }).then(() => {
                    const e = Ft[o].description;
                    n._model.trackEvent(e)
                })
            }
            var Ot, Rt = r(72102),
                Bt = r(72916),
                Nt = r(18184);

            function $t(e, t) {
                const {
                    view: r
                } = e, o = r._bridge, n = t.default, i = r._selectableList ? r._selectableList.getSelectedKeys().length : 1, s = { ...e,
                    selectedSymbolsCount: i
                };
                if ((0, vt.isExternalWidget)(o)) return { ...Wt(s, n)
                };
                if ((0, vt.isScreenerPage)(o) || (0, vt.isMarketPage)(o)) {
                    return { ...0 === i ? Wt(s, n) : {},
                        ...jt(s, t.addToWatchlist)
                    }
                }
                return { ...jt(s, t.addToWatchlist),
                    ...Vt(s, n),
                    ...Ut(s, n)
                }
            }

            function jt(e, t) {
                const {
                    view: r,
                    symbol: o,
                    shortName: n,
                    selectedSymbolsCount: i
                } = e;
                let a, l;
                0 === i ? (a = (0, s.t)("Add {symbolName} to Watchlist").format({
                    symbolName: n
                }), l = [o]) : (a = (0, s.t)("Add Selected Symbols to Watchlist"), l = r._selectableList ? r._selectableList.getSelectedKeys().slice(0) : []);
                return {
                    addToWatchListAction: new t({
                        label: a,
                        disabled: !0,
                        onExecute: () => {
                            (0, At.runOrSignIn)(() => {
                                const e = r._getWatchlist();
                                e && (e.addSymbols(l), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(Ot.AddToWatchlist, "row", !0)))
                            }, {
                                source: "add symbol to watchlist"
                            })
                        }
                    })
                }
            }

            function Wt(e, t) {
                const {
                    view: r
                } = e;
                return ["sector", "industry"].includes(r._model.screener_type) ? function(e, t) {
                    const {
                        e: r
                    } = e, o = Nt(r.target).closest(".tv-screener-table__result-row").find(".tv-screener__symbol");
                    return {
                        openSymbolPageAction: new t({
                            label: (0, s.t)("Open {symbol} Page...").format({
                                symbol: o.text()
                            }),
                            onExecute: () => {
                                window.open(o.attr("href"), "_blank"), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(Ot.OpenSymbolPage, "row", !0))
                            }
                        })
                    }
                }(e, t) : function(e, t) {
                    const {
                        view: r,
                        shortName: o,
                        symbol: n
                    } = e;
                    return {
                        openChartAction: new t({
                            label: (0, s.t)("Open {symbol} Chart...").format({
                                symbol: o
                            }),
                            onExecute: () => {
                                const {
                                    applySymbol: e
                                } = r._bridge;
                                e && (e(n, !0), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(Ot.OpenChart, "row", !0)))
                            }
                        })
                    }
                }(e, t)
            }

            function Vt(e, t) {
                const {
                    view: r,
                    symbol: o,
                    shortName: n,
                    selectedSymbolsCount: i
                } = e;
                if (0 !== i) return {};
                return {
                    compareAction: new t({
                        label: (0, s.t)("Add {symbol} to Compare").format({
                            symbol: n
                        }),
                        onExecute: () => {
                            var e;
                            null === (e = r._bridge.chartWidgetCollection) || void 0 === e || e.activeChartWidget.value().addCompareStudy(o)
                        }
                    })
                }
            }

            function Ut(e, t) {
                const {
                    symbol: r,
                    shortName: o
                } = e;
                return {
                    addToTextNotesAction: new t({
                        icon: Bt,
                        label: (0, s.t)("Add Text Note for {symbol}").format({
                            symbol: o
                        }),
                        onExecute: () => {
                            (0, At.runOrSignIn)(() => {
                                var e;
                                (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(Ot.AddTextNote, "row", !0)), null === (e = window.widgetbar) || void 0 === e || e.setPage("base"), (0, Mt.switchDetailsViewMode)(Lt.ViewMode.SymbolNotes, r, !0)
                            }, {
                                source: "Add text note in screener"
                            })
                        }
                    })
                }
            }! function(e) {
                e.AddToWatchlist = "add_to_watchlist", e.OpenChart = "open_chart", e.AddToCompare = "add_to_compare", e.AddTextNote = "add_text_note", e.OpenSymbolPage = "open_symbol_page"
            }(Ot || (Ot = {}));
            var qt, zt = r(65066),
                Ht = r.n(zt),
                Yt = r(87479),
                Kt = r(32161);

            function Xt(e, t, r) {
                return e.get((0, H.getFieldNameWithResolution)(t, r))
            }! function(e) {
                e.Bool = "bool", e.FundamentalPrice = "fundamental_price", e.Number = "number", e.Percent = "percent", e.Price = "price", e.Text = "text", e.Time = "time"
            }(qt || (qt = {}));
            const Gt = ["&mdash;", '<span class="tv-screener-table__cell--color-normal">—</span>'];

            function Qt(e, t, r, o, n) {
                if (!Jt() && !n) return "";
                const i = !e && r === qt.Price || !t && r === qt.FundamentalPrice || Gt.includes(o),
                    s = ![qt.Price, qt.FundamentalPrice].includes(r);
                if (i || s) return "";
                let a;
                return a = r === qt.Price ? e : t, `<span class="tv-screener-table__cell-currency-value">${a}</span>`
            }

            function Jt() {
                return n.getBool("screener.showCurrencyLabel", !0)
            }
            var Zt = r(68979),
                er = r(41656),
                tr = r(54179),
                rr = r(31780),
                or = r(18184),
                nr = r(18184);
            class ir {
                constructor(e) {
                    this._setOptions(e), this._fields = {}, this._fieldsOrder = Array.isArray(e.fieldsOrder) && e.fieldsOrder || [], this.fieldsOrderChange = new(v()), this._columnsMap = new Map, this.afterFixCols = new(v()), this._additionalColumns = [], this._hiddenColumns = 0, this._debouncedFixCols = (0, M.default)(() => {
                        this._unhideColumns(), this._unhideCells(), this._fixCols()
                    }, 50), this.dragStarted = new(Ht()), this._fieldsOrderChange = !1, this._updateEmptyMessageIcon = this._updateEmptyMessageIcon.bind(this), Yt.watchedTheme.subscribe(this._updateEmptyMessageIcon)
                }
                _setOptions(e) {
                    this._options = e || {}, this._model = this._options.model, this._defaultFormatter = this._options.defaultFormatter || (e => e.value), this._nullFormatter = this._options.nullFormatter || (() => "&mdash;"), this._widthChange = this._options.widthChange, this._visibilityChange = this._options.visibilityChange, this._noDataString = this._options.noDataString, this._isUnavailableWidgetMarket = this._options.isUnavailableWidgetMarket, this._disableStickyHeader = e.disableStickyHeader
                }
                updateSortField(e, t) {
                    const r = this.getTh(e);
                    e && t && r.size() && (this.$theadRow.find(".tv-screener-table__sort--desc,.tv-screener-table__sort--asc").removeClass("tv-screener-table__sort--desc tv-screener-table__sort--asc"), r.find(".js-table-sort").empty().addClass("tv-screener-table__sort--" + t).append("asc" === t ? tr : rr))
                }
                highlightCell(e, t, r) {
                    const o = this.$tbody[0].querySelector(`tr[data-symbol="${e}"] td[data-field-key="${t}"]`);
                    if (o) {
                        o.classList.add("tv-screener-table__cell--highlighted");
                        const e = o.querySelector("span");
                        if (e) {
                            const t = r ? "tv-screener-table__cell--growing" : "tv-screener-table__cell--falling";
                            e.classList.add(t)
                        }
                    }
                }
                flickRow(e) {
                    this.$tbody[0].querySelectorAll(`tr[data-symbol="${e}"] td`).forEach(e => {
                        const t = e.querySelector("span");
                        t && t.classList.remove("tv-screener-table__cell--growing", "tv-screener-table__cell--falling")
                    })
                }
                _createTable() {
                    if (this._table) return;
                    const e = document.createElement("table"),
                        t = ["tv-data-table"];
                    this._options.addTableClasses && t.push(...this._options.addTableClasses), e.classList.add(...t);
                    const r = document.createElement("colgroup"),
                        o = document.createElement("thead"),
                        n = ["tv-data-table__thead"];
                    this._options.addTheadClasses && n.push(...this._options.addTheadClasses), o.classList.add(...n);
                    const i = document.createElement("tr"),
                        s = ["tv-data-table__thead-row"];
                    this._options.addTheadRowClasses && s.push(...this._options.addTheadRowClasses), i.classList.add(...s);
                    const a = document.createElement("tbody");
                    a.classList.add("tv-data-table__tbody"), e.appendChild(r), e.appendChild(o), o.appendChild(i), e.appendChild(a), this._table = e, this._colgroup = r, this._theadRow = i, this._tbody = a, window.addEventListener("resize", () => this._debouncedFixCols()), this._widthChange.subscribe(this, () => this._debouncedFixCols()), this._visibilityChange && this._visibilityChange.subscribe(e => {
                        e && this._debouncedFixCols()
                    })
                }
                _createStickyWrapper() {
                    if (this._stickyWrapper) return;
                    const e = ["tv-data-table-sticky-wrapper"];
                    this._options.addStickyHeaderWrapperClasses && e.push(...this._options.addStickyHeaderWrapperClasses);
                    const t = document.createElement("div");
                    t.classList.add(...e);
                    const r = this._table.cloneNode(!0);
                    t.append(r), this._stickyWrapper = t
                }
                _createHeader() {
                    const e = document.createDocumentFragment(),
                        t = document.createDocumentFragment();
                    this._disableStickyHeader || this._createStickyWrapper();
                    for (let o = 0; o < this._columnsOrder.length; ++o) {
                        const n = this._columnsOrder[o];
                        if (!this._fields[n]) continue;
                        const i = document.createElement("th");
                        i.setAttribute("data-field", n);
                        const s = ["tv-data-table__th", "tv-data-table__cell", "js-tv-data-table-th", "js-tv-data-table-th-" + this._esc(n)];
                        if (this._options.addThClasses) {
                            const e = "function" == typeof this._options.addThClasses ? this._options.addThClasses(n, this._fields[n]) : this._options.addThClasses;
                            s.push(...e)
                        }
                        i.classList.add(...(r = s, r.filter(Boolean)));
                        const a = "function" == typeof this._options.titleFormatter ? this._options.titleFormatter(n, this._fields[n]) : this._fields[n] && (this._fields[n].content || this._fields[n].title) || n;
                        a instanceof or ? i.append(a[0]) : i.innerHtml = a, this._setDraggable(i), t.append(i);
                        const l = document.createElement("col");
                        l.classList.add("js-tv-data-table-col", "js-tv-data-table-col-" + this._esc(n)), e.append(l)
                    }
                    var r;
                    sr(this._colgroup), sr(this._theadRow);
                    const o = this._fields[this._model.searchField] ? this._fields[this._model.searchField].searchValue : void 0;
                    if (this._disableStickyHeader) this._colgroup.append(e), this._theadRow.append(t), this._setSearchInput(this._theadRow, o);
                    else {
                        const r = this._stickyWrapper.querySelector("table"),
                            n = r.querySelector("colgroup"),
                            i = r.querySelector("thead tr");
                        sr(n), sr(i);
                        const s = e.cloneNode(!0);
                        n.append(e), this._colgroup.append(s);
                        const a = t.cloneNode(!0);
                        i.append(t), this._theadRow.append(a), this._theadRowSticky = i, r.classList.add("tv-screener-table--fixed"), nr(this._theadRow).find(".js-table-sort").remove(), this._setSearchInput(this._theadRowSticky, o)
                    }
                }
                _setDraggable(e) {
                    const t = nr(e);
                    if (t.is(".js-draggable")) return;
                    const o = nr(this._theadRow);
                    let n = !1;
                    t.addClass("js-draggable").on("mousedown touchstart", e => {
                        if (t.data("field") === this._model.searchField) return;
                        e.preventDefault(), t.css({
                            position: "relative",
                            left: 0
                        });
                        const i = t.offset().left;
                        let s = i;
                        const a = e.pageX || e.originalEvent.touches[0].pageX,
                            l = e => {
                                const c = (e.pageX || e.originalEvent.touches[0].pageX) - a;
                                if (!n) {
                                    if (Math.abs(c) < 10) return;
                                    r.e(34215).then(r.bind(r, 17515)).then(({
                                        ContextMenuManager: e
                                    }) => {
                                        null !== e.getShown() && (n = !1, t.css("left", "auto"), nr(window).off("mousemove touchmove", l), this._onDragStop(t))
                                    }), this._onDragStart(t), t.one("click", e => {
                                        n && e.stopPropagation()
                                    })
                                }
                                n = !0;
                                const u = o.offset().left,
                                    d = o.outerWidth(),
                                    h = t.outerWidth(),
                                    p = Math.max(u, Math.min(u + d - h, i + c)),
                                    f = p + h / 2;
                                let g = nr(),
                                    m = !1;
                                const _ = t.prev();
                                if (_.size() && ((0, Z.isRtl)() ? f > _.offset().left + _.outerWidth() / 2 : p <= u || f < _.offset().left + _.outerWidth() / 2)) g = _;
                                else {
                                    const e = t.next();
                                    if (e.size() && !e.is(".i-hidden")) {
                                        (p + h >= u + d || ((0, Z.isRtl)() ? f < e.offset().left + e.outerWidth() / 2 : f > e.offset().left + e.outerWidth() / 2)) && (g = e, m = !0)
                                    }
                                }
                                const v = g.data("field");
                                if (g.size() && "name" !== v) {
                                    const e = t.data("field"),
                                        r = nr(this._colgroup).find(".js-tv-data-table-col-" + this._esc(e)),
                                        o = nr(this._colgroup).find(".js-tv-data-table-col-" + this._esc(v));
                                    let n = nr(),
                                        i = nr();
                                    this._stickyWrapper && (n = nr(this._stickyWrapper).find(".js-tv-data-table-col-" + this._esc(e)), i = nr(this._stickyWrapper).find(".js-tv-data-table-col-" + this._esc(v))), m ? (r.insertAfter(o), n.size() && i.size() && n.insertAfter(i)) : (r.insertBefore(o), n.size() && i.size() && n.insertBefore(i));
                                    let a = nr(),
                                        l = nr();
                                    this._stickyWrapper && (a = nr(this._stickyWrapper).find(".js-tv-data-table-th-" + this._esc(e)), l = nr(this._stickyWrapper).find(".js-tv-data-table-th-" + this._esc(v))), m ? (t.insertAfter(g), s = t.offset().left - g[0].offsetWidth,
                                        a.size() && l.size() && a.insertAfter(l)) : (t.insertBefore(g), s = t.offset().left + g[0].offsetWidth, a.size() && l.size() && a.insertBefore(l)), this._swapCols(e, v)
                                }
                                t.css("left", p - s)
                            };
                        nr(window).on("mousemove touchmove", l).one("mouseup touchend", e => {
                            setTimeout(() => {
                                n = !1
                            }, 0), t.css("left", "auto"), nr(window).off("mousemove touchmove", l), n && this._onDragStop(t)
                        })
                    })
                }
                _setSearchInput(e, t) {
                    const r = e.querySelector(".js-search-query");
                    if (!r) return;
                    const o = r.querySelector(".js-search-input"),
                        n = r.querySelector(".js-input-reset");
                    (0, vt.isScreenerPage)(this._model._bridge) && o.focus();
                    const i = Boolean(t);
                    n.classList.toggle("i-hidden", !i), i && (o.value = t), o.addEventListener("input", () => {
                        n.classList.toggle("i-hidden", 0 === o.value.length)
                    });
                    const s = (0, M.default)(() => {
                        this._fields[this._model.searchField].searchValue = o.value, this._model.loading || this._model.update()
                    }, 400);
                    o.addEventListener("input", () => s())
                }
                _onDragStart(e) {
                    this._model.preventPrevScanRequest(), this.dragStarted.setValue(!0);
                    const t = e.data("field"),
                        r = this._getColByField(t);
                    r && (this._options.addDraggingThClasses && e[0].classList.add(...this._options.addDraggingThClasses), this._options.addDraggingColClasses && r.classList.add(...this._options.addDraggingColClasses))
                }
                _swapCols(e, t) {
                    const r = this._columnsOrder.indexOf(e),
                        o = this._columnsOrder.indexOf(t);
                    this._columnsOrder[r] = this._columnsOrder.splice(o, 1, this._columnsOrder[r])[0], this._fieldsOrderChanged = !0;
                    const n = Math.min(r, o),
                        i = Math.max(r, o),
                        s = this._tbody.children;
                    for (let e = 0; e < s.length; e++) {
                        const t = s[e].children,
                            r = t[n];
                        t[i].after(r)
                    }
                    const a = this._fieldsOrder.indexOf(e),
                        l = this._fieldsOrder.indexOf(t);
                    this._fieldsOrder[a] = this._fieldsOrder.splice(l, 1, this._fieldsOrder[a])[0]
                }
                _onDragStop(e) {
                    this.dragStarted.setValue(!1);
                    const t = e.data("field"),
                        r = this._getColByField(t);
                    r && (this._options.addDraggingThClasses && e[0].classList.remove(...this._options.addDraggingThClasses), this._options.addDraggingColClasses && r.classList.remove(...this._options.addDraggingColClasses), this._fieldsOrderChanged && (this.fieldsOrderChange.fire(), this._fieldsOrderChanged = !1, this._model.trackEvent(`Drag and drop ${"big"===this._options.table_style?"quotes":"non-quotes"} column`), (0, ee.sendSnowPlowData)(new ce(t))), this._fixCols())
                }
                _getColByField(e) {
                    return this._colgroup.querySelector(".js-tv-data-table-col-" + this._esc(e))
                }
                _fixCols() {
                    const e = Array.from(this._theadRow.children);
                    if (0 === e.length) return;
                    this._table.classList.remove("tv-screener-table--fixed");
                    const t = this._table.querySelectorAll("col");
                    let r = e.map(e => Math.floor(e.getBoundingClientRect().width));
                    const o = "big" === this._options.table_style,
                        n = window.innerWidth > L.breakpoints.tablet,
                        i = this._table.parentNode.offsetWidth;
                    let s = ar(r);
                    if (o && n && s > i) {
                        do {
                            s > i && (r.pop(), this._hideColumn()), s = ar(r)
                        } while (s > i);
                        const e = Math.floor((i - s) / r.length);
                        r = r.map(t => t + e);
                        const t = r.length - 1,
                            o = r[t],
                            n = i - ar(r);
                        r[t] = o + n
                    }
                    if (t.forEach((e, t) => {
                            const o = r[t];
                            o ? e.style.width = o + "px" : e.classList.add("i-hidden")
                        }), this._stickyWrapper) {
                        const e = this._stickyWrapper,
                            t = e.querySelector("colgroup"),
                            o = e.querySelector("table"),
                            n = this._colgroup.cloneNode(!0);
                        t.replaceWith(n), o.classList.add("tv-screener-table--fixed"), this._stickyWrapper.style.width = function(e, t) {
                            if (!((0, vt.isMarketPage)(e._model._bridge) && window.innerWidth > L.breakpoints.phone)) return;
                            return e._stickyWrapper.querySelectorAll("th").forEach((e, r) => {
                                t[r] ? e.classList.remove("i-hidden") : e.classList.add("i-hidden")
                            }), St(e._table).width() + "px"
                        }(this, r) || s + "px"
                    }
                    this._table.classList.add("tv-screener-table--fixed"), this.afterFixCols.fire()
                }
                _hideColumn() {
                    const e = this._theadRow.children;
                    for (let t = e.length - 1; t >= 0; t--) {
                        const r = e[t];
                        if (!r.classList.contains("i-hidden")) {
                            r.classList.add("i-hidden");
                            break
                        }
                    }
                    this._hiddenColumns++
                }
                _unhideColumns() {
                    const e = this._table.querySelectorAll("col"),
                        t = this._theadRow.querySelectorAll("th");
                    e.forEach((e, r) => {
                        e.style.width = "", e.classList.remove("i-hidden"), t[r].classList.remove("i-hidden")
                    }), this._hiddenColumns = 0
                }
                _unhideCells() {
                    if (!this._tbody) return;
                    this._tbody.querySelectorAll("td.i-hidden").forEach(e => {
                        e.classList.remove("i-hidden")
                    })
                }
                toggleSignals(e) {
                    const t = this._fields[e];
                    t.displaySignal = !t.displaySignal;
                    const r = this._columnsOrder.indexOf(e);
                    if (-1 === r) return;
                    const o = this._tbody.querySelectorAll(`.tv-data-table__row .tv-data-table__cell:nth-child(${r+1}) .tv-screener-table__signal`);
                    0 !== o.length && (o.forEach(e => e.classList.toggle("i-hidden", !t.displaySignal)), this._fixCols())
                }
                get $element() {
                    return this._createTable(), nr(this._table)
                }
                get $tbody() {
                    return this._createTable(), nr(this._tbody)
                }
                get $stickyHeader() {
                    return this._createTable(), this._createStickyWrapper(), nr(this._stickyWrapper)
                }
                get $theadRow() {
                    return this._disableStickyHeader ? nr(this._theadRow) : nr(this._theadRowSticky)
                }
                get additionalColumns() {
                    return this._additionalColumns
                }
                get fieldsOrder() {
                    return this._fieldsOrder
                }
                get columnsOrder() {
                    return this._columnsOrder
                }
                setColumnsMap(e) {
                    this._columnsMap = e
                }
                setFields(e) {
                    this._fieldsOrder = [], this._columnsOrder = [];
                    for (const [t, r] of Object.entries(e)) this._fieldsOrder.push(t), r.skipField || this._columnsOrder.push(t);
                    this._fields = {}, this._additionalColumns = [], this._fieldsOrder.forEach(t => {
                        this._fields[t] = e[t], e[t] && e[t].additionalColumns && e[t].additionalColumns.forEach(e => {
                            this._additionalColumns.includes(e) || this._additionalColumns.push(e)
                        })
                    }), this.fieldsOrderChange.fire(), this._fieldsOrderChange = !0
                }
                update(e) {
                    this._fieldsOrderChange && (this._unhideColumns(), this._createTable(), this._createHeader()), this.clearData(), this.append(e), this._fieldsOrderChange && (this._fieldsOrderChange = !1), this._fixCols()
                }
                _updateEmptyMessageIcon() {
                    if (!this._$emptyMessage) return;
                    const e = function() {
                            var e;
                            const t = Yt.watchedTheme.value();
                            return t || ((null === (e = document.querySelector("html")) || void 0 === e ? void 0 : e.classList.contains("theme-dark")) ? b.StdTheme.Dark : b.StdTheme.Light)
                        }(),
                        t = this._$emptyMessage.find("i"),
                        r = e === b.StdTheme.Light ? er : Zt;
                    t.html(r)
                }
                _setEmptyMessage() {
                    let e, t = "";
                    (0, vt.isScreenerPage)(this._model._bridge) ? t = "tv-screener-table__empty-result--fixed": ((0, vt.isChartPage)(this._model._bridge) || (0, vt.isExternalWidget)(this._model._bridge)) && (t = "tv-screener-table__empty-result--relative"),
                        e = this._isUnavailableWidgetMarket ? (0, s.t)("This data is only available directly on {openLink}TradingView{closeLink}").format({
                            openLink: '<a href="https://www.tradingview.com/" target="_blank" rel="noopener" class="tv-screener-table__empty-result-link">',
                            closeLink: "</a>"
                        }) : this._noDataString || (0, s.t)("No symbols match your criteria"), this._$emptyMessage = nr(`\n\t\t\t<div class="tv-screener-table__empty-result ${t}">\n\t\t\t\t<i class="js-no-results-icon"></i>\n\t\t\t\t<div class="tv-screener-table__empty-description">${e}</div>\n\t\t\t</div>\n\t\t`).insertAfter(this._table), this._updateEmptyMessageIcon(), (0, vt.isMarketPage)(this._model._bridge) ? this._fixCols() : this._model._view.fixStandaloneWidth()
                }
                append(e) {
                    this._$emptyMessage && this._$emptyMessage.remove();
                    const t = Xt(this._columnsMap, "currency", this._model.selectedIntervalId),
                        r = Xt(this._columnsMap, "fundamental_currency_code", this._model.selectedIntervalId),
                        o = document.createDocumentFragment();
                    for (let n = 0; n < e.length; n++) {
                        const i = e[n];
                        if (!Array.isArray(i.d)) continue;
                        const s = i.d[t],
                            a = i.d[r],
                            l = ["tv-data-table__row"];
                        if (this._options.addRowClasses) {
                            const e = "function" == typeof this._options.addRowClasses ? this._options.addRowClasses(i) : this._options.addRowClasses;
                            l.push(...e)
                        }
                        const c = [];
                        if (this._options.addRowAttrs) {
                            const e = "function" == typeof this._options.addRowAttrs ? this._options.addRowAttrs(i) : this._options.addRowAttrs;
                            for (const [t, r] of Object.entries(e)) c.push([t, r])
                        }
                        const h = document.createDocumentFragment();
                        let p = this._hiddenColumns;
                        for (let e = this._fieldsOrder.length - 1; e >= 0; --e) {
                            const t = this._fieldsOrder[e],
                                r = this._fields[t];
                            if (!r || r.skipField) continue;
                            const o = Xt(this._columnsMap, t, this._model.selectedIntervalId),
                                n = r.additionalColumns ? r.additionalColumns.map(e => lr(i.d, Xt(this._columnsMap, e, this._model.selectedIntervalId))) : [];
                            let l = "";
                            const c = ["tv-data-table__cell"];
                            let f;
                            if (r.tooltip && ("function" == typeof r.tooltip ? l = r.tooltip(...n, r) : "string" == typeof r.tooltip && (l = r.tooltip), c.push("apply-common-tooltip")), "price" === r.type && n.length >= 4) {
                                const e = n.slice(-4);
                                e[2] = "true" === e[2], f = (0, u.getPriceFieldFormatter)(...e)
                            } else f = (0, u.getFieldFormatter)(r, this._model.screener_type, !1);
                            "name" === t && n.push(i.s);
                            const g = lr(i.d, o);
                            let m = null === g ? this._nullFormatter() : f && f.format(g) || this._defaultFormatter({
                                value: g,
                                fieldKey: t,
                                field: r,
                                rowData: i,
                                fieldsOrder: this._fieldsOrder,
                                title: l
                            });
                            if (this._options.addCellClasses) {
                                const e = "function" == typeof this._options.addCellClasses ? this._options.addCellClasses({
                                    value: g,
                                    fieldKey: t,
                                    field: r
                                }) : this._options.addCellClasses;
                                c.push(...e)
                            }
                            const _ = r.additionalFormatter ? r.additionalFormatter(...n) : "";
                            r.mutateDisplayValue && (m = r.mutateDisplayValue(m, ...n, r)), this._model.hasMarkedSymbols() && c.push("tv-screener-table__cell--with-marker"), p > 0 && (c.push("i-hidden"), p--);
                            let v = m + _ + Qt(s, a, r.type, m, (0, vt.isMarketPage)(this._model._bridge));
                            (t === w.ScanFields.Name || t === w.ScanFields.Sector && this._model.screener_type === d.ScreenerType.CryptoMkt) && (v = (0, Kt.symbolNameWrap)({
                                symbolHtml: v,
                                fieldsOrder: this._fieldsOrder,
                                rowData: i.d,
                                proSymbol: i.s
                            }));
                            const b = document.createElement("td");
                            b.classList.add(...c), b.title = l && "name" !== t ? l : "", b.setAttribute("data-field-key", t), b.innerHTML = v, h.prepend(b)
                        }
                        const f = document.createElement("tr");
                        f.classList.add(...l), c.forEach(e => f.setAttribute(...e)), f.append(h), this._options.onRowBuild && this._options.onRowBuild(f, i), o.appendChild(f)
                    }
                    this._tbody.appendChild(o), 0 === this._tbody.querySelectorAll("tr").length && this._setEmptyMessage(), this._options.onUpdate && this._options.onUpdate()
                }
                clearData(e) {
                    if (this._tbody)
                        if (e) {
                            const t = this._tbody.children,
                                r = t.length;
                            for (let o = e; o < r; o++) {
                                const r = t[e];
                                this._tbody.removeChild(r)
                            }
                        } else this._tbody.innerHTML = ""
                }
                setThContent(e, t) {
                    const r = this.getTh(e);
                    r.size() && (r.empty(), t instanceof or ? r.append(t) : r.html(t), "name" === e && this._setSearchInput(this.$theadRow[0], this._fields[e].searchValue))
                }
                setColumnTitle(e, t) {
                    const r = this.getTh(e);
                    r.size() && r.find(".js-head-title").text(t)
                }
                setSearchText(e) {
                    const t = this.getTh(this._model.searchField);
                    t.size() && t.find(".js-field-total").text(e)
                }
                getTh(e) {
                    const t = this.$theadRow;
                    return t && t.find(".js-tv-data-table-th-" + this._esc(e)) || nr()
                }
                _esc(e) {
                    return e.replace(/\./g, "_")
                }
            }

            function sr(e) {
                const t = e.children;
                0 !== t.length && Array.from(t).forEach(t => e.removeChild(t))
            }

            function ar(e) {
                return e.reduce((e, t) => e + t)
            }

            function lr(e, t) {
                return e[t]
            }
            var cr = r(44990),
                ur = r(38140);
            const dr = {
                america: "usa",
                brazil: "brazilia",
                euronext: "europe",
                hongkong: "hong-kong",
                newzealand: "new-zealand",
                uk: "united-kingdom",
                rsa: "south-africa"
            };

            function hr(e, t, r = "sector") {
                return e && t ? (dr[t] && (t = dr[t]), `/markets/stocks-${t}/sectorandindustry-${r}/${(o=e,o.replace(/[^a-zA-Z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")).toLowerCase()}/`) : "/markets/stocks-usa/sectorandindustry-sector/";
                var o
            }

            function pr(e) {
                const t = e._model,
                    r = e._bridge,
                    o = {
                        screenerType: _r(t),
                        market: t.markets[0],
                        utm: t.utm,
                        largeChartUrl: t.largeChartUrl,
                        tableStyle: r.table_style,
                        screenerPlacement: (0, vt.getScreenerPage)(r),
                        openChartOnSameTab: r.open_chart_on_same_tab,
                        bridgeBaseUrl: r.baseUrl
                    };
                return e => function(e) {
                    switch (e.fieldKey) {
                        case w.ScanFields.Name:
                            return function(e) {
                                const {
                                    value: t,
                                    rowData: r,
                                    title: o,
                                    screenerType: n,
                                    screenerPlacement: i,
                                    utm: s,
                                    largeChartUrl: a,
                                    openChartOnSameTab: l
                                } = e, c = {
                                    proName: r.s,
                                    type: n
                                };
                                let u;
                                u = "widget" === i && a ? (0, ur.makeTemplateSymbolUrl)(a, c) : n === d.ScreenerType.ContinuousFutures ? (0, ur.makeSymbolChartUrl)(c) : (0, ur.makeSymbolPageUrl)(c, s);
                                if ("chart" !== i) return `<a class="tv-screener__symbol apply-common-tooltip" title="${(0,Pe.htmlEscape)(o)}" href="${(0,Pe.htmlEscape)(u)}" ${l?"":'target="_blank" rel="noopener"'}>${t}</a>`;
                                return `<div class="tv-screener__symbol tv-screener__symbol--text apply-common-tooltip" title="${o}">${t}</div>`
                            }(e);
                        case w.ScanFields.Description:
                            return function(e) {
                                const {
                                    value: t,
                                    screenerType: r,
                                    market: o
                                } = e;
                                if (["sector", "industry"].includes(r)) {
                                    const e = fr(t);
                                    return `<a class="tv-screener__symbol" target="_blank" rel="noopener" href="${hr(t,o,r)}">\n\t\t\t\t\t\t${e}\n\t\t\t\t\t</a>`
                                }
                                return gr(t)
                            }(e);
                        case w.ScanFields.Sector:
                            return function(e) {
                                const {
                                    value: t,
                                    fieldKey: r,
                                    screenerType: o,
                                    market: n,
                                    tableStyle: i,
                                    utm: s,
                                    openChartOnSameTab: a,
                                    rowData: l
                                } = e;
                                if (o === d.ScreenerType.CryptoMkt) {
                                    const e = (0, ur.makeSymbolPageUrl)({
                                        proName: l.s,
                                        type: "crypto"
                                    });
                                    return `<a class="tv-screener__symbol" href="${(0,Pe.htmlEscape)((0,cr.addUtmToUrl)(e,s))}" ${a?"":'target="_blank" rel="noopener"'}>\n\t\t\t\t\t\t${t}\n\t\t\t\t\t</a>`
                                }
                                if ("big" === i) return mr(t, n, r);
                                return t
                            }(e);
                        case w.ScanFields.Industry:
                            return function(e) {
                                const {
                                    value: t,
                                    fieldKey: r,
                                    screenerType: o,
                                    market: n,
                                    tableStyle: i
                                } = e;
                                if ("big" === i && o !== d.ScreenerType.CryptoMkt) return mr(t, n, r);
                                return gr(t)
                            }(e);
                        case w.ScanFields.Country:
                            return fr(e.value);
                        default:
                            return e.value
                    }
                }({ ...e,
                    ...o
                })
            }

            function fr(e) {
                return (0, s.t)(e)
            }

            function gr(e) {
                const t = fr(e);
                return `<span class="tv-screener-table__cell--fix-width" title="${t}">${t}</span>`
            }

            function mr(e, t, r) {
                const o = fr(e);
                return `<a class="tv-screener__symbol" target="_blank" rel="noopener" href="${hr(e,t,r)}">\n\t\t\t\t<span class="tv-screener__symbol--secondary">${o}</span>\n\t\t\t</a>`
            }

            function _r(e) {
                return e.screener_type
            }
            var vr, br = r(52946);

            function yr(e) {
                const t = e._fields_order,
                    r = e._disableStickyHeader,
                    o = e._lifecycle,
                    n = e.widthChange,
                    i = e._model,
                    a = i.screener_type,
                    l = e._bridge,
                    c = l.table_style,
                    h = l.hide_controls,
                    p = l.visible,
                    f = (0, vt.getScreenerPage)(l),
                    g = u.fields.description,
                    m = { ...{
                            model: i,
                            fieldsOrder: t,
                            titleFormatter: (t, r) => {
                                const n = e._getThContent(t, r);
                                return t === w.ScanFields.Name && o.beforeAppendSymbolsHeader(n.get(0)), n
                            },
                            defaultFormatter: pr(e),
                            addTheadClasses: ["tv-screener-table__thead", r ? "tv-screener-table__thead--sticky" : "tv-screener-table__thead--regular"],
                            addThClasses: ["tv-data-table__sortable", "tv-screener-table__sortable", "tv-screener-table__th", c ? "tv-screener-table__th--" + c : "", "widget" === f && h ? "tv-screener-table__th--no-toolbar" : ""],
                            addCellClasses: e => {
                                const {
                                    value: t,
                                    fieldKey: r,
                                    field: o
                                } = e, n = ["tv-screener-table__cell"];
                                return n.push(... function(e) {
                                    const t = [];
                                    e.align === vr.Right || e.align === vr.Center || e.control && "select" !== e.control || t.push("tv-screener-table__cell--left");
                                    e.align !== vr.Center || e.control || t.push("tv-screener-table__cell--center");
                                    return t
                                }(o)), o.highlightChange && t && n.push(t >= 0 ? "tv-screener-table__cell--up" : "tv-screener-table__cell--down"), r !== w.ScanFields.Name || !g.disabled && g.checked || n.push("widget" === f ? "tv-screener-table__cell--widget-without-description" : "tv-screener-table__cell--without-description"), c && n.push("tv-screener-table__cell--" + c), "widget" === f && n.push(... function(e, t, r) {
                                    const o = [];
                                    e && o.push("tv-screener-table__cell--no-toolbar");
                                    t === d.ScreenerType.CryptoMkt && o.push("tv-screener-table__cell--crypto_mkt");
                                    return o
                                }(h, a)), n
                            },
                            widthChange: n,
                            visibilityChange: p,
                            table_style: c,
                            noDataString: e._noDataString,
                            isUnavailableWidgetMarket: e._isUnavailableWidgetMarket,
                            disableStickyHeader: r,
                            onRowBuild: (t, r) => {
                                const n = e._selectableList;
                                "chart" === f && br.linking.proSymbol.value() === r.s && n && (e._setActiveElem(t), n.focusItem(t)), o.beforeAppendSymbol(r.s, t)
                            },
                            onUpdate: () => {
                                const t = e._selectableList;
                                t && t.restore()
                            }
                        },
                        sortable: !0,
                        addTableClasses: ["tv-screener-table"],
                        addTheadRowClasses: ["tv-data-table__stroke", "tv-screener-table__head"],
                        addRowClasses: () => ["tv-data-table__stroke", "tv-screener-table__result-row"],
                        addRowAttrs: e => ({
                            "data-symbol": e.s
                        }),
                        addStickyHeaderWrapperClasses: ["tv-screener-sticky-header-wrapper"],
                        addDraggingThClasses: ["tv-screener-table__th--dragging"],
                        addDraggingColClasses: ["tv-screener-table__col--dragging"]
                    },
                    _ = new ir(m);
                return _.setFields({
                    name: {
                        title: (0, s.t)("Ticker")
                    }
                }), _
            }! function(e) {
                e.Center = "center", e.Right = "right"
            }(vr || (vr = {}));
            var wr, Sr = r(18184);

            function Cr(e) {
                const {
                    view: t
                } = e;
                return t._bridge.hide_controls ? Promise.resolve() : Dt(e, kr, Tt.Header)
            }

            function kr(e, t) {
                const {
                    fieldKey: r
                } = e, o = t.default, n = u.fields[r], i = { ...e,
                    field: n
                };
                return { ...Er(i, o),
                    ...xr(i, o),
                    ...Tr(i, o),
                    ...Ar(i, o)
                }
            }

            function Er(e, t) {
                const {
                    view: r,
                    fieldKey: o
                } = e;
                if ("name" !== o) return {};
                const i = new t({
                        label: (0, s.t)("Show symbols for the last session"),
                        onExecute: () => {
                            const e = r._model.currentFilterState().options,
                                t = !e.active_symbols_only;
                            e.active_symbols_only = t, r._model.update(), r.$filterSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", r._model.isFilterSetChanged()), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ActiveOnly, "header", t))
                        },
                        checkable: !0,
                        checked: !!r._model.currentFilterState().options.active_symbols_only
                    }),
                    a = new t({
                        label: !u.fields.description.disabled && u.fields.description.checked ? (0, s.t)("Hide description") : (0, s.t)("Show description"),
                        disabled: u.fields.description.disabled,
                        onExecute: () => {
                            const e = !u.fields.description.checked;
                            u.fields.description.checked = e, r.table.update(r._data), r.$fieldSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", r._model.isFieldSetChanged()), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ToggleDescription, "header", e))
                        }
                    }),
                    l = new t({
                        label: !u.fields.type.disabled && u.fields.type.checked ? (0, s.t)("Hide symbol type") : (0, s.t)("Show symbol type"),
                        disabled: u.fields.type.disabled,
                        onExecute: () => {
                            const e = !u.fields.type.checked;
                            u.fields.type.checked = e, r.table.update(r._data), r.$fieldSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", r._model.isFieldSetChanged()), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ToggleSymbolType, "header", e))
                        }
                    }),
                    c = !["forex", "crypto"].includes(r._model.screener_type),
                    d = new t({
                        label: Jt() ? (0, s.t)("Hide currency") : (0, s.t)("Show currency"),
                        onExecute: () => {
                            const e = !Jt();
                            var t;
                            t = e, n.setValue("screener.showCurrencyLabel", t), r.table.update(r._data), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ToggleShowCurrency, "header", e))
                        }
                    });
                return {
                    toggleActiveSymbolsFilterAction: i,
                    ...c ? {
                        toggleCurrencyDisplayAction: d
                    } : null,
                    toggleDescriptionAction: a,
                    toggleSymbolTypeAction: l
                }
            }

            function xr(e, t) {
                const {
                    view: r,
                    fieldKey: o,
                    field: n
                } = e;
                if ("name" === o) return {};
                return {
                    removeColumnAction: new t({
                        label: (0, s.t)("Remove column"),
                        onExecute: () => {
                            n.checked = !1;
                            const e = r._table.fieldsOrder.filter(e => e !== o);
                            r._model.fieldSetChanged.fire(e.filter(e => u.fields[e] && !0 !== u.fields[e].disabled && !0 !== u.fields[e].hiddenColumn)), r._model.update(),
                                r.$fieldSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", r._model.isFieldSetChanged()), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.RemoveColumn, "header", o))
                        }
                    })
                }
            }

            function Tr(e, t) {
                const {
                    view: r,
                    fieldKey: o,
                    field: n,
                    e: i
                } = e, a = i.currentTarget || i.target, l = new t({
                    label: (0, s.t)("Reset filter"),
                    onExecute: () => {
                        r.resetFilter(o), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ResetFilter, "header", o))
                    }
                }), c = new t({
                    label: (0, s.t)("Change filter"),
                    onExecute: () => {
                        const e = Sr(a).closest("th");
                        r.showInplaceEditor(o, e), i.stopPropagation(), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ChangeFilter, "header", o))
                    }
                });
                if (n.control) {
                    r.fieldValueString(o) || l.update({
                        disabled: !0
                    })
                } else l.update({
                    disabled: !0
                }), c.update({
                    disabled: !0
                });
                return {
                    resetFilterAction: l,
                    changeFilterAction: c
                }
            }

            function Ar(e, t) {
                const {
                    view: r,
                    fieldKey: o,
                    field: n
                } = e;
                if (!n.hasOwnProperty("displaySignal")) return {};
                const {
                    displaySignal: i
                } = n;
                return {
                    toggleSignalAction: new t({
                        label: i ? (0, s.t)("Hide rating") : (0, s.t)("Show rating"),
                        onExecute: () => {
                            r._table.toggleSignals(o), (0, ee.sendSnowPlowData)(new Rt.DispatchContextMenuActionEvent(wr.ToggleSignal, "header", !i))
                        }
                    })
                }
            }! function(e) {
                e.ActiveOnly = "active_only", e.ToggleDescription = "show_description", e.ToggleSymbolType = "show_symbol_type", e.TogglePrimaryOnly = "show_primary_only", e.RemoveColumn = "remove_column", e.ResetFilter = "reset_filter", e.ChangeFilter = "change_filter", e.ToggleSignal = "show_rating", e.ToggleShowCurrency = "toggle_show_currency"
            }(wr || (wr = {}));
            var Mr = r(63735),
                Lr = r(95777),
                Pr = r(18184);
            const Fr = r(52946).linking;
            r(46678);
            const Ir = r(96276),
                Dr = r(87380).getLogger("Screener.View"),
                {
                    operators: Or,
                    fields: Rr
                } = r(39637),
                Br = (0, s.t)("All"),
                Nr = (0, s.t)("Any"),
                $r = r(54179),
                jr = r(31780),
                Wr = [-1, 10, 60],
                Vr = [-1, 1],
                Ur = {
                    bonds: {
                        yields: (0, s.t)("Yields", {
                            context: "Bonds"
                        }),
                        prices: (0, s.t)("Prices", {
                            context: "Bonds"
                        })
                    },
                    crypto_mkt: {
                        USD: "USD",
                        BTC: "BTC"
                    }
                },
                qr = `<div class="tv-screener-table__search-query js-search-query ${u.fields.description.disabled||!u.fields.description.checked?"tv-screener-table__search-query--without-description":""}">\n\t\t<input\n\t\t\ttype="text"\n\t\t\tautocomplete="off"\n\t\t\tclass="tv-screener-table__search-input js-search-input"\n\t\t/>\n\t\t<span class="tv-search-bar__search-icon tv-screener-table__search-icon">${r(67415)}</span>\n\t\t<span class="tv-search-bar__input-reset tv-screener-table__input-reset i-hidden js-input-reset">${r(12311)}</span>\n\t</div>`;
            class zr {
                constructor(e, t) {
                    this._bridge = e, this._model = t, this._onWidget = e.onWidget, this._activeElem = null, this._changeSymbol = (0, M.default)(this._changeSymbol, 500), this._lifecycle = new De, this.sortedFields = Object.keys(u.fields).filter(e => Boolean((0, u.getFieldTitle)(u.fields[e]))), this._popups = new fe(t, this, e), this._dialog = new Ae(t, this, e), this._disableStickyHeader = this._bridge.disableStickyHeader, this._periodPicker = e.period_picker, this._noDataString = e.no_data_string, this._isUnavailableWidgetMarket = e.isUnavailableWidgetMarket, this._periodPickerButtons = [{
                        id: "yesterday",
                        title: (0, s.t)("Yesterday")
                    }, {
                        id: "today",
                        title: (0, s.t)("Today")
                    }, {
                        id: "tomorrow",
                        title: (0, s.t)("Tomorrow")
                    }, {
                        id: "this_week",
                        title: (0, s.t)("This Week")
                    }, {
                        id: "next_week",
                        title: (0, s.t)("Next Week")
                    }], this.toggleAlert = new Ir;
                    const r = "undefined" === this._model.settingKey ? this._model.screener_type : this._model.settingKey;
                    this._fields_order = this._model.settingsSaver.getJSON(r + ".fields_order", []), this._data = [], this._lastSetId = null, this.widthChange = new Ir, this._bridge.width && this._bridge.width.subscribe(() => {
                        this.widthChange.fire()
                    }), this._$groupSelect = null, this._preventHighlightChanges = !1, this._table = yr(this), this._model.fieldSetChanged.subscribe(null, e => {
                        const t = {};
                        e.forEach(e => {
                            t[e] = u.fields[e]
                        }), this._table.setFields(t)
                    }), this._model.filterSetChanged.subscribe(null, () => {
                        this.$filterSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", this._model.isFilterSetChanged())
                    }), this._table.fieldsOrderChange.subscribe(null, () => {
                        this._model.fieldsOrder.setValue(this._table.fieldsOrder), this.$fieldSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", this._model.isFieldSetChanged()), this._model.settingsSaver.setJSON(r + ".fields_order", this._table.fieldsOrder, {
                            forceFlush: !0
                        })
                    });
                    let o = 0,
                        n = !1;
                    this._model.loadingStart.subscribe(null, e => {
                        e ? (n = !0, this._bridge.standalone && (o = Pr(document).scrollTop()), this._showSpinner(this.$bottomLoadingScreen)) : (o = 0, this._model.isFastRefresh || this._showSpinner())
                    }), this._model.loadingStart.subscribe(null, () => this.resetRefreshCounter(!0)), this._model.loadingComplete.subscribe(null, () => {
                        n && this._bridge.standalone && 0 !== o && Pr(document).scrollTop() !== o ? (n = !1, Pr(document).scrollTop(o), o = 0) : this._bridge.standalone && this._isScrollBottom() && Pr(document).scrollTop(Pr(document).scrollTop() / 2), this._hideSpinner(), this.resetRefreshCounter()
                    }), this._model.eodRestriction.subscribe(() => this.updateIntervalButton(), {
                        callWithLast: !0
                    }), window.loginStateChange && window.loginStateChange.subscribe(null, () => {
                        if (this.resetRefreshCounter(), "forex" === this._model.screener_type) {
                            const e = this._model.selectedGroups;
                            u.fields.sector.value = e, this._$groupSelectButton && (this._$groupSelectButton.empty(), this.updateGroupsButton(this._$groupSelectButton, e))
                        }
                    }), this._bridge.standalone && Pr(window).on("scroll", () => {
                        Pr(".js-dropdown-toggle.i-opened").trigger("resetPosition")
                    });
                    const i = (0, M.default)(() => {
                            this._tempBusy = !1
                        }, 250),
                        a = () => {
                            this._tempBusy || (this._tempBusy = !0), i()
                        };
                    this._bridge.standalone && Pr(window).on("scroll", a), Pr(window).on("resize", a), this.widthChange.subscribe(this, a), this._bridge.standalone || this._model.loadingComplete.subscribe(null, () => {
                        this.isEndReached() ? (this.$content.addClass("tv-screener__content-pane--fully-loaded"), this._table.$element.css("margin-bottom", -this._contentPadding)) : (this.$content.removeClass("tv-screener__content-pane--fully-loaded"), this._table.$element.css("margin-bottom", ""))
                    }), TradingView.onChartPage && Re.subscribe("screener.selected_type_on_chart", e => {
                        this._model.changeScreenerType(e).then(() => {
                            this._lastSetId = null, this._popups.setMarketsList((0, c.getMarketsByScreenerType)(this._model.screener_type)),
                                "forex" === this._model.screener_type ? this._$groupSelect.removeClass("i-hidden") : this._$groupSelect.addClass("i-hidden"), this.updateIntervalButton(this._$selectIntervalButton, this._model.selectedIntervalId), this._popups.updateRefreshIntervalsPopupContent()
                        }).then(() => this.updateMarketButton()).catch(e => {
                            e && Dr.logError(e)
                        })
                    })
                }
                getSelectedSymbols() {
                    return this._selectableList ? this._selectableList.getSelectedKeys() : []
                }
                getFocusedSymbol() {
                    if (this._selectableList) return this._selectableList.getFocusedKey()
                }
                registerHooksHandlers(e) {
                    this._lifecycle.registerHandlers(e)
                }
                _isScrollBottom() {
                    return Pr(window).scrollTop() + Pr(window).height() === Pr(document).height()
                }
                _initSelectableList() {
                    var e;
                    this._selectableList = (e = {
                        list: this.$content.get(0),
                        listItemClass: "tv-screener-table__result-row",
                        selectedListItemClass: "tv-screener-table__result-row--selected",
                        focusedListItemClass: "tv-screener-table__result-row--focused",
                        onNavigate: this._onSymbolsNavigate.bind(this),
                        onConfirm: this._onSymbolConfirm.bind(this),
                        getNodeKey: e => e.dataset.symbol
                    }, new W(Object.assign({}, {
                        modes: [O, R, $, N, B]
                    }, e)))
                }
                _getThContent(e, t) {
                    t || (t = u.fields[e]);
                    const o = t.title && t.title.toLowerCase() !== t.shortTitle.toLowerCase() ? Pr(`<div class="tv-screener-table__head-wrap js-head-wrap apply-common-tooltip common-tooltip-fixed" title="${t.title}" data-field="${e}">`) : Pr(`<div class="tv-screener-table__head-wrap js-head-wrap" data-field="${e}">`);
                    t.disableHeaderControl && o.addClass("tv-screener-table__head-wrap--disable-interaction");
                    const n = Pr('<div class="tv-screener-table__head-left js-head-left"></div>').appendTo(o),
                        i = Pr('<div class="tv-screener-table__head-left--text"></div>').appendTo(n),
                        a = Pr(`<div class="js-head-title">${t.shortTitle||t.title}</div>`).appendTo(i);
                    e === this._model.searchField && n.addClass(!u.fields.description.disabled && u.fields.description.checked ? "tv-screener-table__head-left--name-col" : this._onWidget ? "tv-screener-table__head-left--widget-name-col-without-description" : "tv-screener-table__head-left--name-col-without-description");
                    const l = Pr(`<span class="tv-screener-table__sort js-table-sort ${this._model._sortField.value()===e?"tv-screener-table__sort--"+this._model._sortDirection.value():""}">${"asc"===this._model._sortDirection.value()?$r:jr}</span>`);
                    if (e === this._model.searchField) {
                        let e;
                        e = this._totalCount ? this._bridge.hide_load_more && this._bridge.page_size && this._totalCount >= this._bridge.page_size ? (0, s.t)("{number} match", {
                            plural: "{number} matches",
                            count: this._bridge.page_size
                        }).format({
                            number: this._bridge.page_size
                        }) : (0, s.t)("{number} match", {
                            plural: "{number} matches",
                            count: this._totalCount
                        }).format({
                            number: this._totalCount
                        }) : (0, s.t)("No matches"), Pr(`<div class="js-field-total tv-screener-table__field-value--total">${e}</div>`).appendTo(n), this._onWidget || Pr(qr).appendTo(n)
                    }
                    let c = !1;
                    if (t.control && !this._bridge.hide_controls) {
                        const t = Pr(`<i data-field="${e}" class="js-filter-button tv-screener-table__filter-button">${r(23651)}</i>`);
                        t.appendTo(o);
                        if (this.fieldValueString(e)) {
                            t.addClass("tv-screener-table__filter-button--active");
                            const r = Pr(`<span class="js-field-value tv-screener-table__field-value apply-overflow-tooltip${"name"===e?" tv-screener-table__field-value--name":""}">${(0,s.t)(this.fieldValueString(e))}</span>`);
                            n.append(r), c = !0
                        }
                    }
                    return l.appendTo(o), a.addClass(c ? "tv-screener-table__head-left--title-two-lines" : "tv-screener-table__head-left--title-three-lines"), o
                }
                _updateTableSortField() {
                    const e = this._model._sortField.value(),
                        t = this._model._sortDirection.value();
                    this._table.updateSortField(e, t)
                }
                setFieldActive(e, t, r) {
                    this._dialog.$filtersPopup && (r || (r = this._dialog.$filtersPopup.find(".js-filter-field-" + e.replace(/\W/g, ""))), r && r.size() && r.toggleClass("tv-screener-dialog__filter-field--active", t))
                }
                _resetSearchCount() {
                    const e = this._getThContent(this._model.searchField).find(".js-field-total").text();
                    this._table.setSearchText(e)
                }
                _resetField(e) {
                    this.setFieldActive(e, this._model.fieldActive(e));
                    const t = this._getThContent(e);
                    if ("name" === e && this._lifecycle.beforeAppendSymbolsHeader(t.get(0)), this._table.setThContent(e, t), !this._dialog.$filtersPopup && this.$inplaceEditor && e === this._inplaceEditorField) {
                        const t = !this._isFilterValueEmpty(e),
                            r = this.$inplaceEditor.find(".js-reset"),
                            o = this.$inplaceEditor.find(".js-wrap");
                        t ? (r.removeClass("i-hidden"), o.removeClass("tv-screener-inplace-editor__filter-without-reset"), this.$inplaceEditor.removeClass("tv-screener-inplace-editor__without-reset")) : (r.addClass("i-hidden"), o.addClass("tv-screener-inplace-editor__filter-without-reset"), this.$inplaceEditor.addClass("tv-screener-inplace-editor__without-reset"))
                    }
                }
                _setupStickyHeader() {
                    if (this._disableStickyHeader) return;
                    const e = this._table.$stickyHeader;
                    e.insertBefore(this.$content);
                    const t = Pr('<span class="tv-screener-sticky-header-wrapper__right-substrate"></span>').prependTo(this.$content);
                    let n = Math.round(this.$toolbar.outerHeight());
                    if (this._bridge.width && this._bridge.width.subscribe(() => this.onResizeToolbar()), this._bridge.visible && this._bridge.visible.subscribe(() => this.onResizeToolbar()), (0, vt.isMarketPage)(this._bridge)) kt(this);
                    else if (this._bridge.standalone) {
                        const r = 148;
                        let o;
                        this.$toolbar.toggleClass("tv-screener-toolbar--standalone_sticky", !0).css({
                            top: r
                        }), this._bridge.$body.css({
                            "padding-top": n
                        }), e.css({
                            top: n
                        });
                        const i = (o, i) => {
                                i || (i = Pr(document).scrollTop()), this._bridge.$body.css({
                                    "padding-top": n
                                }), this.$toolbar.css({
                                    top: o ? 0 : r - i
                                }), e.css({
                                    top: n
                                }), t.css({
                                    top: o ? n : 0
                                })
                            },
                            s = e => Pr(document).scrollTop() - (this.$content.offset().top - e) > 0;
                        Pr(document).on("scroll", () => {
                            n = Math.round(this.$toolbar.outerHeight());
                            const r = Pr(document).scrollTop(),
                                a = Pr(document).scrollLeft();
                            let l;
                            this._onWidget || (l = s(n), i(l, r), this._$mainContainer.css("top", -r)), e.toggleClass("tv-screener-sticky-header-wrapper--standalone_sticky", l);
                            const c = (0, Z.isRtl)() ? document.body.clientWidth - this.$content[0].getBoundingClientRect().right : -a;
                            e.css({
                                [(0, Z.isRtl)() ? "right" : "left"]: l ? c : "auto"
                            }), t.toggleClass("tv-screener-sticky-header-wrapper__right-substrate--standalone_sticky", l), o !== l && this.updateToolbarButtons(), o = l, this.$bottomLoadingScreen.css({
                                left: a
                            })
                        }), Pr(window).on("resize", () => {
                            this.fixStandaloneWidth(), n = Math.round(this.$toolbar.outerHeight());
                            const e = s(n);
                            i(e), this.onResizeToolbar()
                        }), this.fixStandaloneWidth(), this._table.afterFixCols.subscribe(null, () => {
                            this.fixStandaloneHorizontalScroll()
                        })
                    } else {
                        this._bridge.$body.css({
                            overflow: "hidden"
                        });
                        let r = !1,
                            n = !1;
                        this.onResizeToolbar();
                        const i = () => {
                            const r = Math.round(e.outerHeight());
                            t.css({
                                top: -r
                            }), this.$content.css({
                                top: r
                            }), this._table.$element.css({
                                top: -r,
                                position: "relative"
                            })
                        };
                        (TradingView.onChartPage || this._onWidget) && i(), this.$content.on("scroll", () => {
                            (0, o.hide)(), Oe.PopupColorSelector.hide(), (0, Z.isRtl)() ? e.css("right", -(this.$content[0].scrollWidth - this.$content[0].clientWidth - (0, Z.getLTRScrollLeft)(this.$content[0]))) : e.css("left", -this.$content.scrollLeft()), this._onWidget && this._bridge.hide_controls && e.css({
                                top: 0
                            })
                        }), TradingView.onChartPage && Pr(document).on("scroll", () => {
                            window.innerWidth <= L.breakpoints.tablet && (r = this.$content.get(0).getBoundingClientRect().top < 0), e.toggleClass("tv-screener-sticky-header-wrapper--standalone_sticky", r), n !== r && e.css({
                                left: r ? -this.$content.scrollLeft() : 0
                            }), n = r
                        })
                    }
                    this._bridge.hide_controls || (this.$headerFieldsButton = Pr(`<div class="tv-screener-sticky-header-wrapper__fields-button apply-common-tooltip common-tooltip-vertical common-tooltip-otl" title="${(0,s.t)("Column setup")}">\n\t\t\t\t${r(17847)}\n\t\t\t</div>`).appendTo(e), this.$headerFieldsButton.attr({
                        "data-name": "header_fields-button"
                    }), this._popups.setFieldsPopup(this.$headerFieldsButton, "tv-screener-sticky-header-wrapper__fields-button-wrap", "tv-dropdown__body--position_right")), this._model.loadingComplete.subscribe(null, () => {
                        t.show()
                    }, !0)
                }
                _showSpinner(e = this.$loadingScreen) {
                    e.removeClass("js-hidden"), clearTimeout(this._spinnerTimeoutId), this._spinner || (this._spinnerTimeoutId = setTimeout(() => {
                        this._spinner = (new Le.Spinner).spin(e.get(0))
                    }, 100))
                }
                _hideSpinner() {
                    this.$loadingScreen.addClass("js-hidden"), this.$bottomLoadingScreen.addClass("js-hidden"), clearTimeout(this._spinnerTimeoutId), this._spinner && (this._spinner.stop(), delete this._spinner)
                }
                _getResizerBridgeWidth() {
                    return window.widgetbar ? (0, ft.getWidgetBarPadding)(window.widgetbar.resizerBridge.width.value()) : 0
                }
                fixStandaloneWidth() {
                    if (this._bridge.standalone) {
                        this._bridge.$body.css({
                            "padding-right": "",
                            "padding-left": ""
                        });
                        const e = this._getResizerBridgeWidth(),
                            t = (0, Z.isRtl)() ? "padding-left" : "padding-right";
                        this.$toolbar.width(Pr(window).width() - e), this._$mainHeader.css({
                            [t]: e
                        }), this.updateToolbarButtons(), this._table && this._table._$emptyMessage && !(0, vt.isMarketPage)(this._model._bridge) && this._table._$emptyMessage.css({
                            width: `calc(100% - ${e}px`
                        }), this.widthChange.fire()
                    }
                }
                fixStandaloneHorizontalScroll() {
                    if (this._bridge.standalone) {
                        const e = this._getResizerBridgeWidth(),
                            t = this._table.$element.width() + ((0, Z.isRtl)() ? 0 : e),
                            r = Pr(window).width() < t,
                            o = (0, Z.isRtl)() ? "padding-left" : "padding-right";
                        this._bridge.$body.css({
                            [o]: r ? t : ""
                        }), this.$toolbar.width(Pr(window).width() - e), this.updateToolbarButtons()
                    }
                }
                prepareLayout() {
                    this._bridge.$body.addClass("tv-screener" + (this._bridge.standalone ? " tv-screener--standalone" : "")), this.$loadingScreen = Pr(`<div class="tv-screener__loading-screen${this._bridge.standalone&&!this._bridge.table_loading_screen?" tv-screener__loading-screen--standalone":""}">`).appendTo(this._bridge.$body), this.$toolbar = Pr(`<div class="tv-screener-toolbar${this._bridge.standalone?" tv-screener-toolbar--standalone":""} ${this._disableStickyHeader?"tv-screener-toolbar--markets":""}">`).appendTo(this._bridge.$body), this.$toolbar.on("contextmenu", (function(e) {
                        e.preventDefault()
                    })), Pr(".tv-screener__content-pane").remove(), this.$content = Pr('<div class="tv-screener__content-pane" tabindex="100">').data({
                        localScroll: !this._bridge.standalone
                    }).appendTo(this._bridge.$body), this.$content.on("contextmenu", (function(e) {
                        e.target.classList.contains("tv-screener__content-pane") && e.preventDefault()
                    })), this.$bottomLoadingScreen = Pr('<div class="tv-screener__bottom-loading-screen">').appendTo(this._bridge.$body), this._$mainContainer = Pr(".tv-screener__standalone-main-container"), this._$mainHeader = this._$mainContainer.find(".tv-header"), this._onWidget || (this.$refreshButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--with-options tv-screener-toolbar__button--refresh apply-common-tooltip common-tooltip-fixed" title="${(0,s.t)("Refresh")}"></div>`).attr({
                        "data-name": "screener-refresh",
                        "data-role": "button"
                    }).append(Pr(r(48673)).attr({
                        class: "tv-screener-toolbar__button-icon tv-screener-toolbar__button-icon--standalone-refresh",
                        width: "18",
                        height: "18"
                    })).appendTo(this.$toolbar), this.$refreshCounter = Pr('<span class="tv-screener-toolbar__refresh-counter">').text("00:00").appendTo(this.$refreshButton), this.$refreshIntervalButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--options tv-screener-toolbar__button--space_right apply-common-tooltip common-tooltip-fixed" title="${(0,s.t)("Refresh interval")}"></div>`).attr({
                        "data-name": "screener-refresh-interval",
                        "data-role": "button"
                    }).append(Pr(r(17847)).attr({
                        width: 3,
                        height: 13,
                        class: "tv-screener-toolbar__button-icon",
                        style: "top: -1px"
                    })).appendTo(this.$toolbar));
                    const e = this._model.currentFieldSetId(),
                        t = this._model.getFieldSetById(e);
                    this.$fieldSetsButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--animated\n\t\t\ttv-screener-toolbar__button--with-options tv-screener-toolbar__button--arrow-down\n\t\t\ttv-screener-toolbar__button--with-state apply-common-tooltip common-tooltip-fixed js-field-sets" title=" ${(0,s.t)("Column sets")}">\n\t\t\t\t${t?t.title:""}\n\t\t\t</div>`).attr({
                        "data-name": "screener-field-sets",
                        "data-role": "button",
                        "data-field-set": e
                    }).appendTo(this.$toolbar), this.$fieldsButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--options\n\t\t\ttv-screener-toolbar__button--square apply-common-tooltip common-tooltip-fixed\n\t\t\ttv-screener-toolbar__button--space_right" title=" ${(0,s.t)("Column setup")}">`).attr({
                        "data-name": "screener-fields",
                        "data-role": "button"
                    }).append(Pr(r(59844)).attr({
                        class: "tv-screener-toolbar__button-icon"
                    })).appendTo(this.$toolbar), this.$favoritesBar = Pr('<div class="tv-screener-toolbar__favorites">').appendTo(this.$toolbar), this.$periodPicker = Pr('<div class="tv-screener-toolbar__period-picker">').appendTo(this.$toolbar);
                    const o = Ur[this._model.screener_type];
                    o && (this._createSwitch(o), this.$toolbar.addClass("tv-screener-toolbar--one-line")), this._bridge.hide_controls || this._periodPicker || this._bridge.onWidget || this.createAlertButtons();
                    const n = this._model.currentFilterSetId(),
                        i = this._model.getFilterSetById(n);
                    this.$filterSetsButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--with-options\n\t\t\ttv-screener-toolbar__button--arrow-down tv-screener-toolbar__button--with-state\n\t\t\tapply-common-tooltip common-tooltip-fixed js-filter-sets" title="${(0,s.t)("Screens")}">`).attr({
                        "data-name": "screener-filter-sets",
                        "data-role": "button",
                        "data-filter-set": n
                    }).appendTo(this.$toolbar), this.$filterSetsButtonTitle = Pr(`<span>${i?i.title:""}</span>`).appendTo(this.$filterSetsButton), this.$filtersButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--options tv-screener-toolbar__button--filters apply-common-tooltip i-disabled common-tooltip-fixed" title="${(0,s.t)("Adjust filters")}">${(0,s.t)("Filters")}</div>`).attr({
                        "data-name": "screener-filter",
                        "data-role": "button"
                    }).append(Pr(r(23651)).attr({
                        class: "tv-screener-toolbar__button-icon tv-screener-toolbar__button-icon--filters"
                    })).appendTo(this.$toolbar), this._model.loadingComplete.subscribe(null, () => {
                        this.$filtersButton.removeClass("i-disabled")
                    }, !0);
                    const a = Pr('<div class="tv-screener-toolbar__filter-count-wrap">').on("click", () => {
                        this.showActiveFilters(), (0, ee.sendSnowPlowData)(new ve("filter_counter_button", this._getFiltersCounterValue()))
                    }).appendTo(this.$toolbar);
                    if (this.$filterCount = Pr(`<span class="tv-screener-toolbar__filter-count js-hidden apply-common-tooltip common-tooltip-vertical common-tooltip-otl" title="${(0,s.t)("Applied filters count")}">`).attr({
                            "data-name": "screener-filter-count",
                            "data-role": "button"
                        }).appendTo(a), this._table.$element.appendTo(this.$content), this.initHandlers(), this._bridge.selection_disabled || this._initSelectableList(), this._onWidget && this._bridge.hide_controls && (this._contentPadding = this.$content.innerHeight() - this.$content.height(), this.$content.css("height", `calc(100% - ${this._contentPadding}px)`), this.$toolbar.hide()), this._bridge.hide_controls)[this.$refreshButton, this.$refreshIntervalButton, this.$fieldSetsButton, this.$fieldsButton, this.$filterSetsButton, this.$filtersButton, this.$filterCount].forEach(e => {
                        e && e.hide()
                    }), this._onWidget && (this._bridge.$body.addClass("tv-screener--hidden-toolbar"), this.$loadingScreen.addClass("tv-screener__loading-screen--hidden-toolbar"));
                    else {
                        this._onWidget || (this._$selectIntervalButton = this.addIntervalSelect({
                                $before: this.$createAlertButton || this.$filterSetsButton
                            }).attr({
                                "data-name": "screener-time-interval",
                                "data-role": "button"
                            }),
                            this._$downloadButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--space_right tv-screener-toolbar__button--export apply-common-tooltip common-tooltip-fixed i-disabled" title="${(0,s.t)("Export screener data to a CSV file")}"></div>`).attr({
                                "data-name": "screener-export-data",
                                "data-role": "button"
                            }).append(Pr(r(15665)).attr({
                                class: "tv-screener-toolbar__button-icon tv-screener-toolbar__button-icon--export"
                            })), this._$downloadButton.insertBefore(this._$selectIntervalButton), this._$downloadButton.on("click", e => {
                                (0, U.runOrGoPro)(() => {
                                    this._$downloadButton.toggleClass("i-loading", !0), this._model.getDownloadData().then(e => {
                                        const [t, ...r] = this._table.columnsOrder, o = [t, "description", ...r];
                                        try {
                                            const t = function(e, t, r, o) {
                                                    const n = new Map,
                                                        i = [];
                                                    for (const e of t) i.push(u.fields[e].title), n.set(e, st(r, e));
                                                    const a = [i];
                                                    for (const t of e) {
                                                        const e = [];
                                                        for (const [i, a] of Array.from(n.entries())) {
                                                            const n = u.fields[i],
                                                                l = t.d[a];
                                                            if (null === l) e.push("");
                                                            else if (ot.includes(i)) e.push((0, s.t)(l));
                                                            else if ("earnings_release_date" === i || "earnings_release_next_date" === i) {
                                                                const t = (0, u.getFieldFormatter)(n, o, !1);
                                                                e.push(t.format(l))
                                                            } else if (n.signalComputation) it.includes(i) ? e.push(n.signalComputation(l).title) : e.push(l.toString());
                                                            else {
                                                                const o = n.additionalColumns ? n.additionalColumns.map(e => t.d[st(r, e)]) : [];
                                                                if (n.mutateDisplayValue && !nt.includes(i)) e.push(n.mutateDisplayValue(l, ...o, i));
                                                                else if ("candlestick" === i && n.additionalColumns) {
                                                                    const {
                                                                        additionalColumns: t
                                                                    } = n, r = lt(o);
                                                                    if (0 === r.length) e.push("");
                                                                    else {
                                                                        const o = r.map(e => t[e]).map(ct).filter(Boolean).map(e => e.name).join(", ");
                                                                        e.push(o)
                                                                    }
                                                                } else e.push(l.toString())
                                                            }
                                                        }
                                                        a.push(e)
                                                    }
                                                    return a
                                                }(e.data, o, this._model.getRequestColumns(), this._model.screener_type),
                                                r = t.map(at).join("\r\n"),
                                                n = ut.dateFormatFunctions["yyyy-MM-dd"](new Date, !0),
                                                i = `${this._model.markets.join("_")}_${n}.csv`;
                                            (0, Ie.saveTextFile)(i, r, "text/csv")
                                        } catch (e) {
                                            Dr.logError(e.toString())
                                        }
                                        this._$downloadButton.toggleClass("i-loading", !1), this._model.trackEvent("Export screener data")
                                    })
                                }, J.ProductFeatures.SCREENER_EXPORT_DATA, {
                                    feature: "screenerExportData"
                                }), (0, ee.sendSnowPlowData)(new ht)
                            }), this._model.loadingComplete.subscribe(null, () => {
                                this._$downloadButton.removeClass("i-disabled")
                            }, !0));
                        const e = this.addMarketSelect({
                                $before: this.$createAlertButton || this.$filterSetsButton
                            }),
                            t = Pr('<div class="tv-screener-toolbar__market-count-wrap">').on("click", () => {
                                this._showMarketsDialog()
                            });
                        this.$marketCount = Pr(`<span class="tv-screener-toolbar__filter-count tv-screener-toolbar__filter-count--market-count js-hidden apply-common-tooltip common-tooltip-vertical common-tooltip-otl" title="${(0,s.t)("Chosen markets count")}">`).attr({
                                "data-name": "screener-market-count",
                                "data-role": "button"
                            }).appendTo(t), Pr(e).after(t), this._$groupSelectButton = this.addGroupSelect({
                                $before: this.$createAlertButton || this.$filterSetsButton
                            }), this._popups.setFieldsPopup(this.$fieldsButton, "tv-screener-toolbar__button-wrap"), this._popups.setFieldSetsPopup(this.$fieldSetsButton), this._popups.setFilterSetsPopup(this.$filterSetsButton, !this._bridge.onWidget),
                            this._onWidget || this._popups.setRefreshIntervalsPopup(this.$refreshIntervalButton)
                    }(0, Me.setCurrentTimezone)(this._model.timezone), this._periodPicker ? ((0, u.applyEarningsCalendarToFields)(), this._selectedPeriodId = "today", this._setNewEarningsPeriod(this._selectedPeriodId), this.updatePeriodPicker(), this.$favoritesBar.hide(), u.fields.earnings_release_next_date.onFilterChange = e => {
                        const t = this._periodPickerButtons.find(t => t.title === e);
                        this.changeEarningsPeriod(t ? t.id : "", !0)
                    }) : this.$periodPicker.hide(), this._showSpinner(), this.updateToolbarButtons(), this.onResizeToolbar()
                }
                onResizeToolbar() {
                    if (this._disableStickyHeader) return;
                    if (this._table.$stickyHeader.position().top < 0) return;
                    const e = Math.round(this.$toolbar.outerHeight());
                    (0, vt.isExternalWidget)(this._bridge) && this._bridge.hide_controls ? this._table.$stickyHeader.css({
                        top: 0
                    }) : this._table.$stickyHeader.css({
                        top: e
                    })
                }
                showMaintenance() {
                    this._bridge.$body.html(`<div class="tv-screener__maintenance">${(0,s.t)("We are doing some brief daily maintenance. Screener will be back really soon, thanks for your patience!")}</div>`)
                }
                createAlertButtons() {
                    this.$createAlertButton = Pr(`<div class="tv-screener-toolbar__button tv-screener-toolbar__button--with-options tv-screener-toolbar__button--create-alert js-create-alert-button apply-common-tooltip common-tooltip-fixed" title="${(0,s.t)("Enable Alert")}">`).attr({
                        "data-name": "screener-alert",
                        "data-role": "button"
                    }).append(Pr('<i class="js-alert-icon-plus">').append(Pr(r(1825)).attr({
                        width: 20,
                        height: 21,
                        class: "tv-screener-toolbar__button-icon",
                        style: "top: -2px; margin-right: -4px"
                    }))).append(Pr('<i class="i-hidden js-alert-icon">').append(Pr(r(81283)).attr({
                        width: 16,
                        height: 17,
                        class: "tv-screener-toolbar__button-icon",
                        style: "top: -2px"
                    }))).appendTo(this.$toolbar), this.$alertsButton = Pr('<div class="tv-screener-toolbar__button tv-screener-toolbar__button--space_right tv-screener-toolbar__button--options js-alerts-button apply-common-tooltip common-tooltip-fixed">').attr({
                        title: (0, s.t)("Options"),
                        "data-name": "screener-alerts-options",
                        "data-role": "button"
                    }).append(Pr(r(17847)).attr({
                        width: 3,
                        height: 13,
                        class: "tv-screener-toolbar__button-icon",
                        style: "top: -1px"
                    })).appendTo(this.$toolbar)
                }
                setAlertButtonsDisabledState(e) {
                    this.$createAlertButton && this.$createAlertButton.toggleClass("i-disabled", e), this.$alertsButton && this.$alertsButton.toggleClass("i-disabled", e)
                }
                setCreateAlertButtonLoading() {
                    this.$createAlertButton && (this.$createAlertButton.addClass("tv-screener-toolbar__button--alert-loading"), "running" === this.$createAlertButton.data("state") && this.$createAlertButton.addClass("tv-screener-toolbar__button--enabled-alert-loading"))
                }
                setAlertButtonState(e) {
                    if (!this.$createAlertButton || this.$createAlertButton.is("i-disabled")) return;
                    "created" !== e && "pending" !== e && (clearTimeout(this._alertButtonLoadingTimeoutId), this.$createAlertButton.removeClass("tv-screener-toolbar__button--alert-loading tv-screener-toolbar__button--enabled-alert-loading"));
                    const t = "running" === e;
                    this.$createAlertButton.data("state", e).toggleClass("tv-screener-toolbar__button--enabled", t).attr({
                        title: t ? (0, s.t)("Disable Alert") : (0, s.t)("Enable Alert"),
                        "data-alert-state": e
                    }), this.$createAlertButton.find(".js-alert-icon-plus").toggleClass("i-hidden", t), this.$createAlertButton.find(".js-alert-icon").toggleClass("i-hidden", !t)
                }
                initHandlers() {
                    this.$toolbar.on("hover", this.adjustToolbarWidth.bind(this)), this.$fieldSetsButton.on("transitionend", this.updateToolbarButtons.bind(this));
                    const e = e => {
                        const t = e.data("field");
                        if (!1 === u.fields[t].sortableColumn) return;
                        const r = this._model._sortField.value(),
                            o = this._model._sortDirection.value();
                        u.fields[t].disableHeaderControl || (r === t && this._model._sortDirection.setValue("asc" === o ? "desc" : "asc"), this._model._sortField.setValue(t), this._model.update())
                    };
                    if (Et.mobiletouch) {
                        (new Be.HammerJSLoader).load().then(t => {
                            const r = new t(Pr(".tv-screener")[0], {
                                touchAction: "auto"
                            });
                            r.get("press").set({
                                time: 500
                            }), r.on("press", e => {
                                const t = Pr(e.target).closest(".js-head-wrap");
                                if (t.length) {
                                    Cr({
                                        view: this,
                                        fieldKey: Pr(t).data("field"),
                                        e: e.srcEvent
                                    })
                                }
                                e.preventDefault()
                            }), r.on("tap", t => {
                                if (Pr(t.target).closest(".js-search-input").length) return;
                                const r = Pr(t.target).closest(".js-head-wrap");
                                r.length && e(r)
                            })
                        })
                    } else Pr(".tv-screener").on("click", ".js-head-wrap", t => {
                        const r = Pr(t.currentTarget);
                        e(r), t.stopPropagation()
                    }).on("contextmenu", ".js-head-wrap", e => {
                        Cr({
                            view: this,
                            fieldKey: Pr(e.currentTarget).data("field"),
                            e
                        }), e.preventDefault()
                    }), Pr(".tv-screener").on("click", ".js-filter-button", e => {
                        const t = Pr(e.currentTarget).closest("th"),
                            r = t.data("field");
                        this.showInplaceEditor(r, t), e.stopPropagation()
                    });
                    Pr(".tv-screener").on("click", ".js-search-input", e => {
                            e.stopPropagation()
                        }), Pr(".tv-screener").on("click", ".js-input-reset", e => {
                            Pr(e.currentTarget).addClass("i-hidden"), Pr(".tv-screener").find(".js-search-input").val(""), u.fields[this._model.searchField].searchValue = "", this._model.update(), e.stopPropagation()
                        }), Pr(".tv-screener").on("click", ".js-filter-button", e => {
                            const t = Pr(e.currentTarget).closest("th"),
                                r = t.data("field");
                            this.showInplaceEditor(r, t), e.stopPropagation()
                        }), this._bridge.table_context_menu_disabled || this._initTableContextMenu(), this.$content.on("scrolltoend", e => {
                            this._model.loading || this._model.update(null, !0)
                        }), this.$refreshButton && this.$refreshButton.click(e => {
                            this._model.loading || this.refresh(), (0, ee.sendSnowPlowData)(new ue)
                        }), this.$filtersButton.click(() => {
                            this._dialog.showFiltersDialog(), (0, ee.sendSnowPlowData)(new ve("filter_button", this._getFiltersCounterValue()))
                        }), Fr.proSymbol.subscribe(e => {
                            const t = this.$content.find(`[data-symbol="${e}"]`).get(0);
                            this._setActiveElem(t), this._selectableList && (t ? this._selectableList.focusItem(t) : this._selectableList.clear())
                        }), this.$fieldSetsButton.on("click", () => {
                            this._lastSetId = null
                        }), this.$toolbar.on("click", ".js-favorite-item", e => {
                            const t = Pr(e.currentTarget).attr("data-set");
                            this._lastSetId !== t && (this._model.preventPrevScanRequest(), this.updateSetId(t, !1, this._bridge.hide_controls)), (0, ee.sendSnowPlowData)(new re("columnset_favorites_picker", t))
                        }),
                        this.$toolbar.on("click", ".js-period-picker-item", e => {
                            const t = Pr(e.currentTarget).attr("data-period");
                            this.changeEarningsPeriod(t)
                        }), this.$toolbar.on("click", ".js-create-alert-button", e => {
                            this.toggleAlert.fire(void 0, "toggle_alert_button")
                        }), this.$alertsButton && "function" == typeof this._bridge.getAlertsCtlDropdownContent && this._popups.setAlertsPopup(this.$alertsButton, this._bridge.getAlertsCtlDropdownContent()), Pr(window).resize(e => this.updateToolbarButtons()), this._bridge.width && this._bridge.width.subscribe(() => this.updateToolbarButtons()), this._bridge.visible && this._bridge.visible.subscribe(e => {
                            e && (this.updateToolbarButtons(), this.adjustToolbarWidth())
                        }), this.updateFavoritesToolbar()
                }
                _initTableContextMenu() {
                    this.$content.on("contextmenu", ".tv-screener-table__result-row", e => {
                        const t = Pr(e.currentTarget).data("symbol");
                        this._selectableList && this._selectableList.focusItem(e.currentTarget),
                            function(e) {
                                const t = (0, Pt.ticker)(e.symbol);
                                Dt({ ...e,
                                    shortName: t
                                }, $t, Tt.Table)
                            }({
                                view: this,
                                symbol: t,
                                e
                            }), e.preventDefault()
                    })
                }
                _onSymbolsNavigate(e) {
                    const t = e.cursor;
                    if (t) {
                        if (TradingView.onChartPage && this._setActiveElem(t), ["sector", "industry"].includes(this._model.screener_type)) return;
                        const e = t.dataset.symbol;
                        this._changeSymbol(e)
                    }
                }
                _changeSymbol(e) {
                    const t = Fr.preventFeedBySymbol;
                    Fr.setPreventFeedBySymbol(!0), Fr.symbol.setValue(e), Fr.setPreventFeedBySymbol(t), this._model.trackEvent("Change symbol from table")
                }
                _setActiveElem(e) {
                    this._activeElem && this._activeElem.classList.remove("tv-screener-table__result-row--active"), e ? (e.classList.add("tv-screener-table__result-row--active"), this._activeElem = e) : this._activeElem = null
                }
                _onSymbolConfirm(e) {
                    e.items.forEach(t => {
                        const r = t.dataset.symbol;
                        r && this._lifecycle.afterSymbolConfirm(r, e.action)
                    })
                }
                changeEarningsPeriod(e, t = !1) {
                    if (this._selectedPeriodId === e) return;
                    this._selectedPeriodId = e, this.updatePeriodPicker(), this._model.applyFieldSetContent(w.earningsCalendarFieldSets);
                    "tomorrow" === e || "next_week" === e ? (0, u.applyEarningsCalendarNextReleaseDate)() : (0, u.applyEarningsCalendarReleaseDate)(), t || this._setNewEarningsPeriod(e, () => {
                        this._resetField("earnings_release_next_date"), this._model.preventPrevScanRequest(), this._model.update()
                    })
                }
                _setNewEarningsPeriod(e, t = (() => {})) {
                    const r = u.fields.earnings_release_next_date.sourceRange.find(t => t.key === e);
                    r && (u.fields.earnings_release_next_date.value = r.name, t())
                }
                get totalCount() {
                    return this._totalCount
                }
                get itemsCount() {
                    return this._itemsCount
                }
                set itemsCount(e) {
                    this._itemsCount = +e
                }
                set lastSetId(e) {
                    this._lastSetId = e
                }
                get popups() {
                    return this._popups
                }
                isEndReached() {
                    return 0 === this._data.length || "number" == typeof this._totalCount && this._data.length >= this._totalCount
                }
                display(e, t, r) {
                    if (this._hideSpinner(), this._setFiltersCount(), this._setMarketsCount(), this.$filterSetsButton.toggleClass("tv-screener-toolbar__button--unsaved", this._model.isFilterSetChanged()), !e || e.error || !e.data && !e.symbols) "abort" !== r && (this.resetItems(), this._table.setColumnsMap(t), this._table.update([]), this._resetField("name"),
                        "error" === r ? Dr.logError(e.responseText || r) : e && e.error && Dr.logError(e.error));
                    else {
                        let r = e.data || e.symbols;
                        for (let e = 0; e < r.length; ++e) r[e].f && (r[e].d = r[e].f);
                        if (void 0 === this._totalCount) this._bridge.table_style || this.fixStandaloneWidth(), this._table.setColumnsMap(t), this._table.update(r), this._data = r;
                        else {
                            const e = this._getInvalidatedFrom(r);
                            0 === e ? (this._data = r, this._table.setColumnsMap(t), this._table.update(r)) : (e > 0 ? (r = r.slice(e), this._data = this._data.slice(0, e), this._table.clearData(e)) : r = r.slice(this._data.length), this._data = this._data.concat(r), this._table.setColumnsMap(t), this._table.append(r))
                        }
                        setTimeout(() => this.highlightChanges(), 0), this._totalCount = e.totalCount, this._resetSearchCount(), this._model._initialSortField && (this._model._sortField.setValue(this._model._initialSortField, !0), this._model._sortDirection.setValue(this._model._initialSortDirection, !0), delete this._model._initialSortField, delete this._model._initialSortDirection)
                    }
                }
                _getInvalidatedFrom(e) {
                    for (let t = 0; t < this._data.length; ++t) {
                        if (!e[t] || this._data[t].s !== e[t].s || !e[t].d) return t;
                        for (let r = 0; r < this._data[t].d.length; ++r)
                            if (this._data[t].d[r] !== e[t].d[r]) return t
                    }
                    return -1
                }
                get table() {
                    return this._table
                }
                resetItems() {
                    delete this._totalCount, this._data = []
                }
                _getFiltersCounterValue() {
                    const e = this._model.currentFilterState();
                    return e.filters && Object.keys(e.filters).length || 0
                }
                _setFiltersCount() {
                    const e = this._getFiltersCounterValue();
                    this.$filterCount.text("" + e).toggleClass("js-hidden", !e)
                }
                _setMarketsCount() {
                    const e = this._model.markets.length;
                    this.$marketCount && this.$marketCount.text("" + e).toggleClass("js-hidden", 1 === e)
                }
                _concatFieldValues(e, t) {
                    var r = [];
                    return e.forEach(e => {
                        r.push(this._getFieldValueFromRangeTitles(e, t))
                    }), r.join(", ")
                }
                _getFieldValueFromRangeTitles(e, t, r = !1) {
                    return u.fields[t].rangeTitles && u.fields[t].rangeTitles[e] ? u.fields[t].rangeTitles[e][r ? 1 : 0] : "string" != typeof e ? "" : e
                }
                fieldValueString(e) {
                    const t = u.fields[e].value;
                    if ((0, u.isValueAbsent)(t) || !1 === t) return "";
                    if ("select" === u.fields[e].control) {
                        const r = (0, s.t)("{number} item", {
                            plural: "{number} items",
                            count: t.length,
                            context: "combobox_input"
                        }).format({
                            number: t.length
                        });
                        return Array.isArray(t) ? `<span title="${this._concatFieldValues(t,e)}" class="apply-common-tooltip">${r}</span>` : this._getFieldValueFromRangeTitles(t, e, "dr" === t && "name" === e)
                    }
                    return "range" === u.fields[e].control ? Array.isArray(t) ? this._rangeLeftValue(e) + " – " + this._rangeRightValue(e) : "" : "toggle" === u.fields[e].control ? -1 !== e.toLowerCase().indexOf("high") ? (0, s.t)("New High") : (0, s.t)("New Low") : "condition" !== u.fields[e].control || (0, u.isValueAbsent)(t.operator) || (0,
                        u.isValueAbsent)(t.value) ? "" : "in_range" === t.operator ? t.value[0] === t.value[1] ? Or.equal + " " + t.value[0] : -1e100 === t.value[0] || this._isLessThenMin(t.value[0], e) ? Or.less + " " + t.value[1] : 1e100 === t.value[1] || this._isGreaterThenMax(t.value[1], e) ? Or.greater + " " + t.value[0] : this._rangeLeftValue(e) + " – " + this._rangeRightValue(e) : "not_in_range" === t.operator ? t.value[0] === t.value[1] ? Or.nequal + " " + t.value[0] : -1e100 === t.value[0] || this._isLessThenMin(t.value[0], e) ? Or.greater + " " + t.value[1] : 1e100 === t.value[1] || this._isGreaterThenMax(t.value[1], e) ? Or.less + " " + t.value[0] : `${Or.not_in_range} ${this._rangeLeftValue(e)} – ${this._rangeRightValue(e)}` : Or[t.operator] + " " + ("number" == typeof t.value ? t.value : u.fields[t.value].title)
                }
                updateToolbarButtons() {
                    this._bridge.period_picker ? this.updatePeriodPicker() : this._bridge.originalStandalone && this.updateOldFavoritesToolbar()
                }
                updateOldFavoritesToolbar() {
                    this.$hiddenFavoritesButtonWrap && this.$hiddenFavoritesButtonWrap.hide(), this.$favoritesBar.find(".js-favorite-item").remove();
                    let e = 0;
                    this.hiddenFavorites = [];
                    const t = this.$favoritesBar.width(),
                        r = "forex" !== this._model.screener_type || this._bridge.hide_controls ? 40 : 160,
                        o = e => e === this._model.currentFieldSetId();
                    if (this._model.favoriteFieldSets) {
                        let n = null;
                        for (let i = 0; i < this._model.favoriteFieldSets.length; ++i) {
                            const s = this._model.favoriteFieldSets[i],
                                a = this._model.getFieldSetById(s);
                            if (!a) return;
                            const l = Pr(`<div class="tv-screener-toolbar__favorites-item js-favorite-item" data-set="${a.id}">\n\t\t\t\t\t${(0,Pe.htmlEscape)(a.title)}\n\t\t\t\t</div>`).toggleClass("tv-screener-toolbar__favorites-item--active", o(a.id));
                            n ? l.insertAfter(n) : l.prependTo(this.$favoritesBar);
                            let c = l.outerWidth();
                            l[0].scrollWidth > c && l.addClass("apply-common-tooltip").attr("title", a.title), c += 9, e += c, e + r > t ? (e -= c, l.remove(), this.hiddenFavorites.push({
                                id: a.id,
                                title: a.title
                            })) : n = l
                        }
                    }
                    if (this.hiddenFavorites.length)
                        if (this.$hiddenFavoritesButtonWrap) this.$hiddenFavoritesButtonWrap.trigger("resetContent").show();
                        else {
                            const e = Pr(`<div class="tv-screener-toolbar__favorites-item tv-screener-toolbar__favorites-more apply-common-tooltip common-tooltip-fixed" title="${(0,s.t)("Favorite sets")}">`).appendTo(this.$favoritesBar);
                            this.$hiddenFavoritesButtonWrap = this._popups.setHiddenFavoritesPopup(e, () => this.hiddenFavorites, o, e => this.updateSetId(e, !1, this._bridge.hide_controls))
                        }
                }
                updateSetId(e, t, r) {
                    this._lastSetId = e, this._model.applyFieldSet(e, t, r)
                }
                updateNewFavoritesToolbar() {
                    if (!this._model.favoriteFieldSets) return;
                    const e = {
                        items: this._model.favoriteFieldSets.map(e => ({
                            title: this._model.getFieldSetById(e).title
                        })),
                        activeItem: this._model.favoriteFieldSets.indexOf(this._model.currentFieldSetId()),
                        onSelect: e => {
                            const t = this._model.favoriteFieldSets[e];
                            this._lastSetId !== t && (this._model.preventPrevScanRequest(), this.updateSetId(t, !1, this._bridge.hide_controls))
                        },
                        className: "tv-screener-toolbar__no-scroll-choicer-react-root",
                        selectedItemClassName: "tv-screener-toolbar__no-scroll-choicer-react-root-dropdown-item--selected"
                    };
                    tt(this.$favoritesBar.get(0), e)
                }
                updateFavoritesToolbar() {
                    this._onWidget || (this._bridge.originalStandalone ? this.updateOldFavoritesToolbar() : this.updateNewFavoritesToolbar())
                }
                updatePeriodPicker() {
                    const e = {
                        items: this._periodPickerButtons.map(e => ({
                            title: e.title
                        })),
                        activeItem: this._periodPickerButtons.findIndex(e => e.id === this._selectedPeriodId),
                        onSelect: e => {
                            const t = this._periodPickerButtons[e].id;
                            this.changeEarningsPeriod(t)
                        },
                        className: "tv-screener-toolbar__no-scroll-choicer-react-root",
                        selectedItemClassName: "tv-screener-toolbar__no-scroll-choicer-react-root-dropdown-item--selected"
                    };
                    tt(this.$periodPicker.get(0), e)
                }
                _getWatchlist() {
                    if (window.widgetbar) {
                        const t = window.widgetbar.setPage("base");
                        let r;
                        for (var e = 0; e < t.widgets.length; e++)
                            if ("watchlist" === t.widgets[e].type) {
                                r = t.widgets[e].widgetObject;
                                break
                            }
                        return r
                    }
                    return null
                }
                adjustToolbarWidth(e) {
                    const t = this.$fieldSetsButton[0].getBoundingClientRect();
                    if (e && "mouseenter" === e.type) this.$fieldSetsButton.css("width", t.width);
                    else {
                        this.$fieldSetsButton.css("width", "auto");
                        const e = this.$fieldSetsButton[0].getBoundingClientRect();
                        this.$fieldSetsButton.css("width", t.width), this.$fieldSetsButton[0].offsetWidth, this.$fieldSetsButton.css("width", e.width)
                    }
                }
                initFilterHandlers(e) {
                    const t = function() {
                            const e = {},
                                t = ae.UserActionState.Type;
                            return (r, o, n, i) => {
                                let s = n;
                                e.hasOwnProperty(r) && (e[r].state === t && (s = t), clearTimeout(e[r].sender), n === ae.UserActionState.Click && !1 === o) || (e[r] = {
                                    state: s,
                                    sender: setTimeout(() => (0, ee.sendSnowPlowData)(new Ce(o.toString(), n, r, i)), 1e4)
                                })
                            }
                        }(),
                        r = (e, t) => t.reduce((t, r) => (r === e && (r -= 1), t += Math.floor(r / e / (1 / 4))), "");
                    e.off("change.op").on("change.op", "select.js-filter-operator", r => {
                        const o = Pr(r.target),
                            n = o.attr("name");
                        u.fields[n].value || (u.fields[n].value = {}), u.fields[n].value.operator = o.val(), this._resetField(n), this._model.update();
                        const {
                            operator: i
                        } = u.fields[n].value, s = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns";
                        t(n, i, ae.UserActionState.Click, s)
                    }), e.off("change.op-val").on("change.op-val", "select.js-filter-operator-value", r => {
                        const o = Pr(r.target),
                            {
                                value: n
                            } = r.target,
                            i = o.attr("name");
                        u.fields[i].value || (u.fields[i].value = {}), u.fields[i].value.value = o.val(), this._resetField(i), this._model.update();
                        let {
                            operator: s
                        } = u.fields[i].value;
                        const a = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns";
                        "" !== n && (s += "." + n), t(i, s, ae.UserActionState.Click, a)
                    }), e.off("update.op-arb-val").on("update.op-arb-val", "input.js-filter-operator-arb-value", r => {
                        const o = Pr(r.target),
                            n = o.attr("name");
                        u.fields[n].value || (u.fields[n].value = {});
                        let i = +o.val();
                        isFinite(i) && !(0, u.isValueAbsent)(o.val()) || (i = null), u.fields[n].value.value = i, this._resetField(n), this._model.update();
                        const {
                            operator: s
                        } = u.fields[n].value, a = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns";
                        t(n, s, ae.UserActionState.Click, a)
                    });
                    const o = e.find("input.js-filter-operator-between-left"),
                        n = e.find("input.js-filter-operator-between-right"),
                        i = e => {
                            const t = Pr(e.target).attr("name");
                            u.fields[t].value || (u.fields[t].value = {});
                            let r = +o.val();
                            (!isFinite(r) || (0,
                                u.isValueAbsent)(o.val()) || this._isLessThenMin(r, t) || this._isGreaterThenMax(r, t)) && (r = -1e100);
                            let i = +n.val();
                            if ((!isFinite(i) || (0, u.isValueAbsent)(n.val()) || this._isLessThenMin(i, t) || this._isGreaterThenMax(i, t)) && (i = 1e100), r > i) {
                                const e = r;
                                r = i, i = e
                            }
                            u.fields[t].value.value = [r, i], -1e100 === u.fields[t].value.value[0] && 1e100 === u.fields[t].value.value[1] && (u.fields[t].value.value = ""), this._resetField(t), this._model.update()
                        };
                    e.off("update.op-between-left-val").on("update.op-between-left-val", "input.js-filter-operator-between-left", i), e.off("update.op-between-right-val").on("update.op-between-right-val", "input.js-filter-operator-between-right", i), e.off("change.toggle-val").on("change.toggle-val", "input.js-filter-toggle", r => {
                        const o = Pr(r.target),
                            n = o.attr("name");
                        u.fields[n].value = o.prop("checked"), this._resetField(n), this._model.update();
                        const i = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns";
                        t(n, o.prop("checked"), ae.UserActionState.Click, i)
                    }), e.off("click.reset").on("click.reset", ".js-reset", e => {
                        const t = Pr(e.currentTarget).data("field");
                        this.resetFilter(t)
                    });
                    let s = "";
                    e.off("keydown.filterInput").on("keydown.filterInput", "input:not(.js-search-input):not(.js-filter-operator-arb-value)", e => {
                        const t = Pr(e.currentTarget);
                        s = t.val()
                    }), e.off("keyup.filterInput").on("keyup.filterInput", "input:not(.js-search-input):not(.js-filter-operator-arb-value)", o => {
                        const n = Pr(o.currentTarget),
                            i = n.data("field"),
                            a = n.data("bound");
                        if (void 0 === i || void 0 === a || s === n.val()) return;
                        const l = [this.parseRangeValue(i, n.val(), a), u.fields[i].value ? u.fields[i].value[1 - a] : u.fields[i].range[1 - a]].sort(this._model.numericSorter),
                            c = this.approximateSliderValues(i, l);
                        if (e.find(`.tv-slider[data-field="${i}"]`).slider("values", c), u.fields[i].value = l, this._resetField(i), this._model.update(), u.fields[i].values) {
                            const o = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns",
                                n = r(u.fields[i].values.length + 1, c);
                            t(i, n, ae.UserActionState.Type, o)
                        }
                    });
                    e.find(".tv-slider").off("slidechange").on("slidechange", (e, t) => {
                        const r = Pr(e.currentTarget).data("field");
                        u.fields[r].values ? 0 === t.values[0] && t.values[1] === u.fields[r].values.length + 1 ? u.fields[r].value = null : u.fields[r].value = [0 === t.values[0] ? -1e100 : parseInt(u.fields[r].values[t.values[0] - 1], 10), t.values[1] === u.fields[r].values.length + 1 ? 1e100 : parseInt(u.fields[r].values[t.values[1] - 1], 10)] : t.values[0] === u.fields[r].range[0] && t.values[1] === u.fields[r].range[1] ? u.fields[r].value = null : u.fields[r].value = t.values, this._resetField(r), this._model.update()
                    }).off("slide").on("slide", (e, t) => {
                        const r = Pr(e.currentTarget),
                            o = r.data("field");
                        let n = t.values[0],
                            i = t.values[1];
                        if (n === i) return !1;
                        u.fields[o].values && (n = 0 === t.values[0] ? this._rangeMinValue(o) : (0, u.getFieldFormatter)(u.fields[o], this._model.screener_type).format(u.fields[o].values[t.values[0] - 1]), i = t.values[1] === u.fields[o].values.length + 1 ? this._rangeMaxValue(o) : (0, u.getFieldFormatter)(u.fields[o], this._model.screener_type).format(u.fields[o].values[t.values[1] - 1])),
                            t.value === t.values[0] ? r.find(".tv-slider__label--left").val(n) : (t.value === t.values[1] || r.find(".tv-slider__label--left").val(n), r.find(".tv-slider__label--right").val(i))
                    }).on("slidechange", (o, n) => {
                        const i = Pr(o.currentTarget).data("field");
                        if (u.fields[i].values) {
                            const o = e.hasClass("tv-screener-dialog__filter-field") ? "filter_dialog" : "columns",
                                s = r(u.fields[i].values.length + 1, n.values);
                            t(i, s, ae.UserActionState.Slide, o)
                        }
                    })
                }
                parseRangeValue(e, t, r) {
                    if (-1 !== t.indexOf("<")) return u.fields[e].range[0];
                    if (-1 !== t.indexOf(">")) return u.fields[e].range[1];
                    t = t.replace(/%/g, "");
                    let o = (0, u.getFieldFormatter)(u.fields[e], this._model.screener_type).parse(t);
                    if (!o.res) return u.fields[e].range[r];
                    const n = o.value || 0 === o.value ? o.value : o.price;
                    return o = Math.min(u.fields[e].range[1], Math.max(u.fields[e].range[0], n)), o
                }
                approximateSliderValues(e, t) {
                    const r = [0, 0],
                        o = [].concat(-1e100, u.fields[e].values, 1e100);
                    for (let e = 0; e < 2; e++)
                        for (let n = 0; n < o.length; n++) Math.abs(t[e] - o[n]) < Math.abs(t[e] - o[r[e]]) && (r[e] = n);
                    return r
                }
                updateFilterSearch() {
                    const e = this._dialog.$fieldSearchInput.val().trim().replace(/^,\s*|\s*,$/, "").toLowerCase().split(/\s*,\s*/);
                    this._dialog.$filtersPopup.find(".js-filter-field").removeClass("js-found");
                    const t = this._dialog.$filtersPopup.find(".js-filters-wrap").get(0);
                    e.forEach(e => {
                        let r = !1;
                        for (const o in u.fields) {
                            const n = Array.from(t.querySelectorAll(`.js-filter-field-${o.replace(/\W/g,"")}:not(.js-found)`)),
                                i = (0, u.getFieldTitle)(u.fields[o]),
                                s = -1 !== o.toLowerCase().indexOf(e) || Boolean(i) && -1 !== i.toLowerCase().indexOf(e);
                            s && (r = !0), n.forEach(e => {
                                e.classList.toggle("js-hidden", !s), e.classList.toggle("js-found", s)
                            })
                        }
                        r || 0 === e.length || (0, ee.sendSnowPlowData)(new we(e))
                    })
                }
                showActiveFilters() {
                    if (this._dialog.$filtersPopup) return;
                    const e = this._dialog._getActiveFilters();
                    this._dialog.showFiltersDialog(!0).then(() => {
                        this._dialog.$dialogContainer.find(".js-search-input").val(e.join(", ")), this.updateFilterSearch()
                    })
                }
                resetAllFilters() {
                    this._resetAllFilters = !0;
                    for (const e in u.fields) this._isFilterValueEmpty(e) || this.resetFilter(e);
                    this._dialog.$dialogContainer.find(".js-search-input").val(""), this.updateFilterSearch(), this._resetAllFilters = !1
                }
                resetFilter(e) {
                    if (!u.fields[e].value || !1 === u.fields[e].resettableFilter) return;
                    u.fields[e].value = null;
                    const t = this._dialog.$filtersPopup || this.$inplaceEditor;
                    if (t)
                        if ("select" === u.fields[e].control) t.find(".js-filter-field-" + e.replace(/\W/g, "")).trigger("reset");
                        else if ("condition" === u.fields[e].control) t.find(`[name="${e}"]`).val("").trigger("change");
                    else if ("toggle" === u.fields[e].control) t.find(`[name="${e}"]`).prop("checked", !1);
                    else if ("range" === u.fields[e].control) {
                        let r = u.fields[e].range;
                        u.fields[e].values && (r = [0, u.fields[e].values.length + 1]), t.find(`.ui-slider[data-field="${e}"]`).slider("values", r).trigger("slide", {
                            values: r
                        })
                    }
                    this._resetField(e), this._model.update()
                }
                _rangeLeftValue(e) {
                    let t = u.fields[e].value;
                    return "in_range" !== t.operator && "not_in_range" !== t.operator || (t = t.value), this._isLessThenMin(t[0], e) ? this._rangeMinValue(e) : (0,
                        u.getFieldFormatter)(u.fields[e], this._model.screener_type).format(t[0])
                }
                _rangeRightValue(e) {
                    let t = u.fields[e].value;
                    return "in_range" !== t.operator && "not_in_range" !== t.operator || (t = t.value), this._isGreaterThenMax(t[1], e) ? this._rangeMaxValue(e) : (0, u.getFieldFormatter)(u.fields[e], this._model.screener_type).format(t[1])
                }
                _isGreaterThenMax(e, t) {
                    return u.fields[t].range && e >= u.fields[t].range[1]
                }
                _isLessThenMin(e, t) {
                    return u.fields[t].range && e <= u.fields[t].range[0]
                }
                _rangeMinValue(e) {
                    return "<" + (0, u.getFieldFormatter)(u.fields[e], this._model.screener_type).format(u.fields[e].values[0])
                }
                _rangeMaxValue(e) {
                    return ">" + (0, u.getFieldFormatter)(u.fields[e], this._model.screener_type).format(u.fields[e].values[u.fields[e].values.length - 1])
                }
                _highlightActiveItems(e) {
                    if (!e.find(".js-filter-checkbox:checked").size()) return e.find(".tv-control-select__option-wrap").removeClass("i-active"), void e.find(".js-item-wrap-any .tv-control-select__option-wrap").addClass("i-active");
                    e.find(".js-filter-checkbox:checked, .js-filter-checkbox-any:checked").each((function() {
                        e.find(".tv-control-select__option-wrap").removeClass("i-active"), Pr(this).closest(".tv-control-select__option-wrap").addClass("i-active")
                    }))
                }
                _closeDropdown(e) {
                    e.tvDropdown("close"), this.$inplaceEditor && this.$inplaceEditor.focus()
                }
                _createMultiSelectItems(e, t, r, o, n) {
                    const i = (u.fields[e].useDefaultRange ? u.fields[e].defaultRange : u.fields[e].range).slice().sort((t, r) => {
                        if (!1 !== u.fields[e].sortSelectedFirst) {
                            const o = u.fields[e].value === t || Array.isArray(u.fields[e].value) && ~u.fields[e].value.indexOf(t),
                                n = u.fields[e].value === r || Array.isArray(u.fields[e].value) && ~u.fields[e].value.indexOf(r);
                            if (o && !n) return -1;
                            if (n && !o) return 1
                        }
                        return !1 === u.fields[e].sortable ? 0 : t > r ? 1 : -1
                    });
                    for (let a = null === r ? 0 : -1; a < i.length; ++a) {
                        let l = -1 === a ? Nr : i[a];
                        const c = Pr(`<input type="checkbox" name="${l}" class="js-filter-checkbox${-1===a?"-any":""}"${u.fields[e].value===l||Array.isArray(u.fields[e].value)&&~u.fields[e].value.indexOf(l)?"checked":""}>`); - 1 === a && (r = c), -1 === a && n && (l = n);
                        const d = u.fields[e].rangeTitles,
                            h = d && d[l] && d[l][2],
                            p = this._getFieldValueFromRangeTitles(l, e),
                            f = h && !0 === h.nowrap ? `<span class="tv-control-checkbox__label--nowrap">${(0,s.t)(p)}</span>` : (0, s.t)(p),
                            g = Pr(`<div class="tv-dropdown-behavior__item js-item-wrap${-1===a?"-any":""}">`).appendTo(t);
                        Pr(`<label data-field="${e}" class="tv-control-select__option-wrap ${o}__dropdown-checkbox-item">`).append(c).append(`<span class="tv-control-checkbox__label">${f}</span>`).appendTo(g), c.tvControlCheckbox()
                    }
                    return r
                }
                _createMultiSelectItemsElement(e, t, r, o, n = !1, i = (() => {}), s = !1, a) {
                    const l = {
                        changed: !1,
                        resetOptions: null
                    };
                    let c = Pr(),
                        d = Pr();
                    const h = "forex-group" === r.attr("data-select-name"),
                        p = r => {
                            const o = !t.find(".js-filter-checkbox:checked").size();
                            s ? c && c.prop("checked", !0) : d.prop("checked", o), n && this._highlightActiveItems(t), r || this._resetField(e), this._model.update(), l.changed = !r, i(t, o)
                        };
                    let f = Pr();
                    return l.resetOptions = r => {
                            t.empty(), d = this._createMultiSelectItems(e, t, s ? null : d, o, a), !0 !== r && (this._tryExecuteFilterChangeHandler(e), p(!0)), f = Pr()
                        }, l.resetOptions(),
                        t.on("change", ".js-filter-checkbox", o => {
                            const i = Pr(o.target),
                                a = i.attr("name");
                            if (n && u.fields[e].value === a) return i.prop("checked", !0), void this._closeDropdown(r);
                            c = Pr(), i.prop("checked") ? (u.fields[e].value ? n ? (t.find(".js-filter-checkbox").not(i).prop("checked", !1), u.fields[e].value = a) : (Array.isArray(u.fields[e].value) || (u.fields[e].value = [u.fields[e].value]), u.fields[e].value.push(a)) : u.fields[e].value = a, h && (0, ee.sendSnowPlowData)(new pt("added", a))) : (Array.isArray(u.fields[e].value) ? (u.fields[e].value.splice(u.fields[e].value.indexOf(a), 1), 1 === u.fields[e].value.length ? u.fields[e].value = u.fields[e].value[0] : u.fields[e].value.length || (s ? (c = i, u.fields[e].value = a) : u.fields[e].value = null)) : s ? (c = i, u.fields[e].value = a) : u.fields[e].value = null, h && (0, ee.sendSnowPlowData)(new pt("removed", a))), this._tryExecuteFilterChangeHandler(e), p(), n && this._closeDropdown(r)
                        }), s || t.on("click touchend", ".js-filter-checkbox-any", o => {
                            const i = Pr(o.target).attr("name");
                            o.preventDefault(), setTimeout(() => {
                                if (!u.fields[e].value) return d.prop("checked", !0), void this._closeDropdown(r);
                                d.prop("checked") ? (f.prop("checked", !0), u.fields[e].value = f.toArray().map(e => e.name), u.fields[e].value.length ? 1 === u.fields[e].value.length && (u.fields[e].value = u.fields[e].value[0]) : u.fields[e].value = null) : (f = t.find(".js-filter-checkbox:checked"), t.find(".js-filter-checkbox").prop("checked", !1), u.fields[e].value = null, h && (0, ee.sendSnowPlowData)(new pt("added", i))), this._tryExecuteFilterChangeHandler(e), p(), n && this._closeDropdown(r)
                            }, 0)
                        }), l
                }
                _tryExecuteFilterChangeHandler(e) {
                    u.fields[e].onFilterChange && u.fields[e].onFilterChange(u.fields[e].value)
                }
                _createMultiselectFilter(e, t, o, n, i = !1) {
                    const a = Pr(`<div class="${n}__selectbox-container js-filter-field-${e.replace(/\W/g,"")} js-dropdown-toggle">`).appendTo(t),
                        l = Pr(`<i class="${n}__selectbox-dropdown-toggle">`).append(Pr(r(35152)).attr({
                            width: 12,
                            height: 7
                        })),
                        c = Pr(`<span class="${n}__selectbox-caption ${n}__selectbox-caption--text-overflow">\n\t\t\t<span class="${n}__selectbox-caption-label js-label"></span>\n\t\t</span>`).append(l).appendTo(a),
                        d = c.find(".js-label"),
                        h = Pr('<div class="tv-dropdown__body tv-dropdown-behavior__body">');
                    let p = Pr();
                    if ((u.fields[e].useDefaultRange ? u.fields[e].defaultRange : u.fields[e].range).length >= 16) {
                        const e = Pr(`<div class="${n}__search-wrap">`).appendTo(h);
                        p = Pr(`<input type="text" placeholder="${(0,s.t)("Search")}" class="${n}__search-input">`).appendTo(e);
                        const t = Pr(`<div class="tv-control-select__option-wrap ${n}__search-no-matches js-hidden">No matches</div>`).appendTo(h);
                        p.on("change input", e => {
                            const r = p.val().trim().toLowerCase();
                            r ? g.find(".js-item-wrap").each((function() {
                                const e = Pr(this);
                                e.toggleClass("js-hidden", !~e.text().toLowerCase().indexOf(r))
                            })) : g.find(".js-item-wrap").removeClass("js-hidden"), g.find(".js-item-wrap-any").toggleClass("js-hidden", !!g.find(".js-item-wrap.js-hidden").size()), t.toggleClass("js-hidden", !!g.find(".js-item-wrap:not(.js-hidden)").size()), a.tvDropdown("updateScroll")
                        })
                    }
                    const f = Pr('<div class="tv-dropdown-behavior__scroll">').appendTo(h),
                        g = Pr('<div class="tv-screener-fields-popup__items-wrap tv-dropdown-behavior__inscroll">').appendTo(f),
                        m = this._createMultiSelectItemsElement(e, g, a, n, i, () => {
                            d.empty(), g.find(".js-filter-checkbox:checked, .js-filter-checkbox-any:checked").each((t, r) => {
                                d.append(Pr('<span class="tv-screener-dialog__filter-field-content-value">').text((0, s.t)(this._getFieldValueFromRangeTitles(Pr(r).attr("name"), e))))
                            }), a.focus()
                        }, u.fields[e].noAny),
                        _ = e => {
                            if (!0 !== e && !a.is(".i-opened")) return;
                            const t = a.closest(".i-scrollable");
                            if (t.size() && (a.offset().top + a.height() < t.offset().top || a.offset().top > t.offset().top + t.height())) return void a.tvDropdown("close");
                            const r = o.offset(),
                                n = a.offset();
                            let i = Pr(window).height() - n.top + Pr(window).scrollTop() - 35;
                            p.size() && (i -= 45);
                            const s = Math.max(o.height() - (n.top - r.top), 60);
                            if (f.css("maxHeight", Math.min(s, i)), this._setDropdownPosition(h, a, o), h.parent().is(o)) {
                                const e = a.tvDropdown("getInstance").scroll;
                                e.updateScrollBar(), e.updateScroll()
                            } else h.appendTo(o)
                        };
                    let v;
                    a.tvDropdown({
                        $wrap: c,
                        $body: h,
                        scroll: !0,
                        closeWithEsc: !0,
                        noAnimation: !0
                    }).on("resetPosition", _).on("beforeOpenMenu", () => {
                        m.changed && (m.resetOptions(!0), m.changed = !1), _(!0), i && (g.find(".tv-control-checkbox__box, .js-filter-checkbox, .js-filter-checkbox-any").hide(), this._highlightActiveItems(g), g.find(".tv-control-checkbox__label").css("margin-right", 0)), l.addClass(n + "__selectbox-dropdown-toggle--open")
                    }).on("afterOpenMenu", () => {
                        v = g.find(".js-filter-checkbox:checked"), p.size() && setTimeout(() => {
                            p.focus().on("focusout", (function() {
                                p.focus(), setTimeout((function() {
                                    p.focus()
                                }), 10)
                            })), p.add(".tv-screener-inplace-editor__dropdown-checkbox-item").on("keypress keyup", e => {
                                e.keyCode === Fe.ESC && this._closeDropdown(a)
                            })
                        }, 0)
                    }).on("beforeCloseMenu", () => {
                        l.removeClass(n + "__selectbox-dropdown-toggle--open"), p.off("focusout keypress keyup")
                    }).on("afterCloseMenu", () => {
                        a.tvDropdown("updateScroll"), h.detach();
                        const t = g.find(".js-filter-checkbox:checked"),
                            r = "tv-screener-dialog" === n ? "filter_dialog" : "columns",
                            o = Array.from(t).map(e => e.name).join(",");
                        o !== Array.from(v).map(e => e.name).join(",") && (0, ee.sendSnowPlowData)(new Ce(o, ae.UserActionState.Click, e, r))
                    }).on("reset", m.resetOptions).on("mousedownoutside", () => {
                        a.tvDropdown("close")
                    }), h.on("mousedown touchstart", e => e.stopPropagation())
                }
                _applySelectbox(e, t, o = {}) {
                    const n = o.classPrefix || "tv-screener-dialog",
                        i = Pr(`<label class="${n}__selectbox-container js-dropdown-toggle">`);
                    o.addClass && i.addClass(o.addClass), i.insertAfter(e), e.appendTo(i);
                    const s = Pr(`<i class="${n}__selectbox-dropdown-toggle">`).append(Pr(r(35152)).attr({
                            width: 12,
                            height: 7
                        })),
                        a = Pr(`<span class="${n}__selectbox-caption">\n\t\t\t<span class="${n}__selectbox-caption-label js-label"></span>\n\t\t</span>`).append(s).appendTo(i),
                        l = Pr('<div class="tv-dropdown__body tv-dropdown-behavior__body">'),
                        c = Pr('<div class="tv-dropdown-behavior__scroll">').appendTo(l),
                        u = Pr('<div class="tv-screener-fields-popup__items-wrap tv-dropdown-behavior__inscroll">').appendTo(c),
                        d = () => {
                            l.find(".js-option-selected").removeClass("i-active js-option-selected");
                            const t = l.find(`[data-value="${e.val()}"]`),
                                r = !t.data("value");
                            t.addClass("i-active js-option-selected").toggleClass(n + "__selectbox-option--no-value", r), a.find(".js-label").toggleClass(n + "__selectbox-caption--no-value", r).text(t.text())
                        },
                        h = () => {
                            u.empty();
                            const t = e.get(0).childNodes;
                            for (let e = 0; e < t.length; ++e) Pr(`<span data-value="${t[e].value}" class="tv-dropdown-behavior__item tv-control-select__option js-option">\n\t\t\t\t\t<span class="tv-control-select__option-wrap ${n}__selectbox-option-wrap">${t[e].textContent}</span>\n\t\t\t\t</span>`).appendTo(u);
                            d()
                        };
                    h(), e.on("change", d);
                    const p = e => {
                        if (!0 !== e && !i.is(".i-opened")) return;
                        const r = i.closest(".i-scrollable");
                        if (r.size() && (i.offset().top + i.height() < r.offset().top || i.offset().top > r.offset().top + r.height())) return void i.tvDropdown("close");
                        const o = t.offset(),
                            n = i.offset(),
                            s = Math.max(t.height() - (n.top - o.top), 60),
                            a = Pr(window).height() - n.top + Pr(window).scrollTop() - 35;
                        c.css("maxHeight", Math.min(s, a)), this._setDropdownPosition(l, i, t), l.appendTo(t)
                    };
                    return i.on("resetPosition", p).on("beforeOpenMenu", () => {
                        p(!0), s.addClass(n + "__selectbox-dropdown-toggle--open")
                    }).on("beforeCloseMenu", () => s.removeClass(n + "__selectbox-dropdown-toggle--open")).on("afterCloseMenu", () => {
                        i.tvDropdown("updateScroll"), l.detach()
                    }).tvDropdown({
                        $wrap: a,
                        $body: l,
                        scroll: !0,
                        closeWithEsc: !0,
                        noAnimation: !0
                    }), u.on("click", ".js-option", t => {
                        const r = Pr(t.currentTarget).data("value");
                        e.val() !== r && (e.val(r), e.trigger("change")), i.tvDropdown("close")
                    }), l.on("mousedown touchstart", e => e.stopPropagation()), e.on("reset", h), i
                }
                _setDropdownPosition(e, t, r) {
                    const o = r.offset(),
                        n = t.offset();
                    e.css("top", n.top - o.top - 15), (0, Z.isRtl)() ? e.css("right", r[0].scrollWidth - (n.left + t.width()) + o.left - (0, Z.getLTRScrollLeft)(r[0])) : e.css("left", n.left - o.left)
                }
                _isFilterValueEmpty(e) {
                    const t = u.fields[e].value;
                    return t && "condition" === u.fields[e].control ? "" === t.value || null == t.value : !(t && (!Array.isArray(t) || t.length) && ("object" != typeof t || Object.keys(t).find(e => !!t[e])))
                }
                addFieldFilter(e, t, o = "tv-screener-dialog", n) {
                    const i = Pr('<div class="' + o + "__filter-field js-filter-field js-filter-field-" + e.replace(/\W/g, "") + " " + o + "__filter-field--cat" + u.fields[e].category + ' js-wrap">'),
                        a = !this._isFilterValueEmpty(e);
                    if (a) {
                        const e = t.find(".tv-screener-dialog__filter-field--active");
                        e.length > 0 ? i.insertAfter(e.last()) : t.prepend(i)
                    } else i.appendTo(t);
                    n && (a ? t.removeClass("tv-screener-inplace-editor__without-reset") : (i.addClass("tv-screener-inplace-editor__filter-without-reset"), t.addClass("tv-screener-inplace-editor__without-reset")));
                    let l = u.fields[e].filterTitle || u.fields[e].title;
                    "toggle" === u.fields[e].control && "is_primary" !== e && (l = (0, s.t)("New {title}").format({
                        title: l
                    })), Pr(`<div class="${o}__filter-field-title js-filter-field-title-${e.replace(/\W/g,"")}">${(0,s.t)(l)}</div>`).appendTo(i), this.setFieldActive(e, a, i);
                    const c = Pr(`<div class="${o}__filter-field-content ${o}__filter-field-content--${u.fields[e].control} js-filter-field-_content">`).appendTo(i);
                    return Pr(`<div class="${o}__filter-field-reset ${a||!n?"":"i-hidden "}apply-common-tooltip js-reset" data-field="${e}" title="${(0,s.t)("Reset")}">`).append(Pr(r(80096))).appendTo(i), new Promise(t => {
                        setTimeout(() => {
                            if ("select" === u.fields[e].control) this._createMultiselectFilter(e, c, n ? this._bridge.$body : this._dialog.$dialogContainer, o, u.fields[e].isSingle);
                            else if ("range" === u.fields[e].control) {
                                const t = {
                                    range: !0
                                };
                                let r = u.fields[e].range[0],
                                    o = u.fields[e].range[1];
                                u.fields[e].values ? (t.min = 0, t.max = u.fields[e].values.length + 1, u.fields[e].value && Array.isArray(u.fields[e].value) ? (t.values = this.approximateSliderValues(e, u.fields[e].value), r = this._rangeLeftValue(e), o = this._rangeRightValue(e)) : (t.values = [0, u.fields[e].values.length + 1], r = this._rangeMinValue(e), o = this._rangeMaxValue(e))) : (t.min = u.fields[e].range[0], t.max = u.fields[e].range[1], t.values = u.fields[e].value || [u.fields[e].range[0], u.fields[e].range[1]]), Pr(`<div class="tv-slider" data-field="${e}">\n\t\t\t\t\t\t<div class="tv-slider__labels">\n\t\t\t\t\t\t\t<input type="text" data-field="${e}" data-bound="0" class="tv-slider__label tv-slider__label--left" value="${r}"/>\n\t\t\t\t\t\t\t<input type="text" data-field="${e}" data-bound="1" class="tv-slider__label tv-slider__label--right" value="${o}"/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>`).slider(t).appendTo(c)
                            } else if ("condition" === u.fields[e].control) {
                                const t = Pr(`<select name="${e}" class="js-filter-operator js-hidden">`).appendTo(c);
                                let r, i = !0;
                                for (const r in Or) u.fields[e].hiddenOperators && -1 !== u.fields[e].hiddenOperators.indexOf(r) || (i && !u.fields[e].value && (i = !1, u.fields[e].value = {
                                    operator: r
                                }), Pr(`<option value="${r}"${r===(u.fields[e].value&&u.fields[e].value.operator)?" selected":""}>${Or[r]}</option>`).appendTo(t));
                                this._applySelectbox(t, n ? this._bridge.$body : this._dialog.$dialogContainer, {
                                    classPrefix: o,
                                    addClass: o + "__filter-field-content--left"
                                }), r = u.fields[e].conditionFields ? Array.isArray(u.fields[e].conditionFields) ? u.fields[e].conditionFields : u.fields[e].conditionFields[this._model.screener_type] || u.fields[e].conditionFields.default || Rr : Rr;
                                const a = Pr(`<select name="${e}" class="js-filter-operator-value js-hidden">`).appendTo(c);
                                let l;
                                if (Pr(`<option value="">${(0,s.t)("Value")}</option>`).appendTo(a), 0 === r.length) l = Pr(`<label class="${o}__selectbox-container js-dropdown-toggle ${o}__filter-field-content--middle js-hidden" tabindex="0">\n\t\t\t\t\t\t\t<span class="${o}__selectbox-caption-label js-label ${o}__selectbox-caption--no-value">${(0,s.t)("Value")}</span>\n\t\t\t\t\t\t</label>`).appendTo(c);
                                else {
                                    for (let t = 0; t < r.length; ++t) {
                                        const o = r[t];
                                        Pr(`<option value="${o}"${o===(u.fields[e].value&&u.fields[e].value.operator&&u.fields[e].value.value)?" selected":""}>${u.fields[o].title}</option>`).appendTo(a)
                                    }
                                    l = this._applySelectbox(a, n ? this._bridge.$body : this._dialog.$dialogContainer, {
                                        classPrefix: o,
                                        addClass: o + "__filter-field-content--middle js-hidden"
                                    })
                                }
                                const d = Pr(`<input type="text" name="${e}" class="${o}__filter-field-content--right ${o}__filter-field-text js-filter-operator-arb-value">`).appendTo(c);
                                u.fields[e].value && "number" == typeof u.fields[e].value.value && d.val("" + u.fields[e].value.value);
                                const h = e => {
                                        e.ctrlKey || e.metaKey || !e.charCode || !e.which || e.which < 32 || /[\d.-]/.test(String.fromCharCode(e.charCode)) || e.preventDefault()
                                    },
                                    p = e => {
                                        const t = {
                                            value: e.val()
                                        };
                                        return e.on("keypress", h).on("change input", (0, M.default)(r => {
                                            e.val() !== t.value && (e.trigger("update", r), t.value = e.val())
                                        }, 500)), t
                                    },
                                    f = Pr(`<input type="text" name="${e}" class="${o}__filter-field-content--right ${o}__filter-between-input js-filter-operator-between-left js-hidden">`).appendTo(c);
                                !u.fields[e].value || "in_range" !== u.fields[e].value.operator && "not_in_range" !== u.fields[e].value.operator || f.val("" + (-1e100 === u.fields[e].value.value[0] || this._isLessThenMin(u.fields[e].value.value[0], e) ? "" : u.fields[e].value.value[0]));
                                const g = p(f),
                                    m = Pr(`<span class="${o}__filter-between-separator js-hidden">—</span>`).appendTo(c),
                                    _ = Pr(`<input type="text" name="${e}" class="${o}__filter-field-content--right ${o}__filter-between-input js-filter-operator-between-right js-hidden">`).appendTo(c);
                                !u.fields[e].value || "in_range" !== u.fields[e].value.operator && "not_in_range" !== u.fields[e].value.operator || _.val("" + (1e100 === u.fields[e].value.value[1] || this._isGreaterThenMax(u.fields[e].value.value[1], e) ? "" : u.fields[e].value.value[1]));
                                const v = p(_),
                                    b = p(d),
                                    y = () => {
                                        const e = t.val(),
                                            r = e && "in_range" !== e && "not_in_range" !== e;
                                        l.toggleClass("js-hidden", !r), r || (b.value = "", d.val(""), a.val("").trigger("change"))
                                    },
                                    w = e => {
                                        const r = t.val(),
                                            o = r && "in_range" !== r && "not_in_range" !== r && !a.val();
                                        d.toggleClass("js-hidden", !o), o && !0 !== e && !this._resetAllFilters && setTimeout(() => {
                                            d.focus()
                                        }, 50)
                                    },
                                    S = e => {
                                        const r = "in_range" === t.val() || "not_in_range" === t.val();
                                        f.toggleClass("js-hidden", !r), m.toggleClass("js-hidden", !r), _.toggleClass("js-hidden", !r), r && !0 !== e && !this._resetAllFilters && setTimeout(() => {
                                            f.focus()
                                        }, 50), r || !0 === e || (g.value = "", v.value = "", f.val(""), _.val(""), a.val("").trigger("change"))
                                    };
                                "in_range" === t.val() || "not_in_range" === t.val() ? S(!0) : y(), w(!0), t.on("change", y).on("change", w).on("change", S), a.on("change", w)
                            } else if ("toggle" === u.fields[e].control) {
                                Pr(`<label class="${o}__filter-toggle">\n\t\t\t\t\t\t<input type="checkbox" name="${e}" class="${o}__filter-dropdown-item-input tv-screener-filter-rollup__item-input js-filter-toggle" ${u.fields[e].value?"checked":""}>\n\t\t\t\t\t\t<span class="${o}__filter-toggle-checkbox-title tv-control-checkbox__label">\n\t\t\t\t\t\t\t${-1!==e.toLowerCase().indexOf("high")?(0,s.t)("New High"):(0,s.t)("New Low")}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>`).appendTo(c).find(".js-filter-toggle").tvControlCheckbox()
                            }
                            t()
                        }, n ? 0 : T.dur / 3.5)
                    })
                }
                showInplaceEditor(e, t) {
                    if (!u.fields[e]) return;
                    this._inplaceEditorField = e, this.$inplaceEditorTarget = t, this.$inplaceEditor || (this.$inplaceEditor = Pr('<div class="tv-screener-inplace-editor tv-screener-inplace-editor--hidden">').on("mousedownoutside", e => {
                        const t = u.fields[this._inplaceEditorField];
                        "condition" === t.control && t.value && ((0, u.isValueAbsent)(t.value.value) || (0,
                            u.isValueAbsent)(t.value.operator)) && (this.$inplaceEditor.hasClass("js-hidden") || (t.value = null));
                        const r = this.$inplaceEditor.find(".js-dropdown-toggle.i-opened");
                        r.size() ? r.one("afterCloseMenu", () => {
                            this.$inplaceEditor.addClass("tv-screener-inplace-editor--hidden js-hidden")
                        }) : this.$inplaceEditor.addClass("tv-screener-inplace-editor--hidden js-hidden")
                    }).on("keypress keyup", e => {
                        e.keyCode !== Fe.ESC || Pr(".tv-dropdown__body.i-opened").length || this.$inplaceEditor.trigger("mousedownoutside")
                    }).attr("tabIndex", "0").appendTo(this._bridge.$body), this._bridge.standalone && (this.$inplaceEditor.addClass("tv-screener-inplace-editor--standalone"), Pr(document).on("scroll", () => {
                        this.$inplaceEditor.is(".js-hidden") || this.$inplaceEditor.css("top", this.$inplaceEditorTarget.offset().top - this._bridge.$body.offset().top)
                    }))), this.$inplaceEditor.empty().removeClass("tv-screener-inplace-editor__without-reset").removeClass("js-hidden").toggleClass("tv-screener-inplace-editor--slim", "toggle" === u.fields[e].control).toggleClass("tv-screener-inplace-editor--wide", "condition" === u.fields[e].control), this.addFieldFilter(e, this.$inplaceEditor, "tv-screener-inplace-editor", !0).then(() => {
                        this.initFilterHandlers(this.$inplaceEditor)
                    });
                    const r = this.$inplaceEditor.find(".js-reset"),
                        o = u.fields[e].inplaceEditorLeftOffset || 0,
                        n = this._getInplaceEditorBound(),
                        i = t.position().left;
                    if (this.$inplaceEditor.css("top", t.offset().top - this._bridge.$body.offset().top), (0, Z.isRtl)()) {
                        const e = i + t.width(),
                            s = o + Math.min(this.$content.width() - e, n) - r.width();
                        this.$inplaceEditor.css("right", Math.max(s, 0))
                    } else this.$inplaceEditor.css("left", Math.max(o + Math.min(i, n) - r.width(), 0));
                    this.$inplaceEditor.removeClass("tv-screener-inplace-editor--hidden").focus(), this._model.trackEvent("Open inplace editor")
                }
                _getInplaceEditorBound() {
                    let e = this._bridge.$body.width() - this.$inplaceEditor.outerWidth() + Pr(document).scrollLeft();
                    if (this._bridge.standalone) {
                        const t = this._getResizerBridgeWidth(),
                            r = this._table.$element.width() + t;
                        Pr(window).width() < r && (e = (0, Z.isRtl)() ? Pr(window).width() - t - this.$inplaceEditor.outerWidth() - Pr(document).scrollLeft() : Pr(window).width() - t - this.$inplaceEditor.outerWidth() + Pr(document).scrollLeft())
                    }
                    return e
                }
                setFilterSet(e) {
                    const t = this._model.getFilterSetById(e);
                    this.$filterSetsButton.removeClass("tv-screener-toolbar__button--unsaved").attr("data-filter-set", e), this.$filterSetsButtonTitle.text(t.title), this._popups.$filterSetsPopup && (this._popups.$filterSetsPopup.find(".tv-screener-popup__item").removeClass("tv-screener-popup__item--active"), this._popups.$filterSetsPopup.find(`[data-set="${e}"]`).addClass("tv-screener-popup__item--active"))
                }
                setFieldSet(e) {
                    const t = this._model.getFieldSetById(e);
                    this.$fieldSetsButton.removeClass("tv-screener-toolbar__button--unsaved").text(t.title).attr("data-field-set", e)
                }
                updateIntervalButton(e = this._$selectIntervalButton, t = this._model.selectedIntervalId) {
                    if (!e) return;
                    const r = (0, H.getIntervalById)(t);
                    r && e.html(r.shortTitle);
                    const o = this._model.eodRestriction.value();
                    e.toggleClass("i-hidden", o === V.Widget)
                }
                addIntervalSelect({
                    $before: e = null,
                    $appendTo: t = null,
                    $dropdownContainer: r = null
                }) {
                    return xt({
                        $before: e,
                        $appendTo: t,
                        $dropdownContainer: r,
                        makeSelectPopup: e => {
                            const t = Object.assign({
                                buttonTitle: (0, s.t)("Time Interval")
                            }, e);
                            return this._popups.setSelectPopup({
                                wrapClass: "tv-screener-toolbar__interval-select",
                                buttonClass: "tv-screener-toolbar__button tv-screener-toolbar__button--arrow-down tv-screener-toolbar__button--with-state apply-common-tooltip common-tooltip-fixed i-disabled"
                            }, t)
                        },
                        afterMakingSelectPopup: (e, t, r) => {
                            this._popups.setSelectIntervalContent(e, r, e => {
                                this._model.setSelectedIntervalId(e.id), this.updateIntervalButton(t, e.id), this.updateToolbarButtons(), this.preventHighlightChanges(), this.refresh()
                            })
                        },
                        afterSelectPopupAppend: (e, t) => {
                            this._model.loadingComplete.subscribe(null, () => {
                                t.removeClass("i-disabled"), this.updateIntervalButton(t, this._model.selectedIntervalId)
                            }, !0)
                        }
                    })
                }
                updateGroupsButton(e, t) {
                    t.sort((e, t) => u.fields.sector.sourceRange.indexOf(e) > u.fields.sector.sourceRange.indexOf(t) ? 1 : -1);
                    for (let r = 0; r < t.length; r++) {
                        const o = t[r] === Nr ? Br : t[r];
                        e.append(Pr('<span class="tv-screener-dialog__filter-field-content-value">').text(`${o}${r===t.length-1?" "+(0,s.t)("Pairs"):""}`))
                    }
                    e.attr("data-groups", t)
                }
                addGroupSelect({
                    $before: e = null,
                    $appendTo: t = null,
                    $dropdownContainer: r = null
                }) {
                    return xt({
                        $before: e,
                        $appendTo: t,
                        $dropdownContainer: r,
                        beforeMakingSelectPopup: () => {
                            if ("forex" === this._model.screener_type) {
                                const e = this._model.selectedGroups; - 1 === e.indexOf(Nr) && (u.fields.sector.value = e)
                            }
                        },
                        makeSelectPopup: e => {
                            const t = {
                                wrapClass: "",
                                buttonClass: "tv-screener-toolbar__button tv-screener-toolbar__button--space_right tv-screener-toolbar__button--arrow-down tv-screener-toolbar__button--with-state apply-common-tooltip common-tooltip-fixed i-disabled"
                            };
                            "forex" !== this._model.screener_type && (t.wrapClass += " i-hidden");
                            const r = Object.assign({
                                buttonTitle: (0, s.t)("Groups")
                            }, e);
                            return this._popups.setSelectPopup(t, r)
                        },
                        afterMakingSelectPopup: (e, t, r) => {
                            t.on("click", () => {
                                r.off("change click touchend"), e.attr({
                                    "data-select-name": "forex-group"
                                }), this._createMultiSelectItemsElement("sector", r, e, "tv-screener-inplace-editor", !1, e => {
                                    t.empty();
                                    const r = [];
                                    e.find(".js-filter-checkbox:checked, .js-filter-checkbox-any:checked").each((e, t) => {
                                        const o = Pr(t).attr("name");
                                        r.push(o)
                                    }), this._model.setSelectedGroups(r), this.updateGroupsButton(t, r), this.updateToolbarButtons()
                                }, !1, Br)
                            })
                        },
                        afterSelectPopupAppend: (e, t) => {
                            this._$groupSelect = e, this._model.loadingComplete.subscribe(null, () => {
                                t.removeClass("i-disabled"), t.attr({
                                    "data-name": "screener-forex-pairs",
                                    "data-role": "button"
                                }), this.updateGroupsButton(t, this._model.selectedGroups)
                            }, !0)
                        }
                    })
                }
                updateMarketButton(e) {
                    const t = this._model.markets,
                        r = Pr(".js-screener-market-button");
                    let o, n, i;
                    if (1 === t.length) {
                        const e = t[0],
                            r = (0, c.getMarketsByScreenerType)(this._model.screener_type);
                        o = t[0], n = r[e].flag ? (0, A.flagHtml)(r[e].flag) : r[e].icon, i = r[e].title
                    } else o = "global", i = "global", n = Pr('\n\t\t\t\t<i alt="globe" class="tv-flag-country tv-flag-country--globe">\n\t\t\t\t</i>\n\t\t\t').html(Lr);
                    r.attr({
                        "data-name": "screener-markets",
                        "data-role": "button",
                        "data-market": o
                    }), r.html(n), r.parent().toggleClass("tv-screener-market-select--hidden", "stock" !== this._model.screener_type), e && e.append(`<span class="tv-screener-market-select__button-title">\n\t\t\t\t${i}\n\t\t\t</span><span class="tv-caret">`)
                }
                _showMarketsDialog() {
                    gt(this.getScreenerMarketDialogOptions())
                }
                addMarketSelect({
                    $before: e = null,
                    $appendTo: t = null,
                    $dropdownContainer: r = null,
                    caption: o = !1,
                    classSuffix: n = null
                }) {
                    if (this._onWidget) return;
                    const i = xt({
                        $before: e,
                        $appendTo: t,
                        $dropdownContainer: r,
                        makeSelectPopup: () => {
                            const e = {
                                    wrapClass: n ? "tv-screener-market-select tv-screener-market-select" + n : "tv-screener-market-select",
                                    buttonClass: "tv-screener-market-select__button js-screener-market-button apply-common-tooltip common-tooltip-fixed"
                                },
                                {
                                    wrapClass: t,
                                    buttonClass: r
                                } = e,
                                o = Pr(`<div class="${t} tv-dropdown tv-dropdown--inline tv-dropdown-behavior">`);
                            return {
                                $wrap: o,
                                $button: Pr(`<div class="tv-dropdown__button tv-dropdown-behavior__button ${r}" title="${(0,s.t)("Markets")}">`).appendTo(o)
                            }
                        }
                    });
                    return this.getScreenerMarketDialogOptions = () => ({
                        title: (0, s.t)("Select markets"),
                        initialSelectedMarkets: (0, mt.getMarketsByScreenerNames)(_t.markets, this._model.markets),
                        autofocus: !0,
                        initialMode: (0, Mr.getMarketDialogMode)(),
                        defaultMarket: _t.markets.filter(e => e.value === (0, c.getDefaultMarketForLocale)(window.locale, this._model.screener_type))[0],
                        onSelectComplete: e => {
                            const {
                                mode: t
                            } = e;
                            (0, Mr.saveMarketSelectModeSetting)(t);
                            const r = e.markets.map(e => e.value);
                            this.$filterSetsButton.toggleClass("i-disabled", !0), this.$fieldSetsButton.toggleClass("i-disabled", !0), this.$filtersButton.toggleClass("i-disabled", !0), this._model.setMarket(r).then(() => {
                                this.$filterSetsButton.toggleClass("i-disabled", !1), this.$fieldSetsButton.toggleClass("i-disabled", !1), this.$filtersButton.toggleClass("i-disabled", !1), this.updateMarketButton(o && i || null)
                            }).catch(e => {
                                e && Dr.logError(e)
                            })
                        },
                        onClose: () => {
                            (0, ee.sendSnowPlowData)(new dt.ChangeMarketEvent(this._model.markets.join(",")))
                        }
                    }), i.on("click", () => {
                        gt(this.getScreenerMarketDialogOptions())
                    }), this.updateMarketButton(o && i || null), i
                }
                refresh() {
                    Pr.tabvisible && !this._tempBusy && (this._data && (this._prevData = this._data.slice()), this._model.invalidateRequest(), this._model.update(null, !1, !1, !1, !0))
                }
                get refreshIntervals() {
                    return this._model.isFastRefresh ? Vr : Wr
                }
                resetRefreshCounter(e) {
                    if (clearInterval(this._refreshCounterIntervalId), !0 === e) return;
                    let t = this._model.refreshInterval;
                    const r = -1 === t || !user.is_pro && !this._model.isFastRefresh;
                    if (this.$refreshButton && this.$refreshButton.toggleClass("tv-screener-toolbar__button--with-counter", !r && !this._model.isFastRefresh).toggleClass("tv-screener-toolbar__button--active", !r), r) return;
                    const o = () => {
                        if (!this._model.isFastRefresh) {
                            const e = t / 60 | 0,
                                r = t % 60;
                            this.$refreshCounter.text(`${("00"+e).slice(-2)}:${("00"+r).slice(-2)}`)
                        }
                        t <= 0 ? this.refresh() : --t
                    };
                    o(), t >= 0 && (this._refreshCounterIntervalId = setInterval(o, 1e3))
                }
                preventHighlightChanges() {
                    this._preventHighlightChanges = !0
                }
                highlightChanges() {
                    if (this._preventHighlightChanges) return void(this._preventHighlightChanges = !1);
                    if (!this._prevData || !this._data || this._model.marketChangeProcess) return;
                    const e = {};
                    for (let t = 0; t < (this._prevData || []).length; ++t) e[this._prevData[t].s] = this._prevData[t].d;
                    if (delete this._prevData, this._model.isFastRefresh) {
                        const t = ["bid", "ask", "close"];
                        for (let r = 0; r < this._data.length; ++r) {
                            const o = this._data[r].s,
                                n = this._data[r].d,
                                i = e[o];
                            if (!i) continue;
                            const s = () => {
                                this._table.flickRow(o)
                            };
                            for (let e = 0; e < t.length; e++) {
                                const r = t[e],
                                    s = this._table.fieldsOrder.indexOf(r);
                                if (n[s] !== i[s]) {
                                    const e = n[s] > i[s];
                                    this._table.highlightCell(o, r, e)
                                }
                            }
                            setTimeout(s, 1e3)
                        }
                        return
                    }
                    const t = [];
                    for (let r = 0; r < this._data.length; ++r) {
                        const o = this._data[r].s,
                            n = this._data[r].d,
                            i = e[o];
                        if (!i) continue;
                        let s = !1;
                        for (let e = 0; e < n.length; ++e)
                            if (n[e] !== i[e]) {
                                s = !0;
                                break
                            }
                        s && t.push(o)
                    }
                    t.length && this._table.$tbody.find(`tr[data-symbol="${t.join('"],tr[data-symbol="')}"]`).addClass("tv-screener-table__result-row--flick")
                }
                _createSwitch(e) {
                    this.$switch = Pr('<div class="tv-screener-toolbar__switch">').appendTo(this.$toolbar);
                    const t = {
                        modes: e,
                        onChange: e => this._model.applySwitch(e)
                    };
                    ! function(e, t) {
                        $e.render(Ne.createElement(qe, { ...t
                        }), e)
                    }(this.$switch[0], t)
                }
                get conditionOperators() {
                    return Or
                }
            }
            var Hr = r(22413);
            const Yr = function(e) {
                return (0, Hr.default)(e, 5)
            };
            var Kr = r(29098),
                Xr = r(41962),
                Gr = r(98006),
                Qr = r(34346),
                Jr = r(31565),
                Zr = r(10164);
            class eo {
                constructor() {
                    this._localSettings = {}
                }
                getValue(e, t) {
                    return this._localSettings.hasOwnProperty(e) ? this._localSettings[e] : t
                }
                setValue(e, t) {
                    this._localSettings[e] = t
                }
                getInt(e, t) {
                    return this.getValue(e, t)
                }
                setInt(e, t) {
                    this.setValue(e, t)
                }
                getJSON(e, t) {
                    return this.getValue(e, t)
                }
                setJSON(e, t) {
                    this.setValue(e, t)
                }
                remove(e) {
                    this._localSettings.hasOwnProperty(e) && delete this._localSettings[e]
                }
            }
            var to = r(28338),
                ro = r(51943);

            function oo(e) {
                const {
                    value: t,
                    isMarketCurrency: r,
                    content: o
                } = e;
                return t === io.SYMBOL ? (0, s.t)("Symbol currency") : r && t === io.MARKET ? (0, s.t)("Market currency") : r ? (0, s.t)("Market currency") + ` (${o})` : o
            }

            function no(e) {
                const {
                    isGlobal: t,
                    financialCurrency: r,
                    symbolCurrencies: o
                } = e;
                let n = [];
                t && n.push({
                    value: io.MARKET,
                    isMarketCurrency: !0,
                    content: (0, s.t)("Market currency"),
                    description: (0, s.t)("Currency of the local market")
                });
                const i = function(e, t) {
                    return e ? {
                        value: io.GLOBAL,
                        isMarketCurrency: !1,
                        content: so.USD,
                        description: (0, s.t)("Global currency")
                    } : {
                        value: t,
                        isMarketCurrency: !0,
                        content: t,
                        description: (0, s.t)("Currency of the local market")
                    }
                }(t, r);
                n.push(i);
                const a = Object.keys(so).filter(e => e !== r),
                    l = a.map(e => ({
                        value: e,
                        isMarketCurrency: !1,
                        content: e,
                        description: void 0
                    }));
                n = [...n, ...l];
                return 1 === o.length && [r, ...a].includes(o[0]) || n.unshift({
                    value: io.SYMBOL,
                    isMarketCurrency: !1,
                    content: (0, s.t)("Symbol currency"),
                    description: (0, s.t)("The currency set for the traded instrument by the relevant company")
                }), {
                    defaultCurrency: i,
                    currencies: n
                }
            }
            var io, so, ao = r(18184);
            ! function(e) {
                e.MARKET = "market", e.SYMBOL = "symbol", e.GLOBAL = "global"
            }(io || (io = {})),
            function(e) {
                e.USD = "USD"
            }(so || (so = {}));
            class lo {
                constructor(e, t, r) {
                    this.createCurrencySelect = () => ({
                        selectButton: this._initCurrencySelect({
                            $before: this._view.$createAlertButton || this._view.$filterSetsButton
                        }).attr({
                            "data-name": "screener-price-currency",
                            "data-role": "button"
                        }),
                        currencySelect: this
                    }), this.getPriceConversionObject = () => {
                        const {
                            value: e,
                            isMarketCurrency: t
                        } = this.getCurrentCurrency();
                        return e === io.SYMBOL ? {
                            to_symbol: !0
                        } : t ? {
                            to_symbol: !1
                        } : e === io.GLOBAL ? null : {
                            to_symbol: !1,
                            to_currency: e
                        }
                    }, this._initCurrencySelect = e => {
                        const {
                            $before: t = null,
                            $appendTo: r = null,
                            $dropdownContainer: o = null
                        } = e;
                        if (!(t || r)) throw new Error("Provide at least one of $before or $appendTo for SecreenerCurrencySelect");
                        return xt({
                            $before: t,
                            $appendTo: r,
                            $dropdownContainer: o,
                            makeSelectPopup: this._createSelectButton,
                            afterMakingSelectPopup: this._setSelectContent,
                            afterSelectPopupAppend: this._onLoad
                        })
                    }, this._createSelectButton = e => {
                        const t = {
                            buttonTitle: (0, s.t)("Financials currency"),
                            ...e
                        };
                        return this._view._popups.setSelectPopup({
                            wrapClass: "tv-screener-toolbar__currency-select",
                            buttonClass: "tv-screener-toolbar__button tv-screener-toolbar__button--arrow-down tv-screener-toolbar__button--with-state apply-common-tooltip common-tooltip-fixed"
                        }, t)
                    }, this._setSelectContent = (e, t, r) => {
                        r.empty();
                        for (const e of this._availableCurrencies) {
                            const {
                                value: t,
                                content: o,
                                description: n
                            } = e, i = oo(e);
                            ao(`<div class="tv-dropdown-behavior__item">\n\t\t\t\t<div\n\t\t\t\t\tdata-currency="${t}"\n\t\t\t\t\ttitle="${n||o}"\n\t\t\t\t\tclass="tv-control-select__option-wrap tv-screener-popup__item js-currency-select ${t===this._currentCurrency.value?"tv-screener-popup__currency-select--active":""}"\n\t\t\t\t>\n\t\t\t\t\t${i}\n\t\t\t\t</div>\n\t\t\t</div>`).appendTo(r)
                        }
                        e.on("afterOpenMenu", () => {
                            r.on("click", ".js-currency-select", t => {
                                t.preventDefault();
                                const o = this._currentCurrency.value,
                                    n = t.currentTarget.dataset.currency;
                                n && n !== o && (r.find(".tv-screener-popup__currency-select--active").removeClass("tv-screener-popup__currency-select--active"), r.find(`[data-currency='${n}']`).addClass("tv-screener-popup__currency-select--active"), this._handleSelect(n), setTimeout(() => {
                                    e.tvDropdown("close"), r.off("click")
                                }, T.dur / 2))
                            })
                        })
                    }, this._handleSelect = e => {
                        this._currentCurrency = this._availableCurrencies.filter(t => t.value === e)[0], this._updateSelectButton(), this._view.preventHighlightChanges(), this._view.refresh()
                    }, this._onLoad = (e, t) => {
                        this._view._model.loadingComplete.subscribe(null, () => {
                            t.removeClass("i-disabled"), this._updateSelectButton()
                        }, !0)
                    }, this._updateSelectButton = () => {
                        const {
                            content: e
                        } = this._currentCurrency, t = (0, s.t)("Financials in") + ": " + e;
                        this._view._$currencySelectButton.html(t)
                    }, this._availableCurrencies = e, this._currentCurrency = t, this._view = r
                }
                getCurrentCurrency() {
                    return this._currentCurrency
                }
            }

            function co(e, t, r) {
                r._$currencySelectButton && (r._$currencySelectButton.parent().remove(), r._model._currencySelect = void 0);
                const o = r._bridge;
                if (!e || (0, vt.isExternalWidget)(o) || o.hide_controls) return;
                const n = function(e) {
                        return Array.isArray(e._model.markets) && e._model.markets.length > 1
                    }(r),
                    {
                        defaultCurrency: i,
                        currencies: s
                    } = no({
                        isGlobal: n,
                        financialCurrency: e,
                        symbolCurrencies: t
                    });
                if (1 === s.length) return;
                const a = new lo(s, i, r),
                    {
                        selectButton: l,
                        currencySelect: c
                    } = a.createCurrencySelect();
                r._$currencySelectButton = l,
                    r._model._currencySelect = c
            }
            var uo = r(18184);
            r(7087);
            var ho = r(8107).t;
            const po = r(52946).linking,
                fo = r(96276),
                go = r(65066),
                mo = r(11767),
                _o = r(87380).getLogger("Screener.Widget"),
                vo = window.locale || "en";
            let bo = 150;
            const yo = e => u.fields[e] && !0 !== u.fields[e].disabled && !0 !== u.fields[e].hiddenColumn,
                wo = {
                    forex: "screener-forex",
                    crypto: "screener-crypto",
                    stock: "screener"
                },
                So = ["pricescale", "minmov", "fractional", "minmove2"];
            var Co = r(18184);
            x.enable("widget");
            const ko = (0, E.extractWidgetSettings)(window.initData.widgetDefaults),
                Eo = document.querySelector("#js-screener-container"),
                xo = ko.locale || "en",
                To = (0, l.filterUtmInfo)(ko);
            (0, a.createEmbedWidgetWrapper)(Eo, To, {
                isWhiteLabel: ko.whitelabel,
                locale: xo,
                overflowAuto: !0
            });
            const Ao = Co("#js-screener-container"),
                Mo = document.querySelector(".js-embed-widget-head").getBoundingClientRect().height;
            document.querySelector(".js-embed-widget-body").style.height = `calc(100% - ${Mo}px)`, ko.isTransparent && Ao.addClass("tv-widget-screener__container--transparent");
            const Lo = S(window.TradingView.widgetCustomer).map(e => e.value);
            ko.market && -1 === Lo.indexOf(ko.market) && (ko.market = Lo[0]), ko.screener_type || (ko.screener_type = (0, d.getScreenerType)(ko.market));
            const Po = {
                $body: Ao,
                standalone: !1,
                onWidget: !0,
                widgetSettings: ko,
                hide_controls: !ko.showToolbar,
                marked_symbols_disabled: !0,
                table_context_menu_disabled: !1,
                open_chart_on_same_tab: !1,
                selection_disabled: !0,
                disableStickyHeader: !1,
                isUnavailableWidgetMarket: !(!ko.market || !k(ko.market))
            };
            new class {
                constructor(e) {
                    if (this._bridge = e, this._pendingPromise = null, !("$body" in e) && "container" in e && (this._bridge.$body = uo(e.container)), this._bridge.onWidget || "big" === this._bridge.table_style ? this.settingsSaver = new eo : this.settingsSaver = i(), this._bridge.page_size && (bo = this._bridge.page_size), this._bridge.onWidget) {
                        let t;
                        if (e.widgetSettings.largeChartUrl) {
                            t = e.widgetSettings.largeChartUrl;
                            t.match(/^https?:\/\//) || (t = "http://" + t)
                        }
                        if (this.largeChartUrl = t, this.utm = (0, l.filterUtmInfo)(e.widgetSettings), this.screener_type = e.widgetSettings.screener_type, "crypto_mkt" === this.screener_type) {
                            const t = "BTC" === e.widgetSettings.displayCurrency ? "BTC" : "USD";
                            this.switchFilter = {
                                left: "name",
                                operation: "match",
                                right: t + "$"
                            }, f.unshift({
                                id: "crypto_mkt",
                                title: "crypto_mkt",
                                content: {
                                    sort_field: "market_cap_calc",
                                    sort_direction: "desc",
                                    filters: {
                                        sector: {
                                            operator: "nempty"
                                        },
                                        market_cap_calc: {
                                            operator: "nempty"
                                        }
                                    }
                                }
                            })
                        }
                    } else this._bridge.standalone ? this.screener_type = e.screener_type || "stock" : this.screener_type = this.settingsSaver.getValue("screener.selected_type_on_chart", "stock");
                    this.settingKey = wo[this.screener_type] || wo.stock, this._bridge.onWidget && this.settingsSaver.setValue(`${vo}.${this.settingKey}.market`, e.widgetSettings.market, {
                            forceFlush: !0
                        }), this.defaultFieldSets = (0, w.getDefaultFieldSetsByScreenerType)({
                            screenerType: this.screener_type,
                            markets: this.markets,
                            isCompact: this.isServerRender(),
                            subtype: this._screenerSubtype(),
                            isOnWidget: this._bridge.onWidget
                        }), this._bridge.onWidget && (this._widgetInitColumn = e.widgetSettings.defaultColumn || this.defaultFieldSets[0].id, this._widgetInitScreen = e.widgetSettings.defaultScreen || f[0].id),
                        (0, u.applyScreenerTypeToFields)(this.screener_type, this._screenerSubtype()), "forex" === this.screener_type && g(["forex"]), this._bridge.getCurrentFilterSetId = () => this.currentFilterSetId(), this._bridge.applySymbol = (e, t = !1) => {
                            if (!0 === t || this._bridge.standalone) {
                                let t = "";
                                const r = (0, ro.getShortNameAndProName)(e);
                                t = this._bridge.onWidget && this.largeChartUrl ? (0, ur.makeTemplateSymbolUrl)(this.largeChartUrl, r) : (0, ur.makeSymbolChartUrl)(r, this.utm), window.open(t)
                            } else po.symbol.setValue(e)
                        }, this._bridge.applyFilterSet = (e, t) => {
                            const r = !(0, _e.default)(t.sort(), this.markets.sort()),
                                o = r || e !== this.currentFilterSetId();
                            let n = r ? this.setMarket(t).then(() => this._view.updateMarketButton()) : Promise.resolve();
                            return o && (n = n.then(() => this.applyFilterSet(e))), n
                        }, this.disabled = new go, this.fieldsOrder = new go, this._sortField = new go, this._sortDirection = new go, this.eodRestriction = new go(V.None), this._options = {}, this._initialSortField = e.sort_field || this.settingsSaver.getValue(this.settingKey + ".sort_field", "market_cap_basic"), this._initialSortDirection = e.sort_direction || this.settingsSaver.getValue(this.settingKey + ".sort_direction", "desc"), this.update = (0, M.default)(this.updateImpl.bind(this), 100), this._sortField.subscribe(e => {
                            this._view._updateTableSortField(), this.saveFiltersSettings(), delete this._initialSortField
                        }), this._sortDirection.subscribe(e => {
                            this._view._updateTableSortField(), this.saveFiltersSettings(), delete this._initialSortDirection
                        }), this.isScreenerWidgetUpdatedImpl = !1, this._bridge.visible && (0, vt.isChartPage)(this._bridge) && this._bridge.visible.subscribe(e => {
                            !this.isScreenerWidgetUpdatedImpl && e && (this.invalidateRequest(), this._bridge.disableStickyHeader ? this.updateImpl() : this.updateImpl(this._view._setupStickyHeader.bind(this._view)), this.isScreenerWidgetUpdatedImpl = !0)
                        }), this.scanRequest = null, this.loadingStart = new fo, this.loadingComplete = new fo, this.fieldSetChanged = new fo, this.fieldSetSaved = new fo, this.filterSetChanged = new fo, this.filterSetSaved = new fo, this.filterSetDeleted = new fo, this.maxSafeInteger = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1, this.minSafeInteger = Number.MIN_SAFE_INTEGER || -(Math.pow(2, 53) - 1), this._tickers = [], "continuous_futures" === this.screener_type && (this._bridge.open_chart_on_same_tab = !1), this._bridge.hide_controls || this._initXWindowHandlers(), this._view = new zr(e, this);
                    const t = [this._initMarkedSymbols(this._view), this._initAlerts()];
                    !this._bridge._onWidget && window.pro && t.push(window.pro.ensureValidShopConf()), Promise.all(t).then(() => {
                        if ((0, Gr.isFeatureEnabled)("screener-maintenance")) return void this._view.showMaintenance();
                        this._view.prepareLayout(), this._initAlertsReset(), this._initAlertToggle();
                        const e = () => {
                            this._checkCurrentSets(), this._view._selectedPeriodId && "today" === this._view._selectedPeriodId ? (this.applyFieldSetContent(w.earningsCalendarFieldSets), this._sortField.setValue("name"), this._sortDirection.setValue("asc")) : this.applyFieldSet(this._widgetInitColumn || this.currentFieldSetId(), !0), this.applyFilterSet(this._widgetInitScreen || this.currentFilterSetId(), !0), this._updateEodRestriction(), (0,
                                vt.isChartPage)(this._bridge) && this._bridge.visible && !this._bridge.visible.value() || (this._bridge.disableStickyHeader ? this.updateImpl() : this.updateImpl(this._view._setupStickyHeader.bind(this._view)), this.isScreenerWidgetUpdatedImpl = !0)
                        };
                        if (this.isServerRender()) this.getMetaInfo(), this.getUserSettings(), e();
                        else {
                            const t = [this.getMetaInfo(), this.getUserSettings()];
                            Promise.all(t).then(e)
                        }
                        window.loginStateChange && window.loginStateChange.subscribe(null, e => this.onLoginStateChange(e)), this._bridge.onWidget || Promise.all([r.e(53617), r.e(4516), r.e(80643), r.e(30359)]).then(r.bind(r, 68188)).then(({
                            SupportTicketData: e
                        }) => {
                            e.setScreener(this)
                        }), mo.isProd() || (window._exposed_screenerWidget = this), this.isServerRender() && delete this._bridge.server_data
                    }), (0, ee.initScreenerInstance)(this)
                }
                async _initMarkedSymbols(e) {
                    if (!this.hasMarkedSymbols()) return;
                    const t = await Promise.all([r.e(20597), r.e(94795), r.e(52146), r.e(25155), r.e(4516), r.e(74339)]).then(r.bind(r, 39519)),
                        o = await Promise.all([r.e(20597), r.e(94795), r.e(52146), r.e(25155), r.e(4516), r.e(74339)]).then(r.bind(r, 75266));
                    this.markableSymbols = new t.MarkableSymbols({
                        symbolsView: e,
                        markerContainerSelector: ".tv-screener-table__symbol-addition",
                        activeMarkerClass: "tv-screener-table__marker--active",
                        additionalMarkerClass: "tv-screener-table__marker"
                    });
                    this._markedSymbolsFilter = new o.MarkedSymbolsFilter({
                        symbolsView: e,
                        containerSelector: ".tv-screener-table__head-left--text",
                        className: "tv-screener-table__head-left--marker",
                        disableSaveState: this._bridge.disableSaveMarkedSymbolsFilter
                    });
                    const n = this._markedSymbolsFilter.getStream();
                    this._tickers = this._initTickers || this._markedSymbolsFilter.getSymbolsForScan(), this._markedSymbolsFilter.isActive() && (this._bridge.server_data = null);
                    let i = !0;
                    n.on(o.FilterEvents.Init, () => {
                        this._tickers = this._initTickers || this._markedSymbolsFilter.getSymbolsForScan(), i = !1
                    }), n.on(o.FilterEvents.FilterByMarkedSymbols, e => {
                        if (!i) {
                            const e = this._markedSymbolsFilter._colorManager.getColor();
                            (0, ee.sendSnowPlowData)(new ke(e))
                        }
                        this._tickers = e, this._prevScanData = null, this._prevRequestData = null, this.invalidateRequest(), (0, vt.isScreenerPage)(this._bridge) && i || this.update()
                    }), n.on(o.FilterEvents.Disable, () => {
                        this._tickers = this._initTickers || [], this.invalidateRequest(), this.update()
                    })
                }
                async _initAlerts() {
                    if (this._bridge.onWidget) return;
                    const e = await Promise.all([r.e(5058), r.e(70964), r.e(31130), r.e(99752), r.e(94795), r.e(4516), r.e(41242), r.e(54078), r.e(87078)]).then(r.bind(r, 8752)),
                        t = e.ScreenerAlerts,
                        o = e.ALERT_STATUS;
                    this._alerts = new t(this._bridge, this), this._alerts.currentAlertStateChange.subscribe(null, e => this._view.setAlertButtonState(e)), this._alerts.alertsUpdated.subscribe(null, () => this._view.popups.updateFilterSetsPopupAlerts(this._alerts.getFilterSetIdsWithRunningAlerts())), this._alerts.currentAlertLoading.subscribe(null, () => this._view.setCreateAlertButtonLoading()), this._alerts.alertStarted.subscribe(null, e => {
                        e === o.NEW ? this.trackEvent("New alert") : e === o.RESTART && this.trackEvent("Restart alert")
                    })
                }
                _initAlertsReset() {
                    const e = () => {
                        window.is_authenticated && (this._view.setAlertButtonsDisabledState(!0), this._alerts.ready.then(() => this._view.setAlertButtonsDisabledState(!1)).catch(e => _o.logError(String(e))))
                    };
                    window.loginStateChange && window.loginStateChange.subscribe(null, e), e()
                }
                _initAlertToggle() {
                    this._view.toggleAlert.subscribe(null, (e, t) => runOrSignIn(() => {
                        this._alerts.ready.then(() => this._alerts.toggleAlert(e || this.currentFilterSetId(), t))
                    }))
                }
                _initXWindowHandlers() {
                    this._bridge.onWidget || (this._registerXWindowHandler("screener.market-changed", () => {
                        g(this.markets);
                        let e = this.currentFilterSetId();
                        const t = this.defaultFilterSets.find(t => t.id === e);
                        if (t && t.disabled) {
                            const t = this.defaultFilterSets.find(e => !e.disabled);
                            e = t ? t.id : ""
                        }
                        this.getUserSettings().then(() => {
                            this.applyFilterSet(e, !0), this._view.updateMarketButton(), this.invalidateRequest(), this.updateImpl()
                        })
                    }), this._registerXWindowHandler("screener.save-field-set", e => {
                        const t = e.setId;
                        this.getUserSettings().then(() => {
                            t && t === this.currentFieldSetId() && this._view.$fieldSetsButton.text(this.getFieldSetById(t).title)
                        })
                    }), this._registerXWindowHandler("screener.save-filter-set", e => {
                        const t = e.setId;
                        this.getUserSettings().then(() => {
                            t && t === this.currentFilterSetId() && this._view.$filterSetsButtonTitle.text(this.getFilterSetById(t).title)
                        })
                    }), this._registerXWindowHandler("screener.add-field-set-to-favorites", () => {
                        this.getUserSettings()
                    }), this._registerXWindowHandler("screener.remove-field-set-from-favorites", () => {
                        this.getUserSettings()
                    }), this._registerXWindowHandler("screener.apply-field-set", e => {
                        this.applyFieldSetImpl(e.setId, e.initial, !1), this._view.lastSetId = e.setId
                    }), this._registerXWindowHandler("screener.apply-filter-set", e => {
                        this.applyFilterSet(e.setId, e.doNotUpdate, !1)
                    }), this._registerXWindowHandler("screener.change-selected-interval-id", e => {
                        this._view.updateIntervalButton(null, e.id), this.invalidateRequest(), this.updateImpl()
                    }))
                }
                _registerXWindowHandler(e, t) {
                    Xr.TVXWindowEvents.on(e, e => {
                        const r = JSON.parse(e);
                        this.settingKey === r.settingKey && t(r)
                    })
                }
                _sendXWindowEvent(e, t) {
                    this._bridge.onWidget || "big" === this._bridge.table_style || Xr.TVXWindowEvents.emit(e, t)
                }
                _checkCurrentSets() {
                    const e = this.currentFieldSetId();
                    e && !this.getFieldSetById(e) && this.settingsSaver.remove(this.settingKey + ".fieldSetId");
                    const t = this.currentFilterSetId();
                    t && !this.getFilterSetById(t) && this.settingsSaver.remove(this.settingKey + ".filterSetId")
                }
                isServerRender() {
                    return window.initData.screener_metainfo && window.initData.screener_data && this._bridge.server_data
                }
                updateMetaInfo(e) {
                    u.fields.index.disabled = !0, u.fields.submarket.disabled = !0;
                    const t = new Set,
                        r = this.markets || [this.market];
                    u.fields.is_primary.disabled = ["crypto", "forex"].includes(r[0]), e.fields.forEach(e => {
                        if ("currency" === e.n && e.r.forEach(e => t.add(e)), e.n in u.fields) {
                            if (u.fields[e.n].type = e.t, "index" === e.n) return u.fields.index.disabled = !1, u.fields.index.sourceRange = e.r, void(u.fields.index.range = u.fields.index.sourceRange ? u.fields.index.sourceRange.map(e => e.name) : []);
                            if ("submarket" === e.n && e.r.length >= 1 && (e.r = e.r.filter(e => "" !== e), e.r.length > 0 && (u.fields.submarket.disabled = !1)), !u.fields[e.n].range && u.fields[e.n].useDefaultRange ? u.fields[e.n].range = u.fields[e.n].defaultRange : u.fields[e.n].useDefaultRange || (u.fields[e.n].range = e.r), function(e, t) {
                                    const r = (0, c.getMarketFieldValuesByScreenerType)(e.screener_type),
                                        o = (0, c.getMarketFieldValuesByScreenerType)(d.ScreenerType.Stock).america;
                                    let n, i = [];
                                    for (const l of e.markets) r[l] && (n = r[l][t] || o[t], n && Array.isArray(n) && (s = i, a = n, i = [...new Set([...s, ...a])].sort((e, t) => e - t)));
                                    var s, a;
                                    u.fields[t].values = n
                                }(this, e.n), !1 === u.fields[e.n].sortable) return;
                            e.t === qt.Price && (u.fields[e.n].additionalColumns ? u.fields[e.n].additionalColumns = u.fields[e.n].additionalColumns.concat(So) : u.fields[e.n].additionalColumns = So), e.t === qt.Text && (u.fields[e.n].range = u.fields[e.n].range.sort()), r = e, [qt.Number, qt.FundamentalPrice].includes(r.t) && u.fields[e.n].range && !u.fields[e.n].useDefaultRange && (u.fields[e.n].range = u.fields[e.n].range.map(e => Math.min(Math.max(e, this.minSafeInteger), this.maxSafeInteger)).sort(this.numericSorter)), u.fields[e.n].values && !u.fields[e.n].range && (u.fields[e.n].range = [this.minSafeInteger, this.maxSafeInteger]), u.fields[e.n].values && u.fields[e.n].range && (u.fields[e.n].range[0] > u.fields[e.n].values[0] && (u.fields[e.n].range[0] = u.fields[e.n].values[0]), u.fields[e.n].range[1] < u.fields[e.n].values[u.fields[e.n].values.length - 1] && (u.fields[e.n].range[1] = u.fields[e.n].values[u.fields[e.n].values.length - 1])), "range" !== u.fields[e.n].control || u.fields[e.n].values || u.fields[e.n].range || (u.fields[e.n].range = [this.minSafeInteger, this.maxSafeInteger], u.fields[e.n].values = [this.minSafeInteger, 0, this.maxSafeInteger])
                        } else if (-1 !== e.n.indexOf("|")) {
                            const t = e.n.split("|");
                            u.fields[t[0]] || (u.fields[t[0]] = {}), u.fields[t[0]].customResolutions || (u.fields[t[0]].customResolutions = []), u.fields[t[0]].customResolutions.push(t[1])
                        }
                        var r
                    }), co(e.financial_currency, [...t], this._view), g(this.markets), this.defaultFilterSets = f
                }
                getMetaInfo() {
                    if (this.isServerRender()) return this.updateMetaInfo(JSON.parse(window.initData.screener_metainfo)), Promise.resolve();
                    const e = this.backendUrl() + "metainfo";
                    return new Promise(t => {
                        this.loadingStart.fire(), this._pendingPromise = uo.ajax({
                            type: "POST",
                            url: e,
                            data: JSON.stringify({
                                markets: this.markets
                            }),
                            beforeSend: () => {
                                null !== this._pendingPromise && this._pendingPromise.abort()
                            },
                            success: e => {
                                this.updateMetaInfo(e), t()
                            },
                            dataType: "json",
                            xhrFields: {
                                withCredentials: !0
                            }
                        }).fail(e => {
                            "abort" !== e.statusText && _o.logError("Failed to load screener metainfo")
                        }).always(() => {
                            this.loadingComplete.fire(), this._pendingPromise = null
                        })
                    })
                }
                fieldActive(e) {
                    return !(!u.fields[e] || !u.fields[e].value || "condition" !== u.fields[e].control || "in_range" !== u.fields[e].value.operator || 2 !== u.fields[e].value.value.length) || !(!u.fields[e] || !u.fields[e].value || "condition" === u.fields[e].control && (!u.fields[e].value.operator || "number" != typeof u.fields[e].value.value && !u.fields[e].value.value) || "range" === u.fields[e].control && u.fields[e].value[0] === u.fields[e].range[0] && u.fields[e].value[1] === u.fields[e].range[1])
                }
                patchFiltersForMarketPages(e) {
                    let t = {
                        russia: [{
                            left: "typespecs",
                            operation: "has_none_of",
                            right: "foreign-issuer"
                        }],
                        brazil: [{
                            left: "typespecs",
                            operation: "has_none_of",
                            right: "odd"
                        }],
                        thailand: [{
                            left: "typespecs",
                            operation: "has_none_of",
                            right: "foreign"
                        }],
                        uk: [{
                            left: "typespecs",
                            operation: "has_none_of",
                            right: "cdi"
                        }, {
                            left: "exchange",
                            operation: "equal",
                            right: "LSE"
                        }]
                    }[this.markets[0]];
                    if (["sector", "industry"].includes(this.screener_type) && t && (t = t.filter(e => "exchange" !== e.left)), !t || 0 === t.length) return e;
                    const r = Yr(e);
                    if (!e.filter) return r.filter = [...t], r;
                    for (const e of t) {
                        0 === r.filter.filter(t => (0, _e.default)(t, e)).length && r.filter.push(e)
                    }
                    return r
                }
                getScannerParams(e, t = !1) {
                    let r = null,
                        o = null,
                        n = null,
                        i = {};
                    if (e) {
                        const t = this.getFilterSetById(e);
                        r = t.content.sort_field, o = t.content.filters || {}, n = Object.keys(t.content.filters || {}), i = t.content.options
                    } else n = Object.keys(u.fields).filter(e => this.fieldActive(e)), i = this._options;
                    r || (r = this._sortField.value() || this._initialSortField);
                    const s = {
                        filter: [],
                        _groups: [],
                        options: i
                    };
                    if (!0 !== t) {
                        const e = (0, H.getFieldNameWithResolution)(r, this.selectedIntervalId);
                        s.filter.push({
                            left: e,
                            operation: "nempty"
                        })
                    }
                    for (let e = 0; e < n.length; ++e) {
                        const i = n[e];
                        if ("condition" === u.fields[i].control && !u.fields[i].value) continue;
                        if ("name" === i && Array.isArray(u.fields[i].value)) {
                            let e = !1;
                            const t = u.fields[i].value;
                            for (let r = 0; r < t.length; ++r)
                                if ("nequal" === t[r].operator) {
                                    e = !0;
                                    break
                                }
                            if (e) continue
                        }
                        const a = u.fields[i].groupFilter ? s._groups : s.filter;
                        let l = (0, u.conditionByField)(i, u.fields[i].value, o, this.selectedIntervalId);
                        if (i !== r || "nempty" !== l.operation || !0 === t)
                            if (l.filter2Flag && (l.filter2AndPart.length && (s.filter2 || (s.filter2 = {
                                    operator: "and",
                                    operands: []
                                }), s.filter2.operands.push({
                                    operation: {
                                        operator: "or",
                                        operands: l.filter2AndPart.map(e => ({
                                            expression: e
                                        }))
                                    }
                                })), l = l.filter), Array.isArray(l))
                                for (let e = 0; e < l.length; ++e) a.push(l[e]);
                            else a.push(l)
                    }
                    if (this.filterSetChanged.fire(), this.eodRestriction.value() !== V.None && (s.options.data_restrictions = "PREV_BAR"), s.markets = this.markets, (0, vt.isMarketPage)(this._bridge)) return this.patchFiltersForMarketPages(s);
                    const a = s.filter.filter(e => "is_primary" === e.left);
                    return a && !1 === a.left && (s.filter = s.filter.filter(e => "is_primary" !== e.left)), s
                }
                updateImpl(e, t, r, o = !0, n = !1, i = !1) {
                    if (t && this._view.isEndReached()) return;
                    if (this._view.table.dragStarted.value()) return;
                    if ((0, Gr.isFeatureEnabled)("screener-maintenance")) return void this._view._popups.showMaintenanceDialog();
                    const s = this.generateScanRequest(),
                        a = [0, bo];
                    s.range = a.slice(), o ? (t && this._currentItemsRange ? (a[0] = this._currentItemsRange[1], a[1] = a[0] + bo, s.range[1] = a[1]) : this._view.resetItems(), this._currentItemsRange = a) : this._currentItemsRange ? s.range[1] = this._currentItemsRange[1] : this._view.resetItems(), !t && this._prevRequest && (0, _e.default)(s, this._prevRequest) ? "function" == typeof e && !0 === r && e() : (this._prevRequest = (0, Jr.clone)(s), "function" == typeof e && e(), this.scan(s, t, n, i))
                }
                _getSymbols() {
                    let e;
                    switch (this.screener_type) {
                        case "forex":
                            e = ["forex"];
                            break;
                        case "sector":
                            e = ["sector"];
                            break;
                        case "industry":
                            e = ["industry"];
                            break;
                        case "continuous_futures":
                            e = ["futures"];
                            break;
                        default:
                            e = this._bridge.types || []
                    }
                    return {
                        query: {
                            types: e
                        },
                        tickers: this._tickers
                    }
                }
                generateScanRequest() {
                    const e = Object.assign({}, this.getScannerParams());
                    if (e.symbols = this._getSymbols(), e.columns = this.getRequestColumns(), e.sort = {
                            sortBy: (0, H.getFieldNameWithResolution)(this._sortField.value() || this._initialSortField, this.selectedIntervalId),
                            sortOrder: this._sortDirection.value() || this._initialSortDirection
                        }, window.language && (e.options || (e.options = {}), e.options.lang = window.language), this._bridge.onWidget && "forex" !== this.markets[0]) {
                        const t = (0, c.getMarketsByScreenerType)(this.screener_type)[this.markets[0]];
                        t && t.stocks && t.stocks.length && (e.symbols.query.exchanges = t.stocks.map(e => "NYSE ARCA" === e ? "AMEX" : e))
                    }
                    if (e._groups.length > 0 && (e.symbols.groups = e._groups), delete e._groups, "predefined_filter" === this.currentFilterSetId()) {
                        const t = this.getFilterSetById("predefined_filter");
                        if (e.symbols || (e.symbols = {}), (0, Jr.merge)(e.symbols, t.symbols), t.content && t.content.filters)
                            for (const [r, o] of Object.entries(t.content.filters))
                                if (Array.isArray(o))
                                    for (let t = 0; t < o.length; ++t) {
                                        const n = o[t];
                                        n.operator && "nequal" === n.operator && e.filter.push({
                                            left: r,
                                            operation: n.operator,
                                            right: n.value
                                        })
                                    } else {
                                        let t = {};
                                        void 0 !== o.operator && void 0 !== o.value ? t = {
                                            left: r,
                                            operation: o.operator,
                                            right: o.value
                                        } : void 0 !== o && void 0 !== o.operator ? (t = {
                                            left: r,
                                            operation: o.operator
                                        }, o.right && void 0 !== o.right && (t.right = o.right)) : void 0 !== o && (t = {
                                            left: r,
                                            operation: "equal",
                                            right: o
                                        }), "earnings_release_next_date,earnings_release_date" === t.left && (t.left = "earnings_release_date,earnings_release_next_date");
                                        e.filter.some(e => (0, _e.default)(t, e) || e.left === t.left && e.operation === t.operation) || e.filter.push(t)
                                    }
                    }
                    for (let t = 0; t < e.columns.length; ++t) e.columns[t] = (0, H.getFieldNameWithResolution)(e.columns[t], this.selectedIntervalId);
                    if (u.fields[this.searchField].searchValue) {
                        const t = {
                            left: !u.fields.description.disabled && u.fields.description.checked ? this.searchField + ",description" : this.searchField,
                            operation: "match",
                            right: u.fields[this.searchField].searchValue
                        };
                        e.filter.push(t)
                    }
                    if (this._bridge.screener_field_match && e.filter.push({
                            left: this._bridge.screener_field_match.field,
                            operation: "match",
                            right: this._bridge.screener_field_match.pattern
                        }), this._bridge.hidden_filter && (this._bridge.hidden_filter.filter && (e.filter = e.filter.concat(this._bridge.hidden_filter.filter)), this._bridge.hidden_filter.options && (e.options = Object.assign(e.options || {}, this._bridge.hidden_filter.options))), this.switchFilter && e.filter.push(this.switchFilter), this._currencySelect) {
                        const t = this._currencySelect.getPriceConversionObject();
                        t && (e.price_conversion = t)
                    }
                    return this.eodRestriction.value() !== V.None ? e.options.data_restrictions = "PREV_BAR" : delete e.options.data_restrictions, e
                }
                getRequestColumns() {
                    const e = [d.ScreenerType.Stock, d.ScreenerType.Sector, d.ScreenerType.Industry].includes(this.screener_type) ? ["currency", "fundamental_currency_code"] : [];
                    return Array.from(new Set([...this.fieldsOrder.value(), ...this._view.table.additionalColumns, ...e]))
                }
                getDownloadData() {
                    const e = this._prevRequest ? (0, Jr.clone)(this._prevRequest) : this.generateScanRequest();
                    delete e.range;
                    const t = this.fieldsOrder.value().slice(0);
                    for (let r = 0; r < t.length; ++r) {
                        const o = t[r];
                        e.columns[r] = (0, H.getFieldNameWithResolution)(o, this.selectedIntervalId)
                    }
                    return new Promise(t => {
                        this._sendScanRequest(JSON.stringify(e), e => {
                            t(JSON.parse(e))
                        })
                    })
                }
                scan(e, t, r, o = !1) {
                    if (!o && this._bridge.visible && !0 !== this._bridge.visible.value()) return;
                    const n = JSON.stringify(e);
                    this.loading = !0, this.loadingStart.fire(t && !r);
                    const i = Date.now(),
                        s = function(e) {
                            const t = e.map((e, t) => [e, t]);
                            return new Map(t)
                        }(e.columns);
                    if (this._bridge.isUnavailableWidgetMarket) return void this._view.display({
                        data: []
                    }, s);
                    const a = (t, r) => {
                            this.loading = !1;
                            const o = Date.now() - i,
                                n = JSON.parse(t);
                            this._shouldRerender(t, e) && (this._view.display(n, s, r), this._prevScanData = t, this._prevRequestData = (0, Jr.clone)(e)), this.isServerRender() && n.request && (n.request.symbols && n.request.symbols.tickers && (this._initTickers = n.request.symbols.tickers, this._tickers = this._initTickers), this._options = n.request.options), this.loadingComplete.fire();
                            if (null !== location.pathname.match(/earnings\/{0,1}$/i) && !this.isServerRender()) {
                                const e = "error" === r ? "error" : "ok",
                                    t = void 0 !== n.status && 0 !== n.status ? n.status : "error" === e ? 400 : 200;
                                Zr.telemetry.sendReport("calendars", "earnings_http_status", {
                                    value: t,
                                    additional: {
                                        source: "ScreenerWidget"
                                    }
                                }), Zr.telemetry.sendReport("calendars", "earnings_response_time_frame", {
                                    value: o,
                                    additional: {
                                        source: "ScreenerWidget"
                                    }
                                }), Zr.telemetry.sendReport("calendars", "earnings_" + e)
                            }
                        },
                        l = (e, t) => {
                            const r = Date.now() - i;
                            this.loading = !1, this._view.display(e, s, t), this.loadingComplete.fire();
                            if (null !== location.pathname.match(/earnings\/{0,1}$/i) && !this.isServerRender()) {
                                const o = "error" === t ? "error" : "ok",
                                    n = void 0 !== e.status && 0 !== e.status ? e.status : "error" === o ? 400 : 200;
                                Zr.telemetry.sendReport("calendars", "earnings_http_status", {
                                    value: n,
                                    additional: {
                                        source: "ScreenerWidget"
                                    }
                                }), Zr.telemetry.sendReport("calendars", "earnings_response_time_frame", {
                                    value: r,
                                    additional: {
                                        source: "ScreenerWidget"
                                    }
                                }), Zr.telemetry.sendReport("calendars", "earnings_" + o)
                            }
                        };
                    this.isServerRender() ? a(window.initData.screener_data) : this._markedSymbolsFilter && this._markedSymbolsFilter.isActive() && !this._tickers.length ? this._view.display({
                        data: []
                    }, s) : (this.scanRequest && 4 !== this.scanRequest.readyState && this.scanRequest.abort(), this.scanRequest = this._sendScanRequest(n, a), this.scanRequest.fail(l), this.trackEvent("Scan request"), window.initData.filter_id && delete window.initData.filter_id)
                }
                preventPrevScanRequest() {
                    this.loading && this.scanRequest && (this.scanRequest.abort(), this.scanRequest = null)
                }
                _shouldRerender(e, t) {
                    return !this._isPrevScanDataEqual(e) || !this._isPrevRequestDataEqual(t)
                }
                _isPrevScanDataEqual(e) {
                    return this._prevScanData === e
                }
                _isPrevRequestDataEqual(e) {
                    return (0, _e.default)(e, this._prevRequestData)
                }
                isFieldSetChanged() {
                    if (this._bridge.onWidget) return !1;
                    const e = this.currentFieldSetId(),
                        t = e && this.getFieldSetById(e);
                    if (!e || !t) return !0;
                    const r = t.content.slice().filter(yo),
                        o = this.fieldsOrder.value().slice().filter(yo),
                        n = !u.fields.type.disabled && -1 !== t.content.indexOf("type") !== u.fields.type.checked,
                        i = !u.fields.description.disabled && -1 !== t.content.indexOf("description") !== u.fields.description.checked;
                    return r.join() !== o.join() || n || i
                }
                applyFieldSetContent(e) {
                    for (const t in u.fields) u.fields[t].checked = -1 !== e.indexOf(t);
                    this.fieldSetChanged.fire(e.filter(e => !0 !== u.fields[e].hiddenColumn))
                }
                applyFieldSetImpl(e, t, r = !0) {
                    const o = this.getFieldSetById(e),
                        n = o.content.filter(e => u.fields[e] && !u.fields[e].disabled);
                    if (this.applyFieldSetContent(n), t || this.update(), this._view.setFieldSet(e), this.settingsSaver.setValue(this.settingKey + ".fieldSetId", o.id, {
                            forceFlush: !0
                        }), this._view.updateFavoritesToolbar(), !t) {
                        const t = this.defaultFieldSets.find(t => t.id === e) ? e : "custom";
                        this.trackEvent("Apply field set " + t)
                    }
                    r && this._sendXWindowEvent("screener.apply-field-set", JSON.stringify({
                        setId: e,
                        initial: t,
                        settingKey: this.settingKey
                    }))
                }
                applyFieldSet(e, t, r) {
                    t || r || !this.isFieldSetChanged() ? this.applyFieldSetImpl(e, t) : new Promise(e => {
                        this._bridge.onWidget ? e() : this._view._popups.showConfirmDialog(ho("You have unsaved changes in your current column set. Would you like to save them?")).then(t => {
                            t ? this._view.popups.confirmAndSaveCurrentFieldSet().then(e, t => {
                                t && _o.logError(t), e()
                            }) : e()
                        })
                    }).then(() => {
                        this.applyFieldSetImpl(e, t)
                    })
                }
                isFilterSetChanged() {
                    if (this._bridge.onWidget) return !1;
                    const e = this.currentFilterSetId(),
                        t = e && this.getFilterSetById(e);
                    if (!e || !t) return !0;
                    const r = this.markets || [this.market];
                    ["forex", "crypto"].includes(r[0]) && delete t.content.filters.is_primary;
                    const o = this.currentFilterState(),
                        n = {};
                    if (t.content.filters)
                        for (const e of Object.keys(t.content.filters)) {
                            const r = t.content.filters[e],
                                o = (0, u.isValueAbsent)(r.operator),
                                i = (0, u.isValueAbsent)(r.value);
                            (o && i || !o && !i) && (n[e] = r)
                        }
                    if (t.content.options && o.options) {
                        if (!!o.options.active_symbols_only !== !!t.content.options.active_symbols_only) return !0
                    }
                    const i = o.filters,
                        s = Object.keys(n).concat(Object.keys(i)).filter((e, t, r) => r.indexOf(e) === t);
                    for (let e = 0; e < s.length; ++e) {
                        const t = s[e];
                        if (!n.hasOwnProperty(t) || !i.hasOwnProperty(t)) return !0;
                        if (Array.isArray(n[t]) ^ Array.isArray(i[t])) return !0;
                        if (Array.isArray(n[t]) && Array.isArray(i[t]) && n[t].sort(this.numericSorter).join() !== i[t].sort(this.numericSorter).join() || !Array.isArray(n[t]) && !(0, _e.default)(n[t], i[t])) return !0
                    }
                    return !!(t.content.sort_direction && t.content.sort_direction !== o.sort_direction || t.content.sort_field && t.content.sort_field !== o.sort_field)
                }
                currentFilterState() {
                    const e = {};
                    for (const t in u.fields) {
                        const r = u.fields[t].value;
                        if ("is_primary" !== t) u.fields[t].control && r && ("object" == typeof r ? "condition" === u.fields[t].control ? (0, u.isValueAbsent)(r.operator) || (0, u.isValueAbsent)(r.value) || (e[t] = r) : Object.keys(r).some(e => !!r[e]) && (e[t] = r) : e[t] = r);
                        else {
                            if (!r) continue;
                            e[t] = {
                                operator: "equal",
                                value: !0
                            }
                        }
                    }
                    return {
                        filters: e,
                        sort_field: this._sortField.value() || this._initialSortField,
                        sort_direction: this._sortDirection.value() || this._initialSortDirection,
                        options: this._options
                    }
                }
                saveFieldSet(e, t) {
                    return this._view.$fieldSetsButton.toggleClass("i-disabled", !0), e.type = "fieldSet", e.screener_type = this.screener_type, this.saveSet(e, t).then(t => {
                        this._view.$fieldSetsButton.toggleClass("i-disabled", !1);
                        const r = t && t.id && "" + t.id;
                        return e.delete || this.fieldSetSaved.fire(), this._sendXWindowEvent("screener.save-field-set", JSON.stringify({
                            setId: e.delete ? "" : r,
                            settingKey: this.settingKey
                        })), this.applyFieldSetImpl(r), t
                    })
                }
                saveFilterSet(e, t) {
                    return this._view.$filterSetsButton.toggleClass("i-disabled", !0), e.type = "filterSet", e.screener_type = this.screener_type, e.markets = this.markets, this.saveSet(e, t).then(t => (this._view.$filterSetsButton.toggleClass("i-disabled", !1), e.setId = t && t.id && "" + t.id, this.applyFilterSet(t.id), e.delete ? this.filterSetDeleted.fire(e.setId) : this.filterSetSaved.fire(e.setId, e.markets, !!e.content), this._sendXWindowEvent("screener.save-filter-set", JSON.stringify({
                        setId: e.delete ? "" : e.setId,
                        settingKey: this.settingKey
                    })), t))
                }
                saveSet(e, t) {
                    return Promise.resolve({
                        type: "POST",
                        url: "/screener/save/",
                        data: e
                    }).then(uo.ajax).then(e => (e.error ? _o.logError(e.error) : t && this.trackEvent(t), this.getUserSettings().then(() => e)))
                }
                _isExchangeRelevant(e) {
                    return Array.isArray(e.value) ? e.value.every(t => e.range.includes(t)) : e.range.includes(e.value)
                }
                _isSubmarketRelevant(e) {
                    return (Array.isArray(e.value) ? e.value : [e.value]).every(t => e.range.includes(t))
                }
                applyFilterSet(e, t, r = !0) {
                    const o = this.getFilterSetById(e);
                    if (o) {
                        o.content.sort_field && this._sortField.setValue(o.content.sort_field), o.content.sort_direction && this._sortDirection.setValue(o.content.sort_direction), this._options = Object.assign({}, o.content.options);
                        for (const e in u.fields) o.content.filters && e in o.content.filters ? ("condition" === u.fields[e].control && Array.isArray(o.content.filters[e]) && 2 === o.content.filters[e].length && (o.content.filters[e] = {
                            operator: "in_range",
                            value: o.content.filters[e]
                        }), u.fields[e].value = (0, Jr.clone)(o.content.filters[e]), "submarket" !== e || !u.fields[e].disabled && this._isSubmarketRelevant(u.fields[e]) || (u.fields[e].value = null), "is_primary" === e && u.fields[e].disabled && (u.fields[e].value = null), "condition" === u.fields[e].control && u.fields[e].value && ((0, u.isValueAbsent)(u.fields[e].value.value) || (0, u.isValueAbsent)(u.fields[e].value.operator)) && (u.fields[e].value = null), "exchange" !== e || this._isExchangeRelevant(u.fields[e]) || (u.fields[e].value = null)) : !1 !== u.fields[e].resettableFilter && (u.fields[e].value = null), this._view._resetField(e, !1, !0);
                        this.saveFiltersSettings(), !0 === t ? (this._view.setFilterSet(e), this.filterSetChanged.fire(e)) : this.updateImpl(() => {
                            this._view.setFilterSet(e), this.filterSetChanged.fire(e)
                        }, null, !0), this.settingsSaver.setValue(this.settingKey + ".filterSetId", o.id, {
                            forceFlush: !0
                        }), this.trackEvent("Apply filter set"), r && this._sendXWindowEvent("screener.apply-filter-set", JSON.stringify({
                            setId: e,
                            doNotUpdate: t,
                            settingKey: this.settingKey
                        }))
                    }
                }
                saveFiltersSettings() {
                    this.settingsSaver.setValue(this.settingKey + ".sort_direction", this._sortDirection.value() || this._initialSortDirection),
                        this.settingsSaver.setValue(this.settingKey + ".sort_field", this._sortField.value() || this._initialSortField)
                }
                getUserSettings() {
                    const e = {
                        filterSets: [],
                        fieldSets: []
                    };
                    return this.isServerRender() ? this.favoriteFieldSets = this.defaultFieldSets.map(e => e.id) : this.favoriteFieldSets = this.settingsSaver.getJSON(this.settingKey + ".favoriteFieldSets", this.defaultFieldSets.map(e => e.id)), window.is_authenticated ? new Promise(t => {
                        uo.get("/screener/settings/", {
                            screener_type: this.screener_type
                        }).done(r => {
                            (r = r || e).filterSets = r.filterSets.map(e => {
                                const t = JSON.parse(e.content);
                                var r;
                                return t.filters = (r = t.filters, Object.keys(r).forEach(e => {
                                    const t = r[e];
                                    "market_cap_basic" === e && "nempty" === t.operation && delete r[e]
                                }), r), {
                                    id: e.id + "",
                                    title: e.title,
                                    content: t
                                }
                            }), r.fieldSets = r.fieldSets.map(e => ({
                                id: e.id + "",
                                title: e.title,
                                content: JSON.parse(e.content)
                            })), this.settings = r, t()
                        })
                    }) : (this.settings = e, Promise.resolve())
                }
                getFieldSetById(e) {
                    const t = t => t.id == e,
                        r = this.defaultFieldSets.find(t) || (this.settings ? this.settings.fieldSets.find(t) : null);
                    return r ? Object.assign({}, r, {
                        title: TradingView.clean(r.title, !0)
                    }) : null
                }
                getFilterSetById(e) {
                    if ("predefined_filter" === e) return this._bridge.predefined_filter;
                    const t = t => t.id == e,
                        r = f.find(t) || (this.settings ? this.settings.filterSets.find(t) : null);
                    return r ? Object.assign({}, r, {
                        title: TradingView.clean(r.title, !0)
                    }) : null
                }
                addFavoriteFieldSet(e) {
                    -1 === this.favoriteFieldSets.indexOf(e) && this.favoriteFieldSets.push(e), this.settingsSaver.setJSON(this.settingKey + ".favoriteFieldSets", this.favoriteFieldSets, {
                        forceFlush: !0
                    }), this._view.updateFavoritesToolbar(), this.trackEvent("Add field set to favorites"), this._sendXWindowEvent("screener.add-field-set-to-favorites", JSON.stringify({
                        settingKey: this.settingKey,
                        date: Date.now()
                    }))
                }
                removeFavoriteFieldSet(e) {
                    this.favoriteFieldSets = this.favoriteFieldSets.filter(t => t !== e), this.settingsSaver.setJSON(this.settingKey + ".favoriteFieldSets", this.favoriteFieldSets, {
                        forceFlush: !0
                    }), this._view.updateFavoritesToolbar(), this._sendXWindowEvent("screener.remove-field-set-from-favorites", JSON.stringify({
                        settingKey: this.settingKey,
                        date: Date.now()
                    }))
                }
                currentFieldSetId() {
                    return this.isServerRender() ? window.initData.fieldset_id : this.settingsSaver.getValue(this.settingKey + ".fieldSetId", this.defaultFieldSets[0].id)
                }
                currentFilterSetId() {
                    const e = f.find(e => e.hasOwnProperty("disabled") && !e.disabled) || f[0];
                    return window.initData.filter_id || this.settingsSaver.getValue(this.settingKey + ".filterSetId", e.id)
                }
                getCurrentState() {
                    return {
                        requestParams: this._prevRequest || "none",
                        fieldSet: this.currentFieldSetId(),
                        filterSet: this.currentFilterSetId()
                    }
                }
                trackEvent(e) {
                    (0, Kr.trackEvent)("Screener", e, this.markets.join(",") + " " + (this._bridge.standalone ? "standalone" : "on chart"))
                }
                numericSorter(e, t) {
                    return e > t ? 1 : -1
                }
                invalidateRequest() {
                    delete this._prevRequest
                }
                get selectedIntervalId() {
                    if (!this._bridge.hide_controls) {
                        if (this.eodRestriction.value() !== V.None) return "1D";
                        const e = this.settingsSaver.getValue(this.settingKey + ".interval-id", H.DEFAULT_INTERVAL_ID);
                        return (this._bridge.onWidget || (0, to.enabled)(J.ProductFeatures.SCREENER_INTERVALS) && -1 !== (0,
                            to.getConfig)(J.ProductFeatures.SCREENER_INTERVALS).interval.indexOf(e)) && (0, H.getIntervalById)(e) ? e : H.DEFAULT_INTERVAL_ID
                    }
                }
                setSelectedIntervalId(e) {
                    this.settingsSaver.setValue(this.settingKey + ".interval-id", e, {
                        forceFlush: !0
                    }), this._sendXWindowEvent("screener.change-selected-interval-id", JSON.stringify({
                        settingKey: this.settingKey,
                        id: e
                    }));
                    const t = (0, H.getIntervalById)(e);
                    t && this.trackEvent("Apply timeframe " + t.id)
                }
                get selectedGroups() {
                    return JSON.parse(this.settingsSaver.getValue(vo + ".screener-forex.groups", '["Major","Minor"]')).map(e => u.translatedMetaFieldNames[e] || e)
                }
                setSelectedGroups(e) {
                    const t = Object.keys(u.translatedMetaFieldNames),
                        r = e.map(e => t.find(t => u.translatedMetaFieldNames[t] === e) || e);
                    this.settingsSaver.setValue(vo + ".screener-forex.groups", JSON.stringify(r), {
                        forceFlush: !0
                    }), this.trackEvent("Change selected groups")
                }
                set markets(e) {
                    const t = Array.isArray(e) ? e : [e],
                        r = JSON.stringify(t);
                    this.settingsSaver.setValue(`${vo}.${this.settingKey}.market`, r, {
                        forceFlush: !0
                    }), this.trackEvent("Change market"), this._sendXWindowEvent("screener.market-changed", JSON.stringify({
                        settingKey: this.settingKey,
                        date: Date.now()
                    }))
                }
                get markets() {
                    const e = (0, c.getDefaultMarketForLocale)(vo, this.screener_type),
                        t = Object.keys((0, c.getMarketFieldValuesByScreenerType)(this.screener_type)),
                        r = this.settingsSaver.getValue(`${vo}.${this.settingKey}.market`, JSON.stringify([e]));
                    let o;
                    try {
                        o = JSON.parse(r), Array.isArray(o) && !o.some(e => !t.includes(e)) || (o = [e])
                    } catch (n) {
                        o = n instanceof SyntaxError && t.includes(r) ? [r] : [e]
                    }
                    if (window.initData.screener_market) return [window.initData.screener_market];
                    if (window.pro && !window.pro.isPro() && o.length > 1) return o = [e], o;
                    return o.every(e => t.includes(e)) ? o : [e]
                }
                get timezone() {
                    return (0, Me.getTimezoneByMarket)(this.markets[0])
                }
                _verifyAllSetsChanges(e) {
                    return (!0 === e ? Promise.resolve() : new Promise((e, t) => {
                        this._bridge.onWidget ? e() : this.isFieldSetChanged() ? this._view.popups.showConfirmDialog(ho("You have unsaved changes in your current column set. Would you like to save them?")).then(t => {
                            t ? this._view.popups.confirmAndSaveCurrentFieldSet().then(e, t => {
                                t && _o.logError(t), e()
                            }) : e()
                        }) : e()
                    })).then(() => !0 === e ? Promise.resolve() : new Promise((e, t) => {
                        this._bridge.onWidget ? e() : this.isFilterSetChanged() ? this._view.popups.showConfirmDialog(ho("You have unsaved changes in your current filter set. Would you like to save them?")).then(t => {
                            t ? this._view.popups.confirmAndSaveCurrentFilterSet().then(e, t => {
                                t && _o.logError(t), e()
                            }) : e()
                        }) : e()
                    }))
                }
                setMarket(e, t, r) {
                    const o = Array.isArray(e) ? e : [e];
                    return !0 !== t && (0, _e.default)(o, this.markets) ? Promise.reject() : (this.markets = o, this._verifyAllSetsChanges(r).then(() => this.loadingStart.fire()).then(() => this.getMetaInfo()).then(() => {
                        this.defaultFieldSets = (0, w.getDefaultFieldSetsByScreenerType)({
                            screenerType: this.screener_type,
                            isCompact: this.isServerRender(),
                            markets: this.markets,
                            subtype: "",
                            isOnWidget: this._bridge.onWidget
                        });
                        let e = this.currentFilterSetId();
                        const t = this.defaultFilterSets.find(t => t.id === e);
                        if (t && t.disabled) {
                            const t = this.defaultFilterSets.find(e => !e.disabled);
                            e = t ? t.id : ""
                        }
                        this.applyFieldSet(this.currentFieldSetId(), !0), this.applyFilterSet(e, !0), this.invalidateRequest(), this._updateEodRestriction(), this.update()
                    }))
                }
                _updateEodRestriction() {
                    const e = {
                        markets: this.markets,
                        isPro: window.pro && window.pro.isPro(),
                        isAnonymous: !window.is_authenticated,
                        screenerType: this.screener_type,
                        onWidget: (0, vt.isExternalWidget)(this._bridge)
                    };
                    this.eodRestriction.setValue(function(e) {
                        const {
                            screenerType: t,
                            markets: r,
                            onWidget: o,
                            isPro: n,
                            isAnonymous: i
                        } = e;
                        if (r.length > 1) return V.None;
                        if ("stock" !== t) return V.None;
                        const s = (0, c.getExchangesByMarkets)(r);
                        if (o) return s.every(G.isEmbedUnrestrictedExchange) ? V.None : V.Widget;
                        if (n) return V.None;
                        const a = s.map(G.getProductIdFromStockExchange);
                        return a.some(e => (0, K.isIDCExchange)(e, !0)) && (i || a.some(e => !!e && (0, X.isUserNeedSignAgreement)(e))) ? V.Site : V.None
                    }(e))
                }
                changeScreenerType(e) {
                    return e === this.screener_type ? Promise.reject() : (this.trackEvent("Change screener type"), this._verifyAllSetsChanges().then(() => {
                        this.disabled.setValue(!0), this.marketChangeProcess = !0, this.screener_type = e, this.settingsSaver.setValue("screener.selected_type_on_chart", e, {
                            forceFlush: !0
                        }), this.settingKey = wo[this.screener_type] || wo.stock, this.defaultFieldSets = (0, w.getDefaultFieldSetsByScreenerType)({
                            screenerType: this.screener_type,
                            markets: this.markets,
                            isCompact: this.isServerRender(),
                            subtype: "",
                            isOnWidget: this._bridge.onWidget
                        }), (0, u.applyScreenerTypeToFields)(this.screener_type), g(this.markets);
                        const t = this.selectedGroups;
                        u.fields.sector.value = Array.isArray(t) && t[0] === ho("Any") ? null : t
                    }).then(() => this.loadingStart.fire()).then(() => this.getMetaInfo()).then(() => this.getUserSettings()).then(() => {
                        this._checkCurrentSets(), this.applyFieldSet(this.currentFieldSetId(), !0), this.applyFilterSet(this.currentFilterSetId(), !0)
                    }).then(() => {
                        let e = this.currentFilterSetId();
                        const t = this.defaultFilterSets.find(t => t.id === e);
                        if (t && t.disabled) {
                            const t = this.defaultFilterSets.find(e => !e.disabled);
                            e = t ? t.id : ""
                        }
                        this.applyFilterSet(e, !0), this.invalidateRequest(), this._updateEodRestriction(), this.updateImpl(void 0, void 0, void 0, void 0, void 0, !0), this.marketChangeProcess = !1, this.loadingComplete.subscribe(null, () => {
                            this.disabled.setValue(!1)
                        }, !0)
                    }))
                }
                backendUrl(e) {
                    return (0, Qr.getBackendUrl)(this.markets, e)
                }
                onLoginStateChange(e) {
                    e || this.getUserSettings().then(() => this.applyFieldSet(this.currentFieldSetId(), !0)).then(() => this.setMarket(this.markets, !0, !0)).then(() => this._view.updateMarketButton())
                }
                showNoticeIfNoFilters(e) {
                    let t;
                    if (e) {
                        const r = this.getFilterSetById(e);
                        t = r && r.content
                    } else t = this.currentFilterState();
                    return (!t || !Object.keys(t.filters || {}).length) && (this._view.popups.showNotice(ho("Looks like you are trying to set up a screener alert with no saved filters. Please select your preferred filter & save your screen to create an alert."), ho("The alert can't be enabled")), !0)
                }
                bindScrollToBottom(e) {
                    const t = () => {
                            this.loading || this.update(null, !0)
                        },
                        r = () => {
                            uo(window).bind("scrollto", {
                                to: "bottom",
                                tolerance: e
                            }, t), this.loadingComplete.unsubscribe(null, r)
                        };
                    this.loadingComplete.subscribe(null, r)
                }
                get isFastRefresh() {
                    return ["forex", "crypto"].includes(this.screener_type)
                }
                get refreshInterval() {
                    return this.isFastRefresh && !this._bridge.onWidget ? this._bridge.hide_controls ? 1 : this.settingsSaver.getInt(this.settingKey + ".refreshInterval", 1) || 1 : window.user && window.user.is_pro && this.settingsSaver.getInt(this.settingKey + ".refreshInterval", -1) || -1
                }
                set refreshInterval(e) {
                    this.settingsSaver.setValue(this.settingKey + ".refreshInterval", e, {
                        forceFlush: !0
                    }), this._view.resetRefreshCounter(), -1 !== e && this.trackEvent("Set refresh interval")
                }
                get alerts() {
                    return this._alerts
                }
                get view() {
                    return this._view
                }
                get searchField() {
                    return "sector" === this.screener_type || "industry" === this.screener_type ? "description" : "crypto_mkt" === this.screener_type ? "sector" : "name"
                }
                get screenerType() {
                    return this.screener_type
                }
                get screenerBridge() {
                    return this._bridge
                }
                applySwitch(e) {
                    if (delete this._bridge.screener_field_match, "crypto_mkt" === this.screener_type) this.switchFilter = {
                        left: "name",
                        operation: "match",
                        right: e + "$"
                    };
                    else if ("bonds" === this.screener_type) {
                        this.switchFilter = {
                            left: "description",
                            operation: "yields" === e ? "match" : "nmatch",
                            right: "YIELD$"
                        };
                        const t = "yields" === e ? ho("Yield", {
                            context: "Bonds"
                        }) : ho("Close");
                        u.fields.close.title = t, u.fields.close.shortTitle = t, this._view.table.setColumnTitle("close", t)
                    }
                    this.update()
                }
                hasMarkedSymbols() {
                    return (0, Gr.isFeatureEnabled)("marked_symbols_enabled") && x.enabled("marked_symbols") && !this._bridge.marked_symbols_disabled
                }
                _screenerSubtype() {
                    return this._bridge.screener_subtype || ""
                }
                _sendScanRequest(e, t) {
                    const r = this.backendUrl() + "scan";
                    return uo.ajax({
                        type: "POST",
                        url: r,
                        data: e,
                        success: t,
                        dataType: "text",
                        xhrFields: {
                            withCredentials: !Boolean(this._bridge.onWidget)
                        }
                    })
                }
            }(Po)
        },
        15634: (e, t, r) => {
            "use strict";
            r.r(t);
            r(36912), r(26891), r(66177), r(91822), r(63762)
        },
        36982: function(e, t, r) {
            e.exports = function(e, t, r) {
                return function(e) {
                    function t(o) {
                        if (r[o]) return r[o].exports;
                        var n = r[o] = {
                            exports: {},
                            id: o,
                            loaded: !1
                        };
                        return e[o].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
                    }
                    var r = {};
                    return t.m = e, t.c = r, t.p = "dist/", t(0)
                }([function(e, t, r) {
                    "use strict";
                    Object.defineProperty(t, "__esModule", {
                        value: !0
                    }), t.default = void 0;
                    var o = function(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }(r(1));
                    t.default = o.default, e.exports = t.default
                }, function(e, t, r) {
                    "use strict";

                    function o(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }
                    Object.defineProperty(t, "__esModule", {
                        value: !0
                    });
                    var n = function() {
                            function e(e, t) {
                                for (var r = 0; r < t.length; r++) {
                                    var o = t[r];
                                    o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
                                }
                            }
                            return function(t, r, o) {
                                return r && e(t.prototype, r), o && e(t, o), t
                            }
                        }(),
                        i = r(2),
                        s = (o(i), r(3)),
                        a = o(s),
                        l = o(r(13)),
                        c = o(r(14)),
                        u = o(r(15)),
                        d = function(e) {
                            function t(e) {
                                ! function(e, t) {
                                    if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                                }(this, t);
                                var r = function(e, t) {
                                    if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                                    return !t || "object" != typeof t && "function" != typeof t ? e : t
                                }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
                                return r.measure = function() {
                                    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : r.props.includeMargin;
                                    if (r.props.shouldMeasure) {
                                        r._node.parentNode || r._setDOMNode();
                                        var t = r.getDimensions(r._node, e),
                                            o = "function" == typeof r.props.children;
                                        r._propsToMeasure.some((function(e) {
                                            if (t[e] !== r._lastDimensions[e]) return r.props.onMeasure(t), o && void 0 !== r && r.setState({
                                                dimensions: t
                                            }), r._lastDimensions = t, !0
                                        }))
                                    }
                                }, r.state = {
                                    dimensions: {
                                        width: 0,
                                        height: 0,
                                        top: 0,
                                        right: 0,
                                        bottom: 0,
                                        left: 0
                                    }
                                }, r._node = null, r._propsToMeasure = r._getPropsToMeasure(e), r._lastDimensions = {}, r
                            }
                            return function(e, t) {
                                if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                                e.prototype = Object.create(t && t.prototype, {
                                    constructor: {
                                        value: e,
                                        enumerable: !1,
                                        writable: !0,
                                        configurable: !0
                                    }
                                }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                            }(t, e), n(t, [{
                                key: "componentDidMount",
                                value: function() {
                                    var e = this;
                                    this._setDOMNode(), this.measure(), this.resizeObserver = new c.default((function() {
                                        return e.measure()
                                    })), this.resizeObserver.observe(this._node)
                                }
                            }, {
                                key: "componentWillReceiveProps",
                                value: function(e) {
                                    var t = (e.config, e.whitelist),
                                        r = e.blacklist;
                                    this.props.whitelist === t && this.props.blacklist === r || (this._propsToMeasure = this._getPropsToMeasure({
                                        whitelist: t,
                                        blacklist: r
                                    }))
                                }
                            }, {
                                key: "componentWillUnmount",
                                value: function() {
                                    this.resizeObserver.disconnect(this._node), this._node = null
                                }
                            }, {
                                key: "_setDOMNode",
                                value: function() {
                                    this._node = l.default.findDOMNode(this)
                                }
                            }, {
                                key: "getDimensions",
                                value: function() {
                                    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._node,
                                        t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.props.includeMargin;
                                    return (0, u.default)(e, {
                                        margin: t
                                    })
                                }
                            }, {
                                key: "_getPropsToMeasure",
                                value: function(e) {
                                    var t = e.whitelist,
                                        r = e.blacklist;
                                    return t.filter((function(e) {
                                        return r.indexOf(e) < 0
                                    }))
                                }
                            }, {
                                key: "render",
                                value: function() {
                                    var e = this.props.children;
                                    return i.Children.only("function" == typeof e ? e(this.state.dimensions) : e)
                                }
                            }]), t
                        }(i.Component);
                    d.propTypes = {
                        whitelist: a.default.array,
                        blacklist: a.default.array,
                        includeMargin: a.default.bool,
                        useClone: a.default.bool,
                        cloneOptions: a.default.object,
                        shouldMeasure: a.default.bool,
                        onMeasure: a.default.func
                    }, d.defaultProps = {
                        whitelist: ["width", "height", "top", "right", "bottom", "left"],
                        blacklist: [],
                        includeMargin: !0,
                        useClone: !1,
                        cloneOptions: {},
                        shouldMeasure: !0,
                        onMeasure: function() {
                            return null
                        }
                    }, t.default = d, e.exports = t.default
                }, function(t, r) {
                    t.exports = e
                }, function(e, t, r) {
                    (function(t) {
                        "use strict";
                        var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                            return typeof e
                        } : function(e) {
                            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                        };
                        if ("production" !== t.env.NODE_ENV) {
                            var n = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
                            e.exports = r(5)((function(e) {
                                return "object" === (void 0 === e ? "undefined" : o(e)) && null !== e && e.$$typeof === n
                            }), !0)
                        } else e.exports = r(12)()
                    }).call(t, r(4))
                }, function(e, t) {
                    "use strict";

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

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

                    function n(e) {
                        if (c === setTimeout) return setTimeout(e, 0);
                        if ((c === r || !c) && setTimeout) return c = setTimeout, setTimeout(e, 0);
                        try {
                            return c(e, 0)
                        } catch (t) {
                            try {
                                return c.call(null, e, 0)
                            } catch (t) {
                                return c.call(this, e, 0)
                            }
                        }
                    }

                    function i() {
                        f && h && (f = !1, h.length ? p = h.concat(p) : g = -1, p.length && s())
                    }

                    function s() {
                        if (!f) {
                            var e = n(i);
                            f = !0;
                            for (var t = p.length; t;) {
                                for (h = p, p = []; ++g < t;) h && h[g].run();
                                g = -1, t = p.length
                            }
                            h = null, f = !1,
                                function(e) {
                                    if (u === clearTimeout) return clearTimeout(e);
                                    if ((u === o || !u) && clearTimeout) return u = clearTimeout, clearTimeout(e);
                                    try {
                                        u(e)
                                    } catch (t) {
                                        try {
                                            return u.call(null, e)
                                        } catch (t) {
                                            return u.call(this, e)
                                        }
                                    }
                                }(e)
                        }
                    }

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

                    function l() {}
                    var c, u, d = e.exports = {};
                    ! function() {
                        try {
                            c = "function" == typeof setTimeout ? setTimeout : r
                        } catch (e) {
                            c = r
                        }
                        try {
                            u = "function" == typeof clearTimeout ? clearTimeout : o
                        } catch (e) {
                            u = o
                        }
                    }();
                    var h, p = [],
                        f = !1,
                        g = -1;
                    d.nextTick = function(e) {
                        var t = new Array(arguments.length - 1);
                        if (arguments.length > 1)
                            for (var r = 1; r < arguments.length; r++) t[r - 1] = arguments[r];
                        p.push(new a(e, t)), 1 !== p.length || f || n(s)
                    }, a.prototype.run = function() {
                        this.fun.apply(null, this.array)
                    }, d.title = "browser", d.browser = !0, d.env = {}, d.argv = [], d.version = "", d.versions = {}, d.on = l, d.addListener = l, d.once = l, d.off = l, d.removeListener = l, d.removeAllListeners = l, d.emit = l, d.prependListener = l, d.prependOnceListener = l, d.listeners = function(e) {
                        return []
                    }, d.binding = function(e) {
                        throw new Error("process.binding is not supported")
                    }, d.cwd = function() {
                        return "/"
                    }, d.chdir = function(e) {
                        throw new Error("process.chdir is not supported")
                    }, d.umask = function() {
                        return 0
                    }
                }, function(e, t, r) {
                    (function(t) {
                        "use strict";
                        var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                                return typeof e
                            } : function(e) {
                                return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                            },
                            n = r(6),
                            i = r(7),
                            s = r(8),
                            a = r(9),
                            l = r(10),
                            c = r(11);
                        e.exports = function(e, r) {
                            function u(e, t) {
                                return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t
                            }

                            function d(e) {
                                this.message = e, this.stack = ""
                            }

                            function h(e) {
                                function o(o, c, u, h, p, f, g) {
                                    if (h = h || y, f = f || u, g !== l)
                                        if (r) i(!1, "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");
                                        else if ("production" !== t.env.NODE_ENV && "undefined" != typeof console) {
                                        var m = h + ":" + u;
                                        !n[m] && a < 3 && (s(!1, "You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.", f, h), n[m] = !0, a++)
                                    }
                                    return null == c[u] ? o ? new d(null === c[u] ? "The " + p + " `" + f + "` is marked as required in `" + h + "`, but its value is `null`." : "The " + p + " `" + f + "` is marked as required in `" + h + "`, but its value is `undefined`.") : null : e(c, u, h, p, f)
                                }
                                if ("production" !== t.env.NODE_ENV) var n = {},
                                    a = 0;
                                var c = o.bind(null, !1);
                                return c.isRequired = o.bind(null, !0), c
                            }

                            function p(e) {
                                return h((function(t, r, o, n, i, s) {
                                    var a = t[r];
                                    return g(a) !== e ? new d("Invalid " + n + " `" + i + "` of type `" + m(a) + "` supplied to `" + o + "`, expected `" + e + "`.") : null
                                }))
                            }

                            function f(t) {
                                switch (void 0 === t ? "undefined" : o(t)) {
                                    case "number":
                                    case "string":
                                    case "undefined":
                                        return !0;
                                    case "boolean":
                                        return !t;
                                    case "object":
                                        if (Array.isArray(t)) return t.every(f);
                                        if (null === t || e(t)) return !0;
                                        var r = function(e) {
                                            var t = e && (v && e[v] || e[b]);
                                            if ("function" == typeof t) return t
                                        }(t);
                                        if (!r) return !1;
                                        var n, i = r.call(t);
                                        if (r !== t.entries) {
                                            for (; !(n = i.next()).done;)
                                                if (!f(n.value)) return !1
                                        } else
                                            for (; !(n = i.next()).done;) {
                                                var s = n.value;
                                                if (s && !f(s[1])) return !1
                                            }
                                        return !0;
                                    default:
                                        return !1
                                }
                            }

                            function g(e) {
                                var t = void 0 === e ? "undefined" : o(e);
                                return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" : function(e, t) {
                                    return "symbol" === e || "Symbol" === t["@@toStringTag"] || "function" == typeof Symbol && t instanceof Symbol
                                }(t, e) ? "symbol" : t
                            }

                            function m(e) {
                                if (null == e) return "" + e;
                                var t = g(e);
                                if ("object" === t) {
                                    if (e instanceof Date) return "date";
                                    if (e instanceof RegExp) return "regexp"
                                }
                                return t
                            }

                            function _(e) {
                                var t = m(e);
                                switch (t) {
                                    case "array":
                                    case "object":
                                        return "an " + t;
                                    case "boolean":
                                    case "date":
                                    case "regexp":
                                        return "a " + t;
                                    default:
                                        return t
                                }
                            }
                            var v = "function" == typeof Symbol && Symbol.iterator,
                                b = "@@iterator",
                                y = "<<anonymous>>",
                                w = {
                                    array: p("array"),
                                    bool: p("boolean"),
                                    func: p("function"),
                                    number: p("number"),
                                    object: p("object"),
                                    string: p("string"),
                                    symbol: p("symbol"),
                                    any: h(n.thatReturnsNull),
                                    arrayOf: function(e) {
                                        return h((function(t, r, o, n, i) {
                                            if ("function" != typeof e) return new d("Property `" + i + "` of component `" + o + "` has invalid PropType notation inside arrayOf.");
                                            var s = t[r];
                                            if (!Array.isArray(s)) return new d("Invalid " + n + " `" + i + "` of type `" + g(s) + "` supplied to `" + o + "`, expected an array.");
                                            for (var a = 0; a < s.length; a++) {
                                                var c = e(s, a, o, n, i + "[" + a + "]", l);
                                                if (c instanceof Error) return c
                                            }
                                            return null
                                        }))
                                    },
                                    element: h((function(t, r, o, n, i) {
                                        var s = t[r];
                                        return e(s) ? null : new d("Invalid " + n + " `" + i + "` of type `" + g(s) + "` supplied to `" + o + "`, expected a single ReactElement.")
                                    })),
                                    instanceOf: function(e) {
                                        return h((function(t, r, o, n, i) {
                                            if (!(t[r] instanceof e)) {
                                                var s = e.name || y;
                                                return new d("Invalid " + n + " `" + i + "` of type `" + function(e) {
                                                    return e.constructor && e.constructor.name ? e.constructor.name : y
                                                }(t[r]) + "` supplied to `" + o + "`, expected instance of `" + s + "`.")
                                            }
                                            return null
                                        }))
                                    },
                                    node: h((function(e, t, r, o, n) {
                                        return f(e[t]) ? null : new d("Invalid " + o + " `" + n + "` supplied to `" + r + "`, expected a ReactNode.")
                                    })),
                                    objectOf: function(e) {
                                        return h((function(t, r, o, n, i) {
                                            if ("function" != typeof e) return new d("Property `" + i + "` of component `" + o + "` has invalid PropType notation inside objectOf.");
                                            var s = t[r],
                                                a = g(s);
                                            if ("object" !== a) return new d("Invalid " + n + " `" + i + "` of type `" + a + "` supplied to `" + o + "`, expected an object.");
                                            for (var c in s)
                                                if (s.hasOwnProperty(c)) {
                                                    var u = e(s, c, o, n, i + "." + c, l);
                                                    if (u instanceof Error) return u
                                                }
                                            return null
                                        }))
                                    },
                                    oneOf: function(e) {
                                        return Array.isArray(e) ? h((function(t, r, o, n, i) {
                                            for (var s = t[r], a = 0; a < e.length; a++)
                                                if (u(s, e[a])) return null;
                                            return new d("Invalid " + n + " `" + i + "` of value `" + s + "` supplied to `" + o + "`, expected one of " + JSON.stringify(e) + ".")
                                        })) : ("production" !== t.env.NODE_ENV && s(!1, "Invalid argument supplied to oneOf, expected an instance of array."), n.thatReturnsNull)
                                    },
                                    oneOfType: function(e) {
                                        if (!Array.isArray(e)) return "production" !== t.env.NODE_ENV && s(!1, "Invalid argument supplied to oneOfType, expected an instance of array."), n.thatReturnsNull;
                                        for (var r = 0; r < e.length; r++) {
                                            var o = e[r];
                                            if ("function" != typeof o) return s(!1, "Invalid argument supplied to oneOfType. Expected an array of check functions, but received %s at index %s.", _(o), r), n.thatReturnsNull
                                        }
                                        return h((function(t, r, o, n, i) {
                                            for (var s = 0; s < e.length; s++)
                                                if (null == (0, e[s])(t, r, o, n, i, l)) return null;
                                            return new d("Invalid " + n + " `" + i + "` supplied to `" + o + "`.")
                                        }))
                                    },
                                    shape: function(e) {
                                        return h((function(t, r, o, n, i) {
                                            var s = t[r],
                                                a = g(s);
                                            if ("object" !== a) return new d("Invalid " + n + " `" + i + "` of type `" + a + "` supplied to `" + o + "`, expected `object`.");
                                            for (var c in e) {
                                                var u = e[c];
                                                if (u) {
                                                    var h = u(s, c, o, n, i + "." + c, l);
                                                    if (h) return h
                                                }
                                            }
                                            return null
                                        }))
                                    },
                                    exact: function(e) {
                                        return h((function(t, r, o, n, i) {
                                            var s = t[r],
                                                c = g(s);
                                            if ("object" !== c) return new d("Invalid " + n + " `" + i + "` of type `" + c + "` supplied to `" + o + "`, expected `object`.");
                                            var u = a({}, t[r], e);
                                            for (var h in u) {
                                                var p = e[h];
                                                if (!p) return new d("Invalid " + n + " `" + i + "` key `" + h + "` supplied to `" + o + "`.\nBad object: " + JSON.stringify(t[r], null, "  ") + "\nValid keys: " + JSON.stringify(Object.keys(e), null, "  "));
                                                var f = p(s, h, o, n, i + "." + h, l);
                                                if (f) return f
                                            }
                                            return null
                                        }))
                                    }
                                };
                            return d.prototype = Error.prototype, w.checkPropTypes = c, w.PropTypes = w, w
                        }
                    }).call(t, r(4))
                }, function(e, t) {
                    "use strict";

                    function r(e) {
                        return function() {
                            return e
                        }
                    }
                    var o = function() {};
                    o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r(!0), o.thatReturnsNull = r(null), o.thatReturnsThis = function() {
                        return this
                    }, o.thatReturnsArgument = function(e) {
                        return e
                    }, e.exports = o
                }, function(e, t, r) {
                    (function(t) {
                        "use strict";
                        var r = function(e) {};
                        "production" !== t.env.NODE_ENV && (r = function(e) {
                            if (void 0 === e) throw new Error("invariant requires an error message argument")
                        }), e.exports = function(e, t, o, n, i, s, a, l) {
                            if (r(t), !e) {
                                var c;
                                if (void 0 === t) c = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
                                else {
                                    var u = [o, n, i, s, a, l],
                                        d = 0;
                                    (c = new Error(t.replace(/%s/g, (function() {
                                        return u[d++]
                                    })))).name = "Invariant Violation"
                                }
                                throw c.framesToPop = 1, c
                            }
                        }
                    }).call(t, r(4))
                }, function(e, t, r) {
                    (function(t) {
                        "use strict";
                        var o = r(6);
                        if ("production" !== t.env.NODE_ENV) {
                            var n = function(e) {
                                for (var t = arguments.length, r = Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) r[o - 1] = arguments[o];
                                var n = 0,
                                    i = "Warning: " + e.replace(/%s/g, (function() {
                                        return r[n++]
                                    }));
                                "undefined" != typeof console && console.error(i);
                                try {
                                    throw new Error(i)
                                } catch (e) {}
                            };
                            o = function(e, t) {
                                if (void 0 === t) throw new Error("`warning(condition, format, ...args)` requires a warning message argument");
                                if (0 !== t.indexOf("Failed Composite propType: ") && !e) {
                                    for (var r = arguments.length, o = Array(r > 2 ? r - 2 : 0), i = 2; i < r; i++) o[i - 2] = arguments[i];
                                    n.apply(void 0, [t].concat(o))
                                }
                            }
                        }
                        e.exports = o
                    }).call(t, r(4))
                }, function(e, t) {
                    "use strict";

                    function r(e) {
                        if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined");
                        return Object(e)
                    }
                    var o = Object.getOwnPropertySymbols,
                        n = Object.prototype.hasOwnProperty,
                        i = Object.prototype.propertyIsEnumerable;
                    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 = {}, r = 0; r < 10; r++) t["_" + String.fromCharCode(r)] = r;
                            if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) {
                                    return t[e]
                                })).join("")) return !1;
                            var o = {};
                            return "abcdefghijklmnopqrst".split("").forEach((function(e) {
                                o[e] = e
                            })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, o)).join("")
                        } catch (e) {
                            return !1
                        }
                    }() ? Object.assign : function(e, t) {
                        for (var s, a, l = r(e), c = 1; c < arguments.length; c++) {
                            for (var u in s = Object(arguments[c])) n.call(s, u) && (l[u] = s[u]);
                            if (o) {
                                a = o(s);
                                for (var d = 0; d < a.length; d++) i.call(s, a[d]) && (l[a[d]] = s[a[d]])
                            }
                        }
                        return l
                    }
                }, function(e, t) {
                    "use strict";
                    e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"
                }, function(e, t, r) {
                    (function(t) {
                        "use strict";
                        var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                            return typeof e
                        } : function(e) {
                            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                        };
                        if ("production" !== t.env.NODE_ENV) var n = r(7),
                            i = r(8),
                            s = r(10),
                            a = {};
                        e.exports = function(e, r, l, c, u) {
                            if ("production" !== t.env.NODE_ENV)
                                for (var d in e)
                                    if (e.hasOwnProperty(d)) {
                                        var h;
                                        try {
                                            n("function" == typeof e[d], "%s: %s type `%s` is invalid; it must be a function, usually from the `prop-types` package, but received `%s`.", c || "React class", l, d, o(e[d])), h = e[d](r, d, c, l, null, s)
                                        } catch (e) {
                                            h = e
                                        }
                                        if (i(!h || h instanceof Error, "%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", c || "React class", l, d, void 0 === h ? "undefined" : o(h)), h instanceof Error && !(h.message in a)) {
                                            a[h.message] = !0;
                                            var p = u ? u() : "";
                                            i(!1, "Failed %s type: %s%s", l, h.message, null != p ? p : "")
                                        }
                                    }
                        }
                    }).call(t, r(4))
                }, function(e, t, r) {
                    "use strict";
                    var o = r(6),
                        n = r(7),
                        i = r(10);
                    e.exports = function() {
                        function e(e, t, r, o, s, a) {
                            a !== i && n(!1, "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")
                        }

                        function t() {
                            return e
                        }
                        e.isRequired = e;
                        var r = {
                            array: e,
                            bool: e,
                            func: e,
                            number: e,
                            object: e,
                            string: e,
                            symbol: e,
                            any: e,
                            arrayOf: t,
                            element: e,
                            instanceOf: t,
                            node: e,
                            objectOf: t,
                            oneOf: t,
                            oneOfType: t,
                            shape: t,
                            exact: t
                        };
                        return r.checkPropTypes = o, r.PropTypes = r, r
                    }
                }, function(e, r) {
                    e.exports = t
                }, function(e, t) {
                    e.exports = r
                }, function(e, t, r) {
                    "use strict";
                    Object.defineProperty(t, "__esModule", {
                        value: !0
                    }), t.default = function(e) {
                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
                            r = e.getBoundingClientRect(),
                            n = void 0,
                            i = void 0,
                            s = void 0;
                        return t.margin && (s = (0, o.default)(getComputedStyle(e))), t.margin ? (n = s.left + r.width + s.right, i = s.top + r.height + s.bottom) : (n = r.width, i = r.height), {
                            width: n,
                            height: i,
                            top: r.top,
                            right: r.right,
                            bottom: r.bottom,
                            left: r.left
                        }
                    };
                    var o = function(e) {
                        return e && e.__esModule ? e : {
                            default: e
                        }
                    }(r(16));
                    e.exports = t.default
                }, function(e, t) {
                    "use strict";
                    Object.defineProperty(t, "__esModule", {
                        value: !0
                    }), t.default = function(e) {
                        return {
                            top: r((e = e || {}).marginTop),
                            right: r(e.marginRight),
                            bottom: r(e.marginBottom),
                            left: r(e.marginLeft)
                        }
                    };
                    var r = function(e) {
                        return parseInt(e) || 0
                    };
                    e.exports = t.default
                }])
            }(r(67294), r(73935), r(1529))
        },
        64079: (e, t, r) => {
            "use strict";
            var o = r(18184);
            const n = r(87380).getLogger("CommonUI.CreateTVBlockPlugin");
            e.exports.createTvBlockWithInstance = function(e, t) {
                if (e && t) return e = e.toString(),
                    function(i, s, a) {
                        var l, c, u;
                        return "get" === i ? l = s : (c = s, "object" == typeof i && void 0 === s ? (c = i, i = "init") : "string" != typeof i && (i = "init")), "getInstance" === i ? o(this).eq(0).data(e) : "destroy" === i ? (u = o(this).eq(0).data(e)) ? void("function" == typeof u.destroy ? (r(u, "destroy", c), o(this).eq(0).removeData(e)) : n.logError("[Block Plugin] " + e + " does not support destroy command")) : void console.warn("[Block Plugin] Trying to execute destroy method of " + e + " but it has not been inited") : "get" === i ? (u = o(this).eq(0).data(e)) ? "function" == typeof u[l] ? r(u, l, a) : u[l] : void console.warn("[Block Plugin] Trying to get prop or execute method of " + e + " but it has not been inited") : o(this).each((function() {
                            var s = o(this),
                                a = s.data(e);
                            void 0 === a && (a = void 0 === c ? t(s) : t(s, c), s.data(e, a)), "init" !== i && ("function" == typeof a[i] ? r(a, i, c) : n.logError("[Block Plugin] " + e + " does not support command " + i))
                        }))
                    };

                function r(e, t, r) {
                    return void 0 === r ? e[t]() : e[t](r)
                }
            }
        },
        26687: (e, t, r) => {
            "use strict";
            r.d(t, {
                default: () => c
            });
            var o = r(64079),
                n = (r(88e3), r(18184)),
                i = r(466);
            const s = r(87380).getLogger("Ui.TvControlCheckbox"),
                a = {
                    labelWrapper: '{{#hasLabel}}<label>{{#labelLeft}}<span class="tv-control-checkbox__label {{#labelAddClass}}{{labelAddClass}}{{/labelAddClass}}">{{labelLeft}}</span>{{/labelLeft}}{{> inputWrapper }}{{#labelRight}}<span class="tv-control-checkbox__label {{#labelAddClass}}{{labelAddClass}}{{/labelAddClass}}">{{labelRight}}</span>{{/labelRight}}</label>{{/hasLabel}}{{^hasLabel}}{{> inputWrapper }}{{/hasLabel}}',
                    inputWrapper: '<{{ tag }} class="{{ customClass }}{{#disabled}} i-disabled{{/disabled}}">{{^hasCheckbox}}{{> checkbox }}{{/hasCheckbox}}{{> box }}{{> ripple }}</{{ tag }}>',
                    checkbox: '<input{{#id}} id="{{ id }}"{{/id}} class="{{> checkboxClass }}" type="checkbox"{{#name}} name="{{ name }}"{{/name}}{{#checked}} checked{{/checked}}{{#disabled}} disabled{{/disabled}}>',
                    checkboxClass: "{{ customClass }}__input",
                    box: '<span class="{{ customClass }}__box {{#boxAddClass}}{{boxAddClass}}{{/boxAddClass}}">' + r(14269) + "</span>",
                    ripple: '<span class="{{ customClass }}__ripple js-ripple"></span>'
                };
            class l {
                constructor({
                    customClass: e = "tv-control-checkbox",
                    $checkbox: t,
                    tag: r,
                    id: o,
                    name: i,
                    checked: a,
                    disabled: l,
                    labelLeft: c,
                    labelRight: u,
                    labelAddClass: d,
                    boxAddClass: h
                }) {
                    this.$el = null, void 0 === r && (r = c || u ? "span" : "label");
                    const p = t instanceof n && !!t.length;
                    if (p) {
                        if (!t.is("input[type=checkbox]")) return void s.logError("`$checkbox` need to be input[type=checkbox]");
                        if (t.hasClass("i-inited")) return;
                        this._setInputId(t, o), this._setInputClass(t, e), this._setInputName(t, i), this._setInputChecked(t, a), this._setInputDisabled(t, l), a = !!t.prop("checked"), l = !!t.attr("disabled")
                    }
                    this.$el = this.render({
                        $checkbox: t,
                        hasCheckbox: p,
                        customClass: e,
                        tag: r,
                        id: o,
                        name: i,
                        checked: a,
                        disabled: l,
                        labelLeft: c,
                        labelRight: u,
                        hasLabel: c || u,
                        labelAddClass: d,
                        boxAddClass: h
                    }), this.$checkbox = p ? t : this.$el.find("input[type=checkbox]")
                }
                _setInputId(e, t) {
                    void 0 !== t && e.attr("id", t)
                }
                _setInputClass(e, t) {
                    const r = i.render(a.checkboxClass, {
                        customClass: t
                    });
                    e.addClass(r)
                }
                _setInputName(e, t) {
                    void 0 !== t && e.attr("name", t)
                }
                _setInputChecked(e, t) {
                    void 0 !== t && e.prop("checked", !!t)
                }
                _setInputDisabled(e, t) {
                    void 0 !== t && (t ? e.setAttribute("disabled", "disabled") : e.removeAttr("disabled"))
                }
                render(e) {
                    const t = e.$checkbox,
                        r = n(i.render(a.labelWrapper, e, a));
                    if (e.hasCheckbox) {
                        r.insertBefore(t);
                        r.find("." + e.customClass).andSelf().filter("." + e.customClass).eq(0).prepend(t.detach()), t.addClass("i-inited")
                    }
                    return r
                }
                set checked(e) {
                    this._setInputChecked(this.$checkbox, !!e)
                }
                get checked() {
                    return !!this.$checkbox.prop("checked")
                }
            }
            n.fn.tvControlCheckbox = (0, o.createTvBlockWithInstance)("tv-control-checkbox", (function(e, t = {}) {
                return new l(TradingView.mergeObj(t, {
                    $checkbox: e
                }))
            }));
            const c = l
        },
        79882: (e, t, r) => {
            "use strict";
            var o = r(8107),
                n = r(95355),
                i = (r(1886), r(64079)),
                s = (r(46678), r(18184)),
                a = r(466),
                l = r(13469);
            const c = {
                wrap: '<span class="tv-control-select__wrap tv-dropdown-behavior {{ class }}{{# touch }} tv-control-select__wrap--touch{{/ touch }}{{# disabled }} i-disabled{{/ disabled }}{{# readonly }} tv-control-select__wrap--readonly{{/ readonly}}"><span class="tv-control-select__control{{^ touch }} tv-dropdown-behavior__button{{/ touch }}{{# disabled }} i-disabled{{/ disabled }}"><span class="tv-control-select__control-inner"></span></span>{{^ touch }}<span class="tv-control-select__dropdown tv-dropdown-behavior__body {{ dropdown_class }} i-hidden"><span class="tv-control-select__scroll tv-dropdown-behavior__scroll"><span class="tv-dropdown-behavior__inscroll">{{> route }}</span></span></span>{{/ touch }}<span class="tv-control-select__caret js-dropdown-toggle"></span></span>',
                route: "{{# items }}{{# option }}{{> option }}{{/ option }}{{^ option }}{{# optgroup }}{{> optgroup }}{{/ optgroup }}{{/ option }}{{/ items }}",
                optgroup: '{{# label }}<span class="tv-dropdown-behavior__item tv-control-select__optgroup-label">{{ label }}</span>{{/ label }}{{> route }}{{# separator }}<hr class="tv-control-select__optgroup-separator">{{/ separator }}',
                option: `<span data-id="{{ id }}" class="tv-dropdown-behavior__item tv-control-select__option{{# disabled }} i-disabled{{/ disabled }}">\n\t\t\t<span class="tv-control-select__option-wrap">\n\t\t\t{{# multiple }}\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" {{# selected }} checked{{/ selected }}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${r(14269)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label">{{ label }}</span>\n\t\t\t{{/ multiple }}\n\t\t\t{{^ multiple }}\n\t\t\t\t{{ label }}\n\t\t\t{{/ multiple }}\n\t\t\t</span>\n\t\t</span>`
            };
            class u {
                constructor(e = {}) {
                    this._options = Object.assign({
                        noAnimation: !0
                    }, e), this.touch = n.mobiletouch, this.$select = this._options.$select, this._selectElement = this.$select[0], this.multiple = Boolean(this.$select.attr("multiple")), this._minDisplayCount = this._options.minDisplayCount || 1, this._emptyString = this._options.emptyString || (0, o.t)("Nothing selected", {
                        context: "combobox_input"
                    }), this._defaultPlaceHoder = this._options.defaultPlaceHoder || !1, this.disabled = Boolean(this.$select.is(":disabled")), this.readonly = this._options.readonly, this.options = [], this.filterQuery = [], this.items = this._parseDomItems(this.$select), this._render(), e.initialValue && this.val(e.initialValue), this.$el.insertBefore(this.$select), this.$select.detach().addClass("i-inited").appendTo(this.$el)
                }
                val(e) {
                    this.multiple ? this._setMultipleValues(e) : this._setSingleValue(this._findOption(e))
                }
                enable() {
                    this.disabled = !1, this.$el.add(this.$dropdown).removeClass("i-disabled"), this.touch || (this.$el.tvDropdown("enable"), this.$control.attr("tabindex", this.$select.attr("tabindex") || 0))
                }
                disable() {
                    this.disabled = !0, this.$el.add(this.$dropdown).addClass("i-disabled"), this.touch || (this.$el.tvDropdown("disable"), this.$control.removeAttr("tabindex"))
                }
                setReadonly(e) {
                    this.readonly = e, this.$el.toggleClass("tv-control-select__wrap--readonly", e), this.$controlInner.toggleClass("tv-control-select__control-inner--readonly", e), this.$el.tvDropdown("setReadonly", e)
                }
                toggle() {
                    this.disabled || this.readonly || (this.touch ? this.$select.click() : this.$el.tvDropdown("toggle"))
                }
                open() {
                    this.disabled || this.readonly || (this.touch ? this.$select.click() : this.$el.tvDropdown("open"))
                }
                close() {
                    this.disabled || this.readonly || (this.touch ? this.$select.click() : (this._focusOption(this._selectElement.selectedIndex), this.$el.tvDropdown("close")))
                }
                destroy() {
                    this.$select.off("change"), this.$dropdown && this.$dropdown.off("click"), this.$select.removeClass("i-inited").insertBefore(this.$el), this.$el.tvDropdown("destroy"), this.$el.remove()
                }
                updateItems() {
                    this.options = [], this.items = this._parseDomItems(this.$select);
                    const e = this._renderDropdown();
                    if (!this.touch) {
                        this.$dropdown.find(".tv-control-select__option").remove();
                        const t = this.$dropdown.find(".tv-dropdown-behavior__inscroll");
                        this.$options = e.find(".tv-control-select__option");
                        for (let e = 0; e < this.$options.length; e++) {
                            const r = s(this.$options[e]),
                                o = r.data("id");
                            this.options[o] && (this.options[o].$el = r, t.append(r))
                        }
                    }
                    this.multiple ? (this._updateSelectBoxTitle(), this._updateCheckBoxes()) : this._updateSingleView(this._selectElement.selectedIndex)
                }
                _focusOption(e) {
                    const t = this.options[e].$el;
                    if (this._focusedOption = e, !this.touch) {
                        if (this._clearFocus(), t.addClass("i-active"), !this.dropdownScroll || !this.opened) return;
                        const e = this.dropdownScroll.currentPosition(),
                            r = t.outerHeight(),
                            o = t.position().top,
                            n = this.dropdownScroll.getContainerHeightWithoutHeader(),
                            i = -e + n < o + r;
                        o < -e ? this.dropdownScroll.scrollTo(o) : i && this.dropdownScroll.scrollTo(o + r)
                    }
                }
                _setSingleValue(e) {
                    const t = this.options[e].value;
                    (this.$select.val() && this.$select.val().toString()) !== t.toString() && this.$select.val(t).trigger("change")
                }
                _updateSingleView(e) {
                    const t = this.options[e];
                    t && (this._focusOption(e), this._selectElement.selectedIndex = e, this.$controlInner.text(t.label), this.$controlInner.toggleClass("tv-control-select__control-inner--option-disabled", t.disabled))
                }
                _toggleOption(e) {
                    const t = this.options[e].value,
                        r = this.$select.val() || [],
                        o = r.indexOf(t);
                    if (-1 !== o) r.splice(o, 1);
                    else if (r.length) {
                        const e = this.options[this._findOption(t)].id,
                            o = r.find(t => this.options[this._findOption(t)].id > e);
                        r.splice(o ? r.indexOf(o) : 0, 0, t)
                    } else r.push(t);
                    this._setMultipleValues(r)
                }
                _updateCheckBoxes() {
                    const e = this.$select.val() || [];
                    for (let t = 0; t < this.items.length; t++) {
                        const r = this.items[t];
                        r.$el.find(".tv-control-checkbox__input").prop("checked", -1 !== e.indexOf(r.value))
                    }
                }
                _updateSelectBoxTitle() {
                    const e = this.$select.val() || [];
                    if (e.length && !this._defaultPlaceHoder)
                        if (e.length === this.items.length) this.$controlInner.text((0, o.t)("All items", {
                            context: "combobox_input"
                        }));
                        else if (e.length > this._minDisplayCount) this.$controlInner.text((0, o.t)("{number} item", {
                        plural: "{number} items",
                        count: e.length,
                        context: "combobox_input"
                    }).format(e.length));
                    else {
                        const t = e.map(e => this.options[this._findOption(e)].label);
                        this.$controlInner.text(t.join(", "))
                    } else this.$controlInner.text(this._emptyString)
                }
                _setMultipleValues(e) {
                    this.$select.find("option").prop("selected", !1);
                    for (let t = 0; t < e.length; t++) {
                        const r = e[t];
                        this.$select.find(`option[value="${r}"]`).prop("selected", !0)
                    }
                    this.$select.trigger("change")
                }
                _clearFocus() {
                    this.$options.removeClass("i-active")
                }
                _findOption(e) {
                    const t = Object.keys(this.options);
                    for (let r = 0; r < t.length; r++)
                        if (this.options[t[r]].value.toString() === e.toString()) return this.options[t[r]].id
                }
                _parseDomItems(e) {
                    const t = e.children(),
                        r = [];
                    for (let e = 0; e < t.length; e++) {
                        const o = s(t[e]);
                        let n;
                        "optgroup" === o.prop("tagName").toLowerCase() ? n = {
                            optgroup: !0,
                            separator: Boolean(this._options.showOptgroupSeparators),
                            label: o.attr("label"),
                            items: this._parseDomItems(o)
                        } : "option" === o.prop("tagName").toLowerCase() && (n = {
                            id: o[0].index,
                            option: !0,
                            label: o.text().replace(/\//g, "​$&​"),
                            value: o.attr("value"),
                            disabled: o.is(":disabled")
                        }, this.options[n.id] = n), r.push(n)
                    }
                    return r
                }
                _render() {
                    if (this.$el = this._renderDropdown(), this.$control = this.$el.find(".tv-control-select__control"), this.$controlInner = this.$el.find(".tv-control-select__control-inner"), !this.touch) {
                        this.$dropdown = this.$el.find(".tv-control-select__dropdown"), this.$options = this.$el.find(".tv-control-select__option");
                        for (let e = 0; e < this.$options.length; e++) {
                            const t = s(this.$options[e]),
                                r = t.data("id");
                            this.options[r] && (this.options[r].$el = t)
                        }
                    }
                    this.multiple ? (this._updateSelectBoxTitle(), this._updateCheckBoxes()) : (-1 === this._selectElement.selectedIndex && (this._selectElement.selectedIndex = 0), this._updateSingleView(this._selectElement.selectedIndex)), this.$select.on("change", e => {
                        this.multiple ? (this._updateSelectBoxTitle(), this._updateCheckBoxes()) : this._updateSingleView(this._findOption(this.$select.val()))
                    }), this.touch || (this.$el.tvDropdown({
                        scroll: !0,
                        adaptBody: !0,
                        boundingElement: this._options.boundingElement,
                        maxHeight: this._options.maxHeight,
                        dropdownWidth: this._options.dropdownWidth,
                        noAnimation: this._options.noAnimation,
                        closeWithEsc: this._options.closeWithEsc
                    }), this.dropdownScroll = this.$el.tvDropdown("get", "scroll"), this.$dropdown.on("click", ".tv-control-select__option", e => {
                        const t = parseInt(s(e.currentTarget).data("id"));
                        this.options[t] && !this.options[t].disabled && (this.multiple ? this._toggleOption(t) : (this._setSingleValue(t), this.close()))
                    }), this.$el.on("beforeOpenMenu", () => {
                        this.opened = !0
                    }), this.$el.on("afterCloseMenu", () => {
                        this.opened = !1, this.filterQuery = [], this.multiple || this._focusedOption.toString() === this._selectElement.selectedIndex.toString() || this._focusOption(this._selectElement.selectedIndex), this.multiple && this._clearFocus()
                    }), this.$el.on("click", () => {
                        this.$control.focus()
                    }), this.$el.on("keydown", e => {
                        this._filter(e)
                    }), this.disabled ? this.disable() : this.enable())
                }
                _renderDropdown() {
                    return s(a.render(c.wrap, {
                        items: this.items,
                        class: this.$select.attr("class"),
                        touch: this.touch,
                        multiple: this.multiple,
                        disabled: this.disabled,
                        readonly: this.readonly,
                        dropdown_class: this._options.addDropdownClass
                    }, c)).removeClass("tv-control-select")
                }
                _filter(e) {
                    if (9 === e.which) return void this.close();
                    if (13 === e.which && !this.opened) return;
                    if ((40 === e.which || 32 === e.which) && !this.opened) return this.open(), void e.preventDefault();
                    e.preventDefault(), this.opened || this.open();
                    const t = String.fromCharCode(e.which).toLowerCase();
                    if (t && -1 === [9, 13, 27, 38, 40].indexOf(e.which)) {
                        this.filterQuery.push(t);
                        const e = this.filterQuery.join("");
                        let r;
                        const o = Object.keys(this.options);
                        for (let t = 0; t < o.length; t++)
                            if (0 === this.options[o[t]].label.toLowerCase().indexOf(e) && !this.options[o[t]].disabled) {
                                r = this.options[o[t]].id;
                                break
                            }
                        void 0 !== r && this._focusOption(r), this.clearFilter && clearTimeout(this.clearFilter), this.clearFilter = setTimeout(() => {
                            this.filterQuery = []
                        }, 500)
                    }
                    32 !== e.which && 13 !== e.which || !this.opened || (this.multiple ? this._toggleOption(this._focusedOption) : (this._setSingleValue(this._focusedOption), this.close(), this.$el.one("keyup", e => e.stopPropagation())));
                    const r = e => {
                        let t;
                        if (this.options[this._focusedOption]) {
                            const r = this.options[this._focusedOption].$el[e](this.$dropdown, ".tv-control-select__option:not(.i-disabled)");
                            t = r.length ? r.data("id") : this._focusedOption
                        } else t = this.$options.first(".tv-control-select__option:not(.i-disabled)").data("id");
                        return t
                    };
                    40 === e.which && (this.filterQuery = [], this._focusOption(r("nextUntil"))), 38 === e.which && (this.filterQuery = [], this._focusOption(r("prevUntil"))), 27 === e.which && this.close()
                }
            }
            s.fn.tvControlSelect = (0, i.createTvBlockWithInstance)("tv-control-select", (function(e, t = {}) {
                return new u(l.extend(t, {
                    $select: e
                }))
            }))
        },
        46678: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                DropdownView: () => a
            });
            r(34131), r(83472);
            var o = r(64079),
                n = r(44740),
                i = r(92084),
                s = r(18184);
            class a {
                constructor(e, t = {}) {
                    this.$el = e, this.$wrap = t.$wrap || e.find(".tv-dropdown-behavior__button"), this.$body = t.$body || e.find(".tv-dropdown-behavior__body"), this.notCloseWithCtrl = !!t.notCloseWithCtrl && t.notCloseWithCtrl, this.closeWithEsc = void 0 === t.closeWithEsc || t.closeWithEsc, this.closeWithEsc && this.$el.attr("tabIndex", 0), (e.data("scroll") || t.scroll) && (this.$scroll = this.$body.find(".tv-dropdown-behavior__scroll"), this.$inScroll = this.$scroll.find(".tv-dropdown-behavior__inscroll"), this.scroll = new n.SidebarCustomScroll(this.$scroll[0], this.$inScroll[0], {
                        showTopShadow: !1,
                        showBottomShadow: !1
                    }), this.$scrollBar = s(this.scroll.getScrollBar()), this.$scrollBar && this.$scrollBar.on("mousedown.tv-dropdown-view-scroll", () => {
                        this.offClickOutside(), s(document).on("mouseup.tv-dropdown-view-scroll", () => {
                            this.onClickOutside(), s(document).off("mouseup.tv-dropdown-view-scroll")
                        })
                    })), (e.data("adaptBody") || t.adaptBody) && (this._adaptBody = !0), (e.data("adaptOnlyInScrollHeight") || t.adaptOnlyInScrollHeight) && (this._adaptOnlyInScrollHeight = !0), this._fitScreen = e.data("fitScreen") || t.fitScreen, this._maxHeight = e.data("maxHeight") || t.maxHeight, this._dropdownWidth = e.data("dropdownWidth") || t.dropdownWidth, this._boundingElement = t.boundingElement, this.$wrap.add(e.find(".js-dropdown-toggle")).on("click", e => {
                        s(e.currentTarget).hasClass("js-prevent-dropdown") || this.toggle()
                    }), this._checkIgnoreClickOutside = []
                }
                toggle() {
                    this.opened ? this.close(!0) : this.open()
                }
                open() {
                    this.opened || this.disabled || this.readonly || (this.$el.trigger("beforeOpenMenu"), this.$body.removeClass("i-hidden").addClass("i-opened"), this.$wrap.addClass("i-dropped"), this.$el.addClass("i-opened"), "horz" === this._fitScreen && this.fitHorizontally(), this._adaptBody && this.adaptBody(), this.onClickOutside(), this.$el.trigger("updateScroll"), this.$el.trigger("afterOpenMenu"), this.opened = !0, this.closeWithEsc && this.$el.on("keypress keyup", e => {
                        e.keyCode === i.ESC && this.close(!0)
                    }))
                }
                onClickOutside() {
                    setTimeout(() => {
                        this.$body.on("clickoutside", e => {
                            this._checkIgnoreClickOutside.length && this._checkIgnoreClickOutside.some(t => t(e)) || this.close(!0)
                        })
                    }, 0)
                }
                offClickOutside() {
                    this.$body.off("clickoutside")
                }
                setCheckIgnoreClickOutside(e) {
                    this._checkIgnoreClickOutside.push(e)
                }
                dropCheckIgnoreClickOutside(e) {
                    var t = this._checkIgnoreClickOutside.indexOf(e); - 1 !== t && this._checkIgnoreClickOutside.splice(t, 1)
                }
                close(e = !1) {
                    !this.opened || this.disabled || this.readonly || !e && this.notCloseWithCtrl && (window.event.ctrlKey || window.event.metaKey) || (this.offClickOutside(), this.$wrap.removeClass("i-dropped"), this.$el.trigger("beforeCloseMenu"), this.$body.removeClass("i-opened").addClass("i-hidden"),
                        this.$el.removeClass("i-opened"), this.closeWithEsc && this.$el.off("keypress keyup"), this.opened = !1, this.$el.trigger("afterCloseMenu"))
                }
                isOpened() {
                    return this.opened
                }
                updateScroll() {
                    this.scroll && (this.scroll.updateScrollBar(), this.scroll.scrollToStart())
                }
                enable() {
                    this.$wrap.removeClass("i-disabled"), this.disabled = !1
                }
                disable() {
                    this.$wrap.addClass("i-disabled"), this.disabled = !0
                }
                setReadonly(e) {
                    this.readonly = e
                }
                adaptBody() {
                    const e = this.$body,
                        t = this.$wrap.get(0).getBoundingClientRect(),
                        r = this._boundingElement ? this._boundingElement.getBoundingClientRect() : {
                            top: 0,
                            bottom: window.innerHeight,
                            height: window.innerHeight
                        },
                        o = parseFloat(e.css("padding-top")),
                        n = parseFloat(e.css("padding-bottom")),
                        i = this.$inScroll.outerHeight(!0) + o + n;
                    if (this.scroll && this.scroll.scrollToStart(), this._adaptOnlyInScrollHeight) {
                        const o = e.find(".js-dropdown-dummy"),
                            i = o ? parseFloat(o.css("padding-bottom")) + parseFloat(o.css("margin-bottom")) : 0,
                            s = t.top + t.height + i;
                        return void this.$el.find(".tv-dropdown-behavior__scroll").css("maxHeight", r.bottom - n - s - 25)
                    }
                    const s = this._maxHeight || i,
                        a = t.top + s + 25 <= r.bottom,
                        l = r.top + 15 + s <= t.bottom;
                    let c, u = this._maxHeight || "auto";
                    if (a) c = -o;
                    else if (l) c = -s + t.height + n;
                    else {
                        c = -t.top + r.top + 15;
                        const e = r.height - 15 - 25;
                        s > e && (u = e)
                    }
                    e.css("top", c), e.height(u), this._dropdownWidth && e.width(this._dropdownWidth)
                }
                fitHorizontally() {
                    this.$body.css("marginLeft", 0);
                    const e = document.body.getBoundingClientRect(),
                        t = parseFloat(s(document.body).css("paddingRight")),
                        r = this.$body.offset();
                    r.right = r.left + this.$body.outerWidth();
                    const o = Math.max(Math.min(0, e.right - t - r.right), e.left - r.left);
                    o && this.$body.css("marginLeft", o)
                }
                destroy() {
                    this.scroll && this.scroll.destroy(), this.offClickOutside(), this.$el.find(".js-dropdown-toggle").off("click"), this.$wrap.off("click")
                }
            }
            s.fn.tvDropdown = (0, o.createTvBlockWithInstance)("tv-dropdown", (function(e, t = {}) {
                return new a(e, t)
            }))
        },
        44197: (e, t, r) => {
            e = r.nmd(e), TradingView.cleanButAmpersand = function(e, t) {
                var r = t ? ["&amp;"] : ["&"];
                return TradingView.clean(e, t, r)
            }, TradingView.strip_tags = function(e) {
                return e && e.replace ? e.replace(/(<([^>]+)>)/gi, "") : e
            }, TradingView.encodeSpread = function(e) {
                return encodeURIComponent(e)
            }, TradingView.clean = function(e, t, r) {
                var o = [
                        ["&", "&amp;"],
                        ["<", "&lt;"],
                        [">", "&gt;"],
                        ['"', "&quot;"],
                        ["'", "&#039;"],
                        ["'", "&#39;"]
                    ],
                    n = e;
                if (!e || !e.replace) return n;
                for (var i = 0; i < o.length; i++) {
                    var s = o[i][0],
                        a = o[i][1];
                    r && r.indexOf && -1 !== r.indexOf(t ? a : s) || (n = t ? n.replace(new RegExp(a, "g"), s) : n.replace(new RegExp(s, "g"), a))
                }
                return n
            }, e && e.exports && (e.exports = {
                clean: TradingView.clean,
                cleanButAmpersand: TradingView.cleanButAmpersand,
                stripTags: TradingView.strip_tags
            })
        },
        50946: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                generateColor: () => n,
                alphaToTransparency: () => i,
                transparencyToAlpha: () => s,
                applyTransparency: () => a,
                resetTransparency: () => l,
                getLuminance: () => c,
                isHexColor: () => u,
                colorFromBackground: () => d,
                gradientColorAtPercent: () => h,
                isColorDark: () => p,
                rgbaFromInteger: () => f,
                rgbaToInteger: () => g,
                colorToInteger: () => m
            });
            var o = r(14563);

            function n(e, t, r) {
                if (t = t || 0, !u(e)) return r ? (0, o.rgbaToString)((0, o.rgba)((0, o.parseRgb)(e), (0, o.normalizeAlphaComponent)(s(t)))) : e;
                const [n, i, a] = (0, o.parseRgb)(e), l = (0, o.normalizeAlphaComponent)(s(t));
                return (0, o.rgbaToString)([n, i, a, l])
            }

            function i(e) {
                return 100 * (1 - e)
            }

            function s(e) {
                if (e < 0 || e > 100) throw new Error("invalid transparency");
                return 1 - e / 100
            }

            function a(e, t) {
                if ("transparent" === e) return e;
                const r = (0, o.parseRgba)(e),
                    n = r[3];
                return (0, o.rgbaToString)((0, o.rgba)(r[0], r[1], r[2], s(t) * n))
            }

            function l(e) {
                return "transparent" === e || u(e) ? e : (0, o.rgbaToString)((0, o.rgba)((0, o.parseRgb)(e), (0, o.normalizeAlphaComponent)(1)))
            }

            function c(e) {
                const t = (0, o.parseRgb)(e).map(e => (e /= 255) <= .03928 ? e / 12.92 : Math.pow((e + .055) / 1.055, 2.4));
                return Number((.2126 * t[0] + .7152 * t[1] + .0722 * t[2]).toFixed(3))
            }

            function u(e) {
                return 0 === e.indexOf("#")
            }

            function d(e) {
                return "black" === (0, o.rgbToBlackWhiteString)((0, o.parseRgb)(e), 150) ? "#ffffff" : "#000000"
            }

            function h(e, t, r) {
                const [n, i, s, a] = (0, o.parseRgba)(e), [l, c, u, d] = (0, o.parseRgba)(t), h = (0, o.rgba)(Math.round(n + r * (l - n)), Math.round(i + r * (c - i)), Math.round(s + r * (u - s)), a + r * (d - a));
                return (0, o.rgbaToString)(h)
            }

            function p(e) {
                return c(l(e)) < .5
            }

            function f(e) {
                const t = (e = Math.round(e)) % 256;
                e -= t;
                const r = (e /= 256) % 256;
                e -= r;
                const o = (e /= 256) % 256;
                e -= o;
                return `rgba(${t},${r},${o},${(e/=256)/255})`
            }

            function g(e) {
                const t = Math.round(255 * e[3]);
                return e[0] + 256 * e[1] + 65536 * e[2] + 16777216 * t
            }

            function m(e) {
                const t = (0, o.tryParseRgba)(e);
                return null === t ? 0 : g(t)
            }
        },
        68450: (e, t, r) => {
            "use strict";

            function o(e, t, r) {
                return e * (1 - r) + t * r
            }
            r.d(t, {
                lerp: () => o,
                doAnimate: () => s
            });
            const n = {
                from: 0,
                duration: 250,
                easing: r(71928).easingFunc.easeOutCubic
            };
            class i {
                constructor(e) {
                    this._doing = !0, this._completed = !1, this._options = { ...n,
                        ...e
                    };
                    const t = performance.now();
                    window.requestAnimationFrame(e => {
                        this._animation(t, this._options.from, e)
                    })
                }
                stop() {
                    this._doing = !1
                }
                completed() {
                    return this._completed
                }
                _animation(e, t, r) {
                    if (!this._doing) return void this._finishAnimation();
                    const n = (r = !r || r < 1e12 ? performance.now() : r) - e,
                        i = n >= this._options.duration || t === this._options.to,
                        s = o(this._options.from, this._options.to, this._options.easing(n / this._options.duration)),
                        a = i ? this._options.to : s,
                        l = a - t;
                    this._options.onStep(l, a), i ? this._finishAnimation() : window.requestAnimationFrame(t => {
                        this._animation(e, a, t)
                    })
                }
                _finishAnimation() {
                    this._options.onComplete && this._options.onComplete(), this._completed = !0
                }
            }

            function s(e) {
                return new i(e)
            }
        },
        85864: (e, t, r) => {
            "use strict";
            r.d(t, {
                fetch: () => n
            });
            const o = (0, r(87380).getLogger)("Fetch");

            function n(e, t, r = {}) {
                {
                    t = t || {},
                        function(e) {
                            return new URL(e, document.baseURI).origin === location.origin
                        }(e) && (t.headers ? t.headers instanceof Headers || (t.headers = new Headers(t.headers)) : t.headers = new Headers, window.locale && t.headers.set("X-Language", window.locale), t.headers.set("X-Requested-With", "XMLHttpRequest")), void 0 === t.credentials && (t.credentials = "same-origin");
                    const n = window.fetch(e, t);
                    return n.then(n => {
                        if (!n.ok) {
                            let i = "";
                            t.method && (i += t.method.toUpperCase() + " "), i += e, i += ". Status " + n.status, n.statusText && (i += ". " + n.statusText), n.headers.via && (i += ". Via: " + n.headers.via), r.logBodyOnError && "string" == typeof t.body && (i += ". Body: " + t.body.slice(0, 1024)), o.logError(i)
                        }
                        return n
                    }, r => {
                        if (r && "AbortError" === r.name) return;
                        let n = "";
                        t.method && (n += t.method.toUpperCase() + " "), n += e, navigator.onLine ? n += ". " + r : n += ". User is offline.", o.logError(n)
                    }), n
                }
            }
        },
        87380: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                LOGLEVEL: () => i,
                getLogLevel: () => f,
                isHighRateEnabled: () => g,
                setLogLevel: () => m,
                getRawLogHistory: () => _,
                serializeLogHistoryEntry: () => v,
                getLogHistory: () => b,
                getLogger: () => w,
                loggingOn: () => C,
                loggingOff: () => k
            });
            const o = "undefined" != typeof window ? window : {};
            let n = !1;
            try {
                localStorage.getItem(""), n = !0
            } catch (e) {}
            var i;
            ! function(e) {
                e[e.ERROR = 1] = "ERROR", e[e.WARNING = 2] = "WARNING", e[e.INFO = 3] = "INFO", e[e.NORMAL = 4] = "NORMAL", e[e.DEBUG = 5] = "DEBUG"
            }(i || (i = {}));
            let s = 0;
            const a = [];
            let l = null,
                c = null,
                u = null,
                d = NaN,
                h = i.WARNING,
                p = !1;

            function f() {
                return h
            }

            function g() {
                return p
            }

            function m(e) {
                e = Math.max(i.ERROR, Math.min(i.DEBUG, e)), h = e, E()
            }

            function _(e, t) {
                let r = a.reduce((e, t) => e.concat(t), []);
                return r.sort((e, t) => e.id - t.id), void 0 !== t && (r = r.filter(e => e.subSystemId === t)), "number" == typeof e && (r = r.slice(-e)), r
            }

            function v(e) {
                return new Date(e.timestamp).toISOString() + ":" + e.subSystemId + ":" + e.message.replace(/"/g, "'")
            }

            function b(e, t) {
                return function(e, t) {
                    let r, o = 0,
                        n = 0;
                    for (r = e.length - 1; r >= 1 && (o += 8 * (1 + encodeURIComponent(e[r]).length), !(r - 1 > 0 && (n = 8 * (1 + encodeURIComponent(e[r - 1]).length), o + n > t))); r--);
                    return e.slice(r)
                }(_(e, t).map(v), 75497472)
            }

            function y(e, t, r, o) {
                if (t === c && o.id === u) return;
                const n = new Date;
                if (e <= i.NORMAL && function(e, t, r, o, n) {
                        "function" == typeof structuredClone && (t = structuredClone(t));
                        const i = {
                            id: s,
                            message: t,
                            subSystemId: o,
                            timestamp: Number(e)
                        };
                        s += 1, r.push(i), void 0 !== n && r.length > n && r.splice(0, 1)
                    }(n, t, r, o.id, o.maxCount), e <= h && (!o.highRate || g()) && (!l || o.id.match(l))) {
                    const r = n.toISOString() + ":" + o.id + ":" + t;
                    switch (e) {
                        case i.DEBUG:
                            console.debug(r);
                            break;
                        case i.INFO:
                        case i.NORMAL:
                            o.color ? console.log("%c" + r, "color: " + o.color) : console.log(r);
                            break;
                        case i.WARNING:
                            console.warn(r);
                            break;
                        case i.ERROR:
                            console.error(r)
                    }
                    c = t, u = o.id, d && clearTimeout(d), d = setTimeout(() => {
                        c = null, u = null, d = NaN
                    }, 1e3)
                }
            }

            function w(e, t = {}) {
                const r = [];
                a.push(r);
                const o = Object.assign(t, {
                    id: e
                });

                function n(e) {
                    return t => y(e, String(t), r, o)
                }
                return {
                    logDebug: n(i.DEBUG),
                    logError: n(i.ERROR),
                    logInfo: n(i.INFO),
                    logNormal: n(i.NORMAL),
                    logWarn: n(i.WARNING)
                }
            }
            const S = w("logger"),
                C = o.lon = (e, t) => {
                    m(i.DEBUG), S.logNormal("Debug logging enabled"), p = Boolean(e), l = t || null, E()
                },
                k = o.loff = () => {
                    m(i.INFO), S.logInfo("Debug logging disabled")
                };

            function E() {
                try {
                    n && (localStorage.setItem("tv.logger.logHighRate", String(p)), localStorage.setItem("tv.logger.loglevel", String(h)))
                } catch (e) {
                    S.logWarn(`Cannot save logger state (level: ${h}, high-rate: ${p}) to localStorage: ${e.message}`)
                }
            }! function() {
                p = !!n && "true" === localStorage.getItem("tv.logger.logHighRate");
                let e = parseInt(n && localStorage.getItem("tv.logger.loglevel") || "");
                Number.isNaN(e) && (e = i.WARNING), m(e), S.logNormal(`Init with settings - level: ${h}, high-rate: ${p}`)
            }(), o.performance && o.performance.now ? S.logNormal("Sync logger and perf times, now is " + o.performance.now()) : S.logWarn("Perf time is not available")
        },
        29412: (e, t, r) => {
            "use strict";

            function o(e) {
                return e.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&")
            }
            r.d(t, {
                regExpEscape: () => o
            })
        },
        82755: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                isRtl: () => n,
                stripLTRMarks: () => s,
                startWithLTR: () => a,
                forceLTRStr: () => l,
                forceLTRStrSsr: () => c,
                forceRTLStr: () => u,
                getLTRScrollLeft: () => d,
                getLTRScrollLeftOffset: () => h,
                detectAutoDirection: () => g
            });
            var o = r(46417);
            const n = () => "rtl" === window.document.dir,
                i = new RegExp("‎|‪|‫|‬", "g");

            function s(e) {
                return "" !== e && n() && null != e ? e.replace(i, "") : e
            }

            function a(e) {
                return "" !== e && n() && null != e ? "‎" + e : e
            }

            function l(e) {
                return "" !== e && n() && null != e ? "‪" + e + "‬" : e
            }

            function c(e) {
                return "‪" + e + "‬"
            }

            function u(e) {
                return "" !== e && n() && null != e ? "‫" + e + "‬" : e
            }

            function d(e) {
                return (0, o.getNormalizedScrollLeft)(e, "rtl")
            }

            function h(e, t) {
                const r = (0, o.detectScrollType)();
                if ("indeterminate" === r) return 0;
                switch (r) {
                    case "negative":
                        t = e.clientWidth - e.scrollWidth + t;
                        break;
                    case "reverse":
                        t = e.scrollWidth - e.clientWidth - t
                }
                return t
            }
            const p = /[^\u0000-\u0040\u005B-\u0060\u007B-\u00BF\u00D7\u00F7\u02B9-\u02FF\u2000-\u200E\u2010-\u2029\u202C\u202F-\u2BFF]/,
                f = /[\u0590-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]/;

            function g(e) {
                const t = p.exec(e);
                return t ? f.test(t[0]) ? "rtl" : "ltr" : ""
            }
        },
        71928: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                CubicBezier: () => o.CubicBezier,
                color: () => o.color,
                dur: () => o.dur,
                easingFunc: () => o.easingFunc
            });
            var o = r(82652)
        },
        65754: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    BillingCycle: () => o
                }),
                function(e) {
                    e.Monthly = "m", e.ThreeMonths = "3m", e.OneYear = "y", e.TwoYears = "2y"
                }(o || (o = {}))
        },
        8276: (e, t, r) => {
            "use strict";
            var o, n, i;
            r.d(t, {
                    ProPlans: () => o,
                    BrokerPlansIds: () => i
                }),
                function(e) {
                    e.Free = "free", e.Pro = "pro", e.ProTrial = "pro_trial", e.ProRealtime = "pro_realtime", e.ProRealtimeTrial = "pro_realtime_trial", e.ProPremium = "pro_premium", e.ProPremiumTrial = "pro_premium_trial", e.ProMiniAlerts = "pro_mini_alerts", e.ProMiniAds = "pro_mini_ads", e.ProMiniLayouts = "pro_mini_layouts", e.ProEdu = "pro_edu"
                }(o || (o = {})),
                function(e) {
                    e.Platinum = "platinum", e.Gold = "gold", e.Silver = "silver", e.Free = "free"
                }(n || (n = {})),
                function(e) {
                    e[e.Platinum = 3] = "Platinum", e[e.Gold = 2] = "Gold", e[e.Silver = 1] = "Silver", e[e.Free = 0] = "Free"
                }(i || (i = {}))
        },
        30511: (e, t, r) => {
            "use strict";

            function o(e, t) {
                const r = t || window.locale || "en";
                let o = e[r] ? e[r] : e.en;
                return o = "tradingview.com" === o ? "www.tradingview.com" : o, o ? document.location.protocol + "//" + o : ""
            }
            r.d(t, {
                determineBaseUrl: () => o
            })
        },
        23946: (e, t, r) => {
            "use strict";
            r.d(t, {
                createGoProDialog: () => i
            });
            const o = new Set,
                n = [];
            async function i(e) {
                var t;
                if (n.forEach(t => {
                        t(e.feature)
                    }), o.has(e.feature)) return;
                const i = await Promise.all([r.e(23876), r.e(26822), r.e(69756), r.e(88278), r.e(71990), r.e(82130), r.e(18436), r.e(3178), r.e(93576), r.e(73935), r.e(74155), r.e(14563), r.e(38578), r.e(89182), r.e(78451), r.e(5246)]).then(r.bind(r, 55175));
                await (null === (t = window.pro) || void 0 === t ? void 0 : t.ensureValidShopConf()), i.renderGoproDialog(e)
            }
            window.TradingView.createGoProDialog = i
        },
        88674: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                createNoticeDialog: () => i,
                showNoticeDialog: () => s
            });
            var o = r(8107);
            const n = {
                width: 400,
                destroyOnClose: !0,
                title: (0, o.t)("Notification"),
                content: (0, o.t)("You are notified"),
                contentWrapTemplate: '<div class="tv-dialog__section tv-dialog__section--no-border"><div class="tv-text"><p></p></div></div>',
                actionsWrapTemplate: '<div class="tv-dialog__section tv-dialog__section--actions tv-dialog__section--no-border">',
                actions: [{
                    name: "ok",
                    type: "primary",
                    text: (0, o.t)("Ok"),
                    method: "close",
                    key: [13, 32]
                }]
            };
            async function i(e) {
                return (await Promise.all([r.e(5205), r.e(59456), r.e(5058), r.e(25535), r.e(70964), r.e(38817), r.e(99752), r.e(466), r.e(64011), r.e(44740), r.e(94795), r.e(47993), r.e(34834)]).then(r.bind(r, 64161))).createDialog({ ...n,
                    ...e
                })
            }

            function s(e) {
                i(e).then(e => e.open())
            }
        },
        71141: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                showSignModal: () => n,
                isSignModalOpen: () => i
            });
            let o = () => !1;
            async function n(e) {
                if (window.TVD && window.TVD.signIn) return window.TVD.signIn(e); {
                    const t = await Promise.all([r.e(5205), r.e(59456), r.e(5058), r.e(25535), r.e(70964), r.e(54551), r.e(9029), r.e(3557), r.e(16861), r.e(21705), r.e(99752), r.e(14563), r.e(466), r.e(94795), r.e(47993), r.e(30830), r.e(23600), r.e(12356), r.e(36123)]).then(r.bind(r, 32665));
                    return o = t.isSignModalOpen, t.showSignModal(e)
                }
            }

            function i() {
                return o()
            }
        },
        38140: (e, t, r) => {
            "use strict";
            r.d(t, {
                getSymbolPagePath: () => s,
                makeSymbolChartUrl: () => p,
                makeSymbolPageUrl: () => h,
                makeSymbolTechnicalsPageUrl: () => f,
                makeTemplateSymbolUrl: () => u
            });
            var o = r(44990),
                n = r(30511),
                i = r(50284);

            function s(e, t) {
                return l(c(e, t), a(e))
            }

            function a(e) {
                const t = {
                    shortName: e.shortName,
                    exchange: e.exchange,
                    proName: e.proName,
                    type: e.type
                };
                return e.proName && e.proName.includes(":") && ([t.exchange, t.shortName] = e.proName.split(":")), t
            }

            function l(e, t) {
                const r = encodeURIComponent(t.shortName || ""),
                    o = encodeURIComponent(t.exchange || ""),
                    n = encodeURIComponent(t.proName || "");
                return e.replace("{tvexchange}", o).replace("{tvsymbol}", r).replace("{tvprosymbol}", n)
            }

            function c(e, t = "") {
                const r = ["UKOIL", "USOIL", "XAGAUD", "XAGCAD", "XAGCHF", "XAGEUR", "XAGGBP", "XAGHKD", "XAGJPY", "XAGUSD", "XAUAUD", "XAUCAD", "XAUCHF", "XAUEUR", "XAUGBP", "XAUHKD", "XAUJPY", "XAUNZD", "XAUUSD", "XPDUSD", "XPTUSD", "SPX"];
                return e.type && ["spread", "expression"].includes(e.type) ? e.proName ? "/symbols/spread/{tvprosymbol}/" + t : "/" + t : void 0 === e.shortName && void 0 === e.proName ? (console.warn("Params missed"), "/") : g(e) ? e.exchange ? "/symbols/{tvsymbol}/?exchange={tvexchange}" : "/symbols/{tvsymbol}/" + t : e.exchange || e.proName ? e.shortName && r.includes(e.shortName) ? "/symbols/{tvsymbol}/" + t : "/symbols/{tvexchange}-{tvsymbol}/" + t : "/symbols/{tvsymbol}/" + t
            }

            function u(e, t) {
                let r = e;
                if (!/{tvsymbol}|{tvexchange}|{tvprosymbol}/.test(e)) {
                    let o = "tvprosymbol";
                    void 0 === t.proName && (o = "tvsymbol"), r = `${e}?tvwidgetsymbol={${o}}`
                }
                const o = l(r, a(t));
                if (!(0, i.isSafeUrl)(o)) throw new Error(`The symbol URL ${o} is not allowed.`);
                return o
            }

            function d(e, t, r, i) {
                const s = (window.locale_domains ? (0, n.determineBaseUrl)(window.locale_domains, i) : window.location.origin) + l(e, a(t));
                return r ? (0, o.addUtmToUrl)(s, r) : s
            }

            function h(e, t, r, o) {
                return d(c(e, o), e, t, r)
            }

            function p(e, t) {
                return d("/chart/?symbol={tvprosymbol}", e, t)
            }

            function f(e, t, r) {
                return h(e, t, r, "technicals/")
            }

            function g(e) {
                return !!e.type && (t = e.type, ["forex", "bitcoin", "crypto"].includes(t));
                var t
            }
        },
        88015: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                TRIAL_SUFFIX: () => s,
                EA_SUFFIX: () => a,
                CUSTOM_SUFFIX: () => l,
                billingCycleToTimeUnit: () => c,
                getReadableCycle: () => u,
                billingPeriodText: () => d,
                isEarlyAccess: () => h,
                isTrialProduct: () => p,
                getProductForTrial: () => f,
                getDiscountFromEarlyAccess: () => g,
                toEarlyAccess: () => m,
                humanizeProPlan: () => _,
                humanizeCardPlan: () => v,
                getAmountOfDaysForBillingCycle: () => b,
                countDiscountByBillingCycle: () => y,
                billingCycleToMonth: () => w,
                round2: () => S,
                round0: () => C,
                floor0: () => k,
                round2or0: () => E,
                round1or0: () => x,
                roundMinimal: () => T,
                getPlanName: () => A
            });
            r(68421);
            var o = r(8107),
                n = r(8276),
                i = r(65754);
            const s = "_trial",
                a = "_discount",
                l = "_custom";

            function c(e) {
                return {
                    y: o.t("year", {
                        plural: "years",
                        count: 1
                    }),
                    m: o.t("month", {
                        plural: "months",
                        count: 1
                    }),
                    "3m": o.t("three months"),
                    "2y": o.t("two years")
                }[e]
            }

            function u(e) {
                return {
                    m: o.t("monthly"),
                    y: o.t("annually"),
                    "3m": o.t("3 months"),
                    "2y": o.t("2-year")
                }[e] || ""
            }

            function d(e) {
                var t;
                return null !== (t = {
                    y: o.t("Billed every year."),
                    m: o.t("Billed every month."),
                    "2y": o.t("Billed every two years.")
                }[e]) && void 0 !== t ? t : ""
            }

            function h(e) {
                return /\d{0,2}_discount$/.test(e)
            }

            function p(e) {
                return new RegExp(s + "$").test(e)
            }

            function f(e) {
                return e.split(s)[0]
            }

            function g(e) {
                const t = e.match(new RegExp("^(d{0,2})" + a + "$"));
                return t ? +t[1] || 50 : 0
            }

            function m(e, t) {
                return `${e}_${t}${a}`
            }

            function _(e, t) {
                let r = e;
                switch (e) {
                    case n.ProPlans.Pro:
                        r = "Pro";
                        break;
                    case n.ProPlans.ProRealtime:
                        r = "Pro+";
                        break;
                    case n.ProPlans.ProPremium:
                        r = "Premium";
                        break;
                    case n.ProPlans.ProMiniAds:
                    case n.ProPlans.ProMiniLayouts:
                    case n.ProPlans.ProMiniAlerts:
                        r = o.t("1-feature");
                        break;
                    case n.ProPlans.ProEdu:
                        r = o.t("Rookie")
                }
                return t && (r += " " + o.t("trial")), r
            }

            function v(e) {
                let t = e;
                switch (e) {
                    case n.ProPlans.Pro:
                        t = "Pro";
                        break;
                    case n.ProPlans.ProRealtime:
                        t = "Pro+";
                        break;
                    case n.ProPlans.ProPremium:
                        t = "Premium";
                        break;
                    case n.ProPlans.Free:
                        t = "Basic"
                }
                return t
            }

            function b(e) {
                switch (e) {
                    case i.BillingCycle.TwoYears:
                        return 730;
                    case i.BillingCycle.OneYear:
                        return 365;
                    case i.BillingCycle.ThreeMonths:
                        return 90;
                    case i.BillingCycle.Monthly:
                        return 30;
                    default:
                        return 1
                }
            }

            function y(e, t, r) {
                return Math.round((t - e) * w(r))
            }

            function w(e) {
                switch (e) {
                    case i.BillingCycle.TwoYears:
                        return 24;
                    case i.BillingCycle.OneYear:
                        return 12;
                    default:
                        return 1
                }
            }

            function S(e) {
                return (Math.round(100 * e) / 100).toFixed(2)
            }

            function C(e) {
                const t = Math.round(100 * e) / 100;
                return Math.round(t).toFixed(0)
            }

            function k(e) {
                return Math.floor(e).toString()
            }

            function E(e) {
                const t = Math.round(100 * e) / 100,
                    r = Math.round(t);
                return Math.abs(t - r) > 0 ? t.toFixed(2) : r.toFixed(0)
            }

            function x(e) {
                return Number.isInteger(e) ? e.toFixed(0) : (Math.round(10 * e) / 10).toFixed(1)
            }

            function T(e) {
                const t = Math.round(100 * e) / 100,
                    r = Math.round(10 * e) / 10,
                    o = Math.round(t);
                return Math.abs(t - o) > 0 ? Math.abs(t - r) > 0 ? t.toFixed(2) : r.toFixed(1) : o.toFixed(0)
            }

            function A(e) {
                const t = o.t("{proPlanName} Trial");
                if (p(e)) {
                    const r = _(f(e));
                    return t.format({
                        proPlanName: r
                    })
                }
                return _(e)
            }
        },
        5956: (e, t, r) => {
            "use strict";
            r.d(t, {
                getTranslatedSymbolDescription: () => s
            });
            var o = r(8107);
            const n = (0, r(98006).isFeatureEnabled)("short_descriptions");

            function i(e) {
                const t = `#${e}-symbol-description`,
                    r = (0, o.t)(t);
                return r === t ? null : r
            }

            function s(e) {
                if (void 0 !== e.pro_name) {
                    const t = i(e.pro_name);
                    if (null !== t) return t;
                    if (void 0 !== e.short_name) {
                        const t = i(e.short_name);
                        if (null !== t) return t
                    }
                }
                return "en" !== e.language && void 0 !== e.local_description && e.language === window.language ? e.local_description : n && void 0 !== e.short_description ? e.short_description : "en" === e.language && void 0 !== e.local_description && e.language === window.language ? e.local_description : e.description || ""
            }
        },
        11585: (e, t, r) => {
            "use strict";

            function o(e) {
                return e + "…"
            }
            r.r(t), r.d(t, {
                appendEllipsis: () => o
            })
        },
        32010: (e, t, r) => {
            "use strict";

            function o(e, t, r, o, n) {
                let i = "";
                if (o = o ? "; path=" + o : "", n = n ? "; domain=" + n : "", r) {
                    const e = new Date;
                    e.setTime(e.getTime() + 24 * r * 60 * 60 * 1e3), i = "; expires=" + e.toUTCString()
                } else i = "";
                document.cookie = e + "=" + t + i + n + o
            }

            function n(e) {
                const t = e + "=",
                    r = document.cookie.split(";");
                for (let e = 0; e < r.length; e++) {
                    let o = r[e];
                    for (;
                        " " === o.charAt(0);) o = o.substring(1, o.length);
                    if (0 === o.indexOf(t)) return o.substring(t.length, o.length)
                }
                return null
            }
            r.d(t, {
                set: () => o,
                get: () => n
            })
        },
        21318: (e, t, r) => {
            "use strict";

            function o(e, ...t) {
                return e && "object" == typeof e ? (0 === t.length || t.forEach(t => {
                    null != t && "object" == typeof t && Object.keys(t).forEach(r => {
                        const i = e[r],
                            s = t[r];
                        if (s === e) return;
                        const a = Array.isArray(s);
                        if (s && (n(s) || a)) {
                            let t;
                            t = a ? i && Array.isArray(i) ? i : [] : i && n(i) ? i : {}, e[r] = o(t, s)
                        } else void 0 !== s && (e[r] = s)
                    })
                }), e) : e
            }

            function n(e) {
                if (!e || "[object Object]" !== Object.prototype.toString.call(e)) return !1;
                const t = Object.getPrototypeOf(e);
                if (!t) return !0;
                const r = Object.hasOwnProperty.toString,
                    o = t.hasOwnProperty("constructor") && t.constructor;
                return "function" == typeof o && r.call(o) === r.call(Object)
            }
            r.d(t, {
                deepExtend: () => o
            })
        },
        75443: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                guid: () => n,
                randomHash: () => i,
                randomHashN: () => s
            });
            const o = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

            function n() {
                return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, e => {
                    const t = 16 * Math.random() | 0;
                    return ("x" === e ? t : 3 & t | 8).toString(16)
                })
            }

            function i() {
                return s(12)
            }

            function s(e) {
                let t = "";
                for (let r = 0; r < e; ++r) {
                    const e = Math.floor(Math.random() * o.length);
                    t += o[e]
                }
                return t
            }
        },
        13548: (e, t, r) => {
            "use strict";
            r.d(t, {
                parseHtml: () => n,
                parseHtmlElement: () => i
            });
            const o = new WeakMap;

            function n(e, t) {
                let r, n;
                return r = null == t ? document.documentElement : 9 === t.nodeType ? t.documentElement : t, o && (n = o.get(r)), n || (n = r.ownerDocument.createRange(), n.selectNodeContents(r), o && o.set(r, n)), n.createContextualFragment(e)
            }

            function i(e, t) {
                const r = n(e, t),
                    o = r.firstElementChild;
                return null !== o && r.removeChild(o), o
            }
        },
        53549: (e, t, r) => {
            "use strict";

            function o(e) {
                e.preventDefault()
            }
            r.d(t, {
                preventDefault: () => o,
                preventDefaultForContextMenu: () => i
            });
            const n = ["input:not([type])", 'input[type="text"]', 'input[type="email"]', 'input[type="password"]', 'input[type="search"]', 'input[type="number"]', 'input[type="url"]', "textarea", "a[href]", '*[contenteditable="true"]', "[data-allow-context-menu]"];

            function i(e) {
                const t = e.target;
                t && !t.closest(n.join(", ")) && e.preventDefault()
            }
        },
        36170: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                htmlEscape: () => i,
                removeTags: () => s,
                removeSpaces: () => a,
                capitalizeFirstLetterInWord: () => l
            });
            const o = /[<"'&>]/g,
                n = e => `&#${e.charCodeAt(0)};`;

            function i(e) {
                return e.replace(o, n)
            }

            function s(e = "") {
                return e.replace(/(<([^>]+)>)/gi, "")
            }

            function a(e = "") {
                return e.replace(/\s+/g, "")
            }

            function l(e = "") {
                return e.replace(/\b\w/g, e => e.toUpperCase())
            }
        },
        94972: (e, t, r) => {
            "use strict";

            function o(e) {
                return e.reduce((function(e, t, r) {
                    return ~e.indexOf(t) || e.push(t), e
                }), [])
            }
            r.r(t), r.d(t, {
                uniq: () => o
            })
        },
        17238: (e, t, r) => {
            "use strict";

            function o(e) {
                return decodeURIComponent(e.replace(/\+/g, " ")).replace(/<\/?[^>]+(>|$)/g, "")
            }

            function n(e) {
                const t = /([^&=]+)=?([^&]*)/g,
                    r = {};
                if (!e) return r;
                let n = t.exec(e);
                for (; n;) r[o(n[1])] = o(n[2]), n = t.exec(e);
                return r
            }

            function i() {
                return n(window.location.search.substring(1))
            }

            function s() {
                return n(window.location.hash.split("#")[1])
            }

            function a(e) {
                const t = [];
                for (const r in e) e.hasOwnProperty(r) && null != e[r] && t.push({
                    key: r,
                    pair: encodeURIComponent(r) + "=" + encodeURIComponent(e[r])
                });
                return t.sort((e, t) => e.key > t.key ? 1 : e.key < t.key ? -1 : 0).map(e => e.pair).join("&")
            }
            r.r(t), r.d(t, {
                decode: () => o,
                getQueryParams: () => n,
                getUrlParams: () => i,
                getHashUrlParams: () => s,
                createUrlParams: () => a
            })
        },
        50284: (e, t, r) => {
            "use strict";

            function o(e) {
                const t = new URL(e, document.baseURI);
                return l(t) && a(t) && s(t)
            }

            function n(e) {
                const t = new URL(e, document.baseURI);
                return a(t) && s(t)
            }

            function i(e) {
                return !e.split(/(\s+)/).filter(e => e.trim().length > 0).some(e => {
                    try {
                        const t = new URL(e);
                        return !(!t || !t.hostname.length) && !n(e)
                    } catch (e) {
                        return !1
                    }
                })
            }
            r.d(t, {
                isInternalUrl: () => o,
                isSafeUrl: () => n,
                validateUrlsInText: () => i,
                isInternalHost: () => c
            });
            const s = e => !e.username,
                a = e => "http:" === e.protocol || "https:" === e.protocol,
                l = e => e.hostname === location.hostname || !/^\d+\.\d+\.\d+\.\d+$/.test(e.hostname) && c(e.hostname);

            function c(e, t = window.location.hostname) {
                const r = "." === t.slice(-1) ? 3 : 2,
                    o = t.toLowerCase().split(".").slice(-r),
                    n = e.toLowerCase().split(".").slice(-o.length);
                return o.join(".") === n.join(".")
            }
        },
        44990: (e, t, r) => {
            "use strict";
            r.d(t, {
                addUtmToUrl: () => n
            });
            var o = r(61424);

            function n(e, t) {
                if (!/([a-zA-Z0-9.-]*tradingview.com)|localhost/.test(e)) return e;
                const r = (0, o.buildUtmQueryString)(t);
                if ("" === r) return e;
                const n = e.indexOf("?"),
                    i = e.indexOf("#"),
                    s = -1 !== i;
                if (-1 !== n && (!s || n < i)) {
                    return `${e.slice(0,n)}?${s?e.slice(n+1,i):e.slice(n+1)}&${r}${s?e.slice(i):""}`
                }
                if (s) {
                    return `${e.slice(0,i)}?${r}${e.slice(i)}`
                }
                return `${e}?${r}`
            }
        },
        61424: (e, t, r) => {
            "use strict";
            r.d(t, {
                filterUtmInfo: () => s,
                buildUtmQueryString: () => a,
                buildUtmQueryStringFromUrlParams: () => l
            });
            var o = r(17238),
                n = r(36170);
            const i = ["utm_source", "utm_medium", "utm_campaign"];

            function s(e) {
                const t = {};
                return i.forEach(r => {
                    const o = e[r];
                    "string" == typeof o && "" !== o && (t[r] = (0, n.htmlEscape)(o))
                }), t
            }

            function a(e, t = !1) {
                const r = (0, o.createUrlParams)(e);
                return r && t ? "?" + r : r
            }

            function l(e) {
                return a(s((0, o.getUrlParams)()), e)
            }
        },
        95498: (e, t, r) => {
            "use strict";

            function o(e, t = !1) {
                "loading" !== document.readyState ? t ? setTimeout(() => e(), 1) : e() : document.addEventListener("DOMContentLoaded", () => e())
            }
            r.d(t, {
                whenDocumentReady: () => o,
                whenDocumentReadyPromise: () => n
            });
            const n = new Promise(e => {
                o(e)
            })
        },
        51943: (e, t, r) => {
            "use strict";

            function o(e) {
                let t, r;
                return e.includes(":") ? (r = e.split(":")[1], t = e) : r = e, {
                    proName: t,
                    shortName: r
                }
            }
            r.d(t, {
                getShortNameAndProName: () => o
            })
        },
        43080: (e, t, r) => {
            "use strict";
            r.d(t, {
                handleTVLinksClick: () => i,
                sendWidgetTrackData: () => s
            });
            var o = r(61424),
                n = r(50284);

            function i() {
                document.addEventListener("click", e => {
                    const t = e.target.closest(":link");
                    if (!(null == t ? void 0 : t.hostname) || !(0, n.isInternalHost)(t.hostname, "tradingview.com")) return;
                    const r = t.classList.contains("js-copyright-label") ? "copyright" : null;
                    s(t.href, r)
                })
            }

            function s(e, t) {
                const n = function() {
                        const e = window.initData.hashSettings;
                        if (Object.keys(e).length > 0) return (0, o.filterUtmInfo)(e);
                        const t = new URLSearchParams(location.href);
                        return {
                            utm_campaign: t.get("utm_campaign") || void 0,
                            utm_source: t.get("utm_source") || void 0
                        }
                    }(),
                    i = function(e) {
                        var t;
                        const r = (null === (t = location.ancestorOrigins) || void 0 === t ? void 0 : t[0]) || document.referrer;
                        return e.utm_source || (r.length > 0 ? new URL(r).host : "")
                    }(n);
                !async function(e) {
                    var t;
                    null === (t = await async function() {
                        const e = (await Promise.all([r.e(19110), r.e(36683)]).then(r.bind(r, 47413))).getTrackerInstance();
                        return e || null
                    }()) || void 0 === t || t.trackWidgetTVLinkClick(e)
                }({
                    widget_type: a(n),
                    domain: i,
                    link: e,
                    target_type: t
                })
            }

            function a(e) {
                if (e.utm_campaign) return e.utm_campaign;
                const t = location.pathname;
                return t.includes("embed-widget") ? t.split("/")[2] : t
            }
        },
        16639: (e, t, r) => {
            "use strict";

            function o(e, t = [], r) {
                return function(e, t, r, o = [], n) {
                    const i = r.slice(1),
                        s = decodeURIComponent(i);
                    let a = {};
                    try {
                        "" !== s && (a = JSON.parse(s), void 0 !== n && n(e, a), Object.keys(a).forEach(e => {
                            o.includes(e) && delete a[e]
                        }))
                    } catch (e) {
                        a = {}, console.warn("Hash params parsing error! Hash params ignored.")
                    }
                    const l = t.slice(1),
                        c = decodeURIComponent(l);
                    let u = {};
                    try {
                        "" !== c && (c.split("&").map(e => {
                            const t = e.indexOf("=");
                            return [e.slice(0, t), e.slice(t + 1)]
                        }).forEach(e => {
                            const [t, r] = e;
                            o.includes(t) || (u[t] = r)
                        }), void 0 !== n && n(e, u))
                    } catch (e) {
                        u = {}, console.warn("Search query params parsing error! Search query params ignored.")
                    }
                    return Object.assign({}, e, a, u)
                }(e, location.search, location.hash, t, r)
            }

            function n() {
                const e = window;
                return { ...e.initData.widgetDefaults,
                    ...e.initData.hashSettings,
                    ...e.initData.querySettings
                }
            }
            r.d(t, {
                extractWidgetSettings: () => o,
                extractWidgetSettingsFromInitData: () => n
            })
        },
        76623: (e, t, r) => {
            "use strict";

            function o(e, t, r, o, n) {
                function i(n) {
                    if (e > n.timeStamp) return;
                    const i = n.target;
                    void 0 !== r && null !== t && null !== i && i.ownerDocument === o && (t.contains(i) || r(n))
                }
                return n.click && o.addEventListener("click", i, !1), n.mouseDown && o.addEventListener("mousedown", i, !1), n.touchEnd && o.addEventListener("touchend", i, !1), n.touchStart && o.addEventListener("touchstart", i, !1), () => {
                    o.removeEventListener("click", i, !1), o.removeEventListener("mousedown", i, !1), o.removeEventListener("touchend", i, !1), o.removeEventListener("touchstart", i, !1)
                }
            }
            r.d(t, {
                addOutsideEventListener: () => o
            })
        },
        64390: (e, t, r) => {
            "use strict";
            r.d(t, {
                appendScript: () => i,
                createImage: () => s,
                marketingAnalyticsEnabled: () => a,
                yandexAnalyticsEnabled: () => l
            });
            var o = r(26357),
                n = r(98006);

            function i(e, t = !0) {
                const r = document.createElement("script");
                r.async = t, r.src = e;
                const n = (0,
                    o.getCspNonce)();
                return n && r.setAttribute("nonce", n), document.head.appendChild(r), r
            }

            function s(e) {
                const t = document.createElement("img");
                return t.src = e, t
            }

            function a() {
                return (0, n.isFeatureEnabled)("marketing-analytics")
            }

            function l() {
                return (0, n.isFeatureEnabled)("yandex_metric_enabled")
            }
        },
        25443: (e, t, r) => {
            "use strict";
            r.d(t, {
                initGA: () => a,
                trackTiming: () => l
            });
            var o = r(4346),
                n = r(68724),
                i = r(64390);
            let s = !1;

            function a() {
                if (s) return;
                (0, o.updateInitData)();
                const e = (0, o.getInitData)();
                if (!e.gaId) return;
                s = !0, (0, i.appendScript)("https://www.googletagmanager.com/gtag/js?id=" + (0, o.getInitData)().gaId), window.dataLayer = window.dataLayer || [], window.gtag = function() {
                    window.dataLayer.push(arguments)
                }, window.gtag("js", new Date);
                const t = {
                    optimize_id: e.optimizeId,
                    anonymize_ip: !0
                };
                window.TVD && (t.app_name = "TVD", t.app_version = (0, n.desktopAppVersion)()), e.gaVars && window.gtag("set", e.gaVars), window.gtag("config", e.gaId, t)
            }

            function l(e, t, r, o) {
                a(), window.gtag("event", "timing_complete", {
                    name: t,
                    value: r,
                    event_category: e,
                    event_label: o
                })
            }
        },
        26357: (e, t, r) => {
            "use strict";

            function o() {
                const e = document.querySelector("script[nonce]");
                if (null !== e) return e.getAttribute("nonce") || e.nonce
            }
            r.d(t, {
                getCspNonce: () => o
            })
        },
        24754: (e, t, r) => {
            "use strict";

            function o(e) {
                if (void 0 === e) return null;
                const t = e.match(/(delayed_streaming)_([\d]{1,4})/);
                return null === t ? null : {
                    mode: t[1],
                    interval: parseInt(t[2])
                }
            }
            r.d(t, {
                parseUpdateMode: () => o
            })
        },
        57014: (e, t, r) => {
            "use strict";
            var o, n;
            r.r(t), r.d(t, {
                    WeekDays: () => o,
                    Months: () => n
                }),
                function(e) {
                    e[e.SUNDAY = 1] = "SUNDAY", e[e.MONDAY = 2] = "MONDAY", e[e.TUESDAY = 3] = "TUESDAY", e[e.WEDNESDAY = 4] = "WEDNESDAY", e[e.THURSDAY = 5] = "THURSDAY", e[e.FRIDAY = 6] = "FRIDAY", e[e.SATURDAY = 7] = "SATURDAY"
                }(o || (o = {})),
                function(e) {
                    e[e.JANUARY = 0] = "JANUARY", e[e.FEBRUARY = 1] = "FEBRUARY", e[e.MARCH = 2] = "MARCH", e[e.APRIL = 3] = "APRIL", e[e.MAY = 4] = "MAY", e[e.JUNE = 5] = "JUNE", e[e.JULY = 6] = "JULY", e[e.AUGUST = 7] = "AUGUST", e[e.SEPTEMBER = 8] = "SEPTEMBER", e[e.OCTOBER = 9] = "OCTOBER", e[e.NOVEMBER = 10] = "NOVEMBER", e[e.DECEMBER = 11] = "DECEMBER"
                }(n || (n = {}))
        },
        64011: (e, t, r) => {
            "use strict";
            r.d(t, {
                Draggable: () => a,
                PointerBackend: () => l
            });
            var o = r(16282),
                n = r(91496),
                i = r(68724),
                s = r(95355);
            class a {
                constructor(e) {
                    var t, r;
                    this._helper = null, this._handleDragStart = e => {
                        var t;
                        if (null !== this._helper) return;
                        const r = this._source;
                        r.classList.add("ui-draggable-dragging");
                        const [o, i] = [(0, n.outerWidth)(r), (0, n.outerHeight)(r)];
                        this._helper = {
                            startTop: parseFloat(r.style.top) || 0,
                            startLeft: parseFloat(r.style.left) || 0,
                            nextTop: null,
                            nextLeft: null,
                            raf: null,
                            size: [o, i],
                            containment: this._containment instanceof HTMLElement ? [parseInt(getComputedStyle(this._containment).borderLeftWidth) + parseInt(getComputedStyle(this._containment).paddingLeft), parseInt(getComputedStyle(this._containment).borderTopWidth) + parseInt(getComputedStyle(this._containment).paddingTop), this._containment.offsetWidth - parseInt(getComputedStyle(this._containment).borderRightWidth) - parseInt(getComputedStyle(this._containment).paddingRight) - parseInt(getComputedStyle(r).marginLeft) - parseInt(getComputedStyle(r).marginRight) - o, this._containment.offsetHeight - parseInt(getComputedStyle(this._containment).borderBottomWidth) - parseInt(getComputedStyle(this._containment).paddingBottom) - parseInt(getComputedStyle(r).marginTop) - parseInt(getComputedStyle(r).marginBottom) - i] : "window" === this._containment ? [window.scrollX, window.scrollY, window.scrollX + document.documentElement.offsetWidth - o, window.scrollY + document.documentElement.offsetHeight - i] : null
                        }, null === (t = this._start) || void 0 === t || t.call(this)
                    }, this._handleDragMove = e => {
                        var t;
                        if (null === this._helper) return;
                        const {
                            current: r,
                            initial: o
                        } = e.detail, n = this._source, i = this._helper.nextTop, s = this._helper.nextLeft, a = "y" === this._axis || !1 === this._axis || 0 !== r.movementY;
                        if (a) {
                            const e = this._helper.startTop;
                            isFinite(e) && (this._helper.nextTop = r.clientY - o.clientY + e)
                        }
                        const l = "x" === this._axis || !1 === this._axis || 0 !== r.movementY;
                        if (l) {
                            const e = this._helper.startLeft;
                            isFinite(e) && (this._helper.nextLeft = r.clientX - o.clientX + e)
                        }
                        if (null !== this._helper.containment) {
                            const [e, t, r, o] = this._helper.containment;
                            a && this._helper.nextTop && (this._helper.nextTop = Math.min(this._helper.nextTop, o), this._helper.nextTop = Math.max(this._helper.nextTop, t)), l && this._helper.nextLeft && (this._helper.nextLeft = Math.min(this._helper.nextLeft, r), this._helper.nextLeft = Math.max(this._helper.nextLeft, e))
                        }
                        null !== this._helper.raf || i === this._helper.nextTop && s === this._helper.nextLeft || (this._helper.raf = requestAnimationFrame(() => {
                            null !== this._helper && (null !== this._helper.nextTop && (n.style.top = this._helper.nextTop + "px", this._helper.nextTop = null), null !== this._helper.nextLeft && (n.style.left = this._helper.nextLeft + "px", this._helper.nextLeft = null), this._helper.raf = null)
                        })), null === (t = this._drag) || void 0 === t || t.call(this)
                    }, this._handleDragStop = e => {
                        var t;
                        if (null === this._helper) return;
                        this._source.classList.remove("ui-draggable-dragging"), this._helper = null, null === (t = this._stop) || void 0 === t || t.call(this)
                    };
                    const o = this._source = e.source;
                    o.classList.add("ui-draggable");
                    const i = this._handle = null !== (t = e.handle ? o.querySelector(e.handle) : null) && void 0 !== t ? t : o;
                    i.classList.add("ui-draggable-handle"), this._start = e.start, this._stop = e.stop, this._drag = e.drag, this._backend = new l({
                        handle: i,
                        onDragStart: this._handleDragStart,
                        onDragMove: this._handleDragMove,
                        onDragStop: this._handleDragStop
                    }), this._axis = null !== (r = e.axis) && void 0 !== r && r, this._containment = e.containment
                }
                destroy() {
                    const e = this._source;
                    e.classList.remove("ui-draggable"), e.classList.remove("ui-draggable-dragging");
                    this._handle.classList.remove("ui-draggable-handle"), this._backend.destroy(),
                        null !== this._helper && (this._helper.raf && cancelAnimationFrame(this._helper.raf), this._helper = null)
                }
            }
            class l {
                constructor(e) {
                    this._initial = null, this._handlePointerDown = e => {
                        if (null !== this._initial) return;
                        if (!(e.target instanceof Element && this._handle.contains(e.target))) return;
                        if (this._initial = e, !this._dispatchEvent(this._createEvent("pointer-drag-start", e))) return void(this._initial = null);
                        e.preventDefault();
                        const t = this._getEventTarget();
                        t.addEventListener("pointermove", this._handlePointerMove), t.addEventListener("pointerup", this._handlePointerUp), t.addEventListener("pointercancel", this._handlePointerUp), t.addEventListener("lostpointercapture", this._handlePointerUp), t.setPointerCapture(e.pointerId)
                    }, this._handlePointerMove = e => {
                        null !== this._initial && this._initial.pointerId === e.pointerId && (e.preventDefault(), this._dispatchEvent(this._createEvent("pointer-drag-move", e)))
                    }, this._handlePointerUp = e => {
                        if (null === this._initial || this._initial.pointerId !== e.pointerId) return;
                        e.preventDefault();
                        const t = this._getEventTarget();
                        t.removeEventListener("pointermove", this._handlePointerMove), t.removeEventListener("pointerup", this._handlePointerUp), t.removeEventListener("pointercancel", this._handlePointerUp), t.removeEventListener("lostpointercapture", this._handlePointerUp), t.releasePointerCapture(this._initial.pointerId), this._dispatchEvent(this._createEvent("pointer-drag-stop", e)), this._initial = null
                    };
                    const t = this._handle = e.handle;
                    this._onDragStart = e.onDragStart, this._onDragMove = e.onDragMove, this._onDragStop = e.onDragStop, t.style.touchAction = "none";
                    this._getEventTarget().addEventListener("pointerdown", this._handlePointerDown)
                }
                destroy() {
                    this._handle.style.touchAction = "";
                    const e = this._getEventTarget();
                    e.removeEventListener("pointerdown", this._handlePointerDown), e.removeEventListener("pointermove", this._handlePointerMove), e.removeEventListener("pointerup", this._handlePointerUp), e.removeEventListener("pointercancel", this._handlePointerUp), e.removeEventListener("lostpointercapture", this._handlePointerUp), null !== this._initial && (e.releasePointerCapture(this._initial.pointerId), this._initial = null)
                }
                _getEventTarget() {
                    return i.CheckMobile.iOS() || (0, i.isMac)() && s.touch ? window.document.documentElement : this._handle
                }
                _dispatchEvent(e) {
                    switch (e.type) {
                        case "pointer-drag-start":
                            this._onDragStart(e);
                            break;
                        case "pointer-drag-move":
                            this._onDragMove(e);
                            break;
                        case "pointer-drag-stop":
                            this._onDragStop(e)
                    }
                    return !e.defaultPrevented
                }
                _createEvent(e, t) {
                    return (0, o.assert)(null !== this._initial), new CustomEvent(e, {
                        bubbles: !0,
                        cancelable: !0,
                        detail: {
                            backend: this,
                            initial: this._initial,
                            current: t
                        }
                    })
                }
            }
        },
        11767: (e, t, r) => {
            "use strict";

            function o(e = location.host) {
                return -1 !== ["i18n.tradingview.com", "partial.tradingview.com", "www.tradingview.com", "wwwcn.tradingview.com"].indexOf(e) || -1 !== ["d33t3vvu2t2yu5.cloudfront.net", "dwq4do82y8xi7.cloudfront.net", "s.tradingview.com", "s3.tradingview.com"].indexOf(e) || e.match(/^[a-z]{2}\.tradingview\.com/) || e.match(/prod-[^.]+.tradingview.com/) ? "battle" : e.includes("tradingview.com") || e.includes("staging") ? "staging" : e.match(/webcharts/) ? "staging_local" : (e.match(/^localhost(:\d+)?$/), "local")
            }

            function n() {
                return "local" === o()
            }

            function i() {
                return "battle" === o()
            }

            function s() {
                return !i()
            }
            r.r(t), r.d(t, {
                environment: () => o,
                isLocal: () => n,
                isProd: () => i,
                isDebug: () => s
            })
        },
        16290: (e, t, r) => {
            "use strict";
            r.d(t, {
                getEmbedDeprecatedExchanges: () => n
            });
            const o = JSON.parse('["BAHRAIN","BCBA","BYMA","BCS","BELEX","BME","BMFBOVESPA","BMV","BVC","BVL","DFM","EURONEXT_AMS","EURONEXT_BRU","EURONEXT_LIS","EURONEXT_PAR","EURONEXTAMS","EURONEXTBRU","EURONEXTLIS","EURONEXTPAR","OSE","OSL","FSE","GPW","HKEX","HOSE","IDX","ICESG","JSE","MOEX","MYX","NAG","NSENG","NZX","OMXCOP","OMXHEX","OMXICE","OMXRSE","OMXSTO","OMXTSE","OMXVSE","QSE","SAPSE","SET","SGX","SIX","SSE","SZSE","TADAWUL","TSE","TWSE"]');

            function n(e) {
                const t = o.slice();
                return e && ["forbescombr", "moneytimescombr", "marcopolocombr", "novafutura", "bovespa", "seudinheiro", "spacemoneycombr", "theo3combr", "vocesaabrilcombr", "xpicombr", "genialinvestimentos"].includes(e) && t.splice(t.indexOf("BMFBOVESPA"), 1), "ambito" === e && t.splice(t.indexOf("BCBA"), 1), "hegnarno" === e && t.splice(t.indexOf("OSL"), 1), e && ["cincodias", "elespanolcom", "elpaisfinanciero", "lainformacioncom", "copees"].includes(e) && t.splice(t.indexOf("BME"), 1), e && ["riyadhcapitalD", "riyadhcapitalRT"].includes(e) && t.splice(t.indexOf("TADAWUL"), 1), t
            }
        },
        28338: (e, t, r) => {
            "use strict";
            r.d(t, {
                enabled: () => l,
                getConfig: () => c
            });
            const o = JSON.parse('{"free":{"CHART_STORAGE":{"limit":1},"MULTIPLE_CHARTS":{"limit":1},"INDICATORS_ON_CHART":{"limit":3},"HISTORICAL_BARS":{"limit":5},"STUDY_ON_STUDY":{"limit":270,"child_limit":1},"SERVER_SIDE_ALERTS":{"limit":1},"SCREENER_ALERTS":{"limit":1},"SCREENER_INTERVALS":{"interval":["1D","1W","1M"]},"STUDY_TEMPLATES":{"limit":1},"SIMULTANEOUS_CONNECTIONS":{"limit":1},"IDEA_SOCIAL_LINKS":{"socials":["Twitter","Youtube"]}},"__legacy_pro":{"CHART_STORAGE":{"limit":99999},"MULTIPLE_CHARTS":{"limit":8},"CUSTOM_INTERVALS":{},"MULTIPLE_WATCHLISTS":{},"IMPORT_WATCHLISTS":{},"EXPORT_WATCHLISTS":{},"INDICATORS_ON_CHART":{"limit":99999},"HISTORICAL_BARS":{"limit":10},"TV_VOLUMEBYPRICE":{"study_packages":["tv-volumebyprice"]},"STUDY_ON_STUDY":{"limit":270,"child_limit":99999},"TICK_BY_TICK_PUSH_DATA":{},"SERVER_SIDE_ALERTS":{"limit":20},"SCREENER_ALERTS":{"limit":99999},"SCREENER_AUTO_REFRESH":{},"SCREENER_EXPORT_DATA":{},"DEEP_HISTORY_BACKTEST":{},"SCREENER_INTERVALS":{"interval":["1m","5m","15m","30m","1h","2h","4h","1D","1W","1M"]},"NO_SPONSORED_ADS":{},"STUDY_TEMPLATES":{"limit":99999},"SIMULTANEOUS_CONNECTIONS":{"limit":1},"IDC_AVAILABLE_DELAY":{},"STATUS":{"disable_on_trial":true},"MULTIFLAGGED_SYMBOLS_LISTS":{},"BAR_REPLAY_INTRADAY":{},"SHOWS":{"disable_on_trial":true},"ALERTS_WEBHOOK":{},"DEEP_FUNDAMENTALS_HISTORY":{},"IDEA_SOCIAL_LINKS":{"socials":["Twitter","Youtube"]},"EXTENDED_SOCIAL_LINKS":{"socials":["Facebook","Instagram"],"disable_on_trial":true},"MULTI_MONITOR":{},"PUBLISH_PROTECTED_SCRIPTS":{"disable_on_trial":true}},"__legacy_pro_realtime":{"extends":"__legacy_pro","TV_PROSTUDIES":{"study_packages":["tv-prostudies"]},"SERVER_SIDE_ALERTS":{"limit":1000},"CAN_EDIT_PUBLIC_CHATS":{"disable_on_trial":true},"EXPORT_CHART_DATA":{},"CUSTOM_FORMULAS":{},"INTRADAY_EXOTIC_CHARTS":{}},"__legacy_pro_premium":{"extends":"__legacy_pro_realtime","ALERTS_TRUE_SMS":{"disable_on_trial":true},"HISTORICAL_BARS":{"limit":20},"IDEA_SIGNATURE":{"disable_on_trial":true},"PROFILE_WEBSITE_FIELD":{"disable_on_trial":true},"ALERTS_NO_EXPIRATION":{},"PUBLISH_INVITE_ONLY_SCRIPTS":{"disable_on_trial":true},"EXPORT_CHART_DATA":{},"ALERTS_ON_SECONDS":{},"PERMANENT_STREAM_RECORDS":{},"EXTENDED_SOCIAL_LINKS":{"socials":["Facebook","Instagram","Website"],"disable_on_trial":true},"SECONDS_INTERVALS":{}},"pro":{"CHART_STORAGE":{"limit":5},"MULTIPLE_CHARTS":{"limit":2},"CUSTOM_INTERVALS":{},"MULTIPLE_WATCHLISTS":{},"IMPORT_WATCHLISTS":{},"EXPORT_WATCHLISTS":{},"INDICATORS_ON_CHART":{"limit":5},"HISTORICAL_BARS":{"limit":10},"TV_VOLUMEBYPRICE":{"study_packages":["tv-volumebyprice"]},"STUDY_ON_STUDY":{"limit":270,"child_limit":1},"TICK_BY_TICK_PUSH_DATA":{},"SERVER_SIDE_ALERTS":{"limit":20},"SCREENER_ALERTS":{"limit":99999},"SCREENER_AUTO_REFRESH":{},"SCREENER_EXPORT_DATA":{},"DEEP_HISTORY_BACKTEST":{},"SCREENER_INTERVALS":{"interval":["1m","5m","15m","30m","1h","2h","4h","1D","1W","1M"]},"NO_SPONSORED_ADS":{},"STUDY_TEMPLATES":{"limit":99999},"SIMULTANEOUS_CONNECTIONS":{"limit":1},"IDC_AVAILABLE_DELAY":{},"STATUS":{"disable_on_trial":true},"BAR_REPLAY_INTRADAY":{},"MULTIFLAGGED_SYMBOLS_LISTS":{},"SHOWS":{"disable_on_trial":true},"ALERTS_WEBHOOK":{},"DEEP_FUNDAMENTALS_HISTORY":{},"PUBLISH_PROTECTED_SCRIPTS":{"disable_on_trial":true},"IDEA_SOCIAL_LINKS":{"socials":["Twitter","Youtube"]},"EXTENDED_SOCIAL_LINKS":{"socials":["Facebook","Instagram"],"disable_on_trial":true},"MULTI_MONITOR":{}},"pro_realtime":{"extends":"pro","CHART_STORAGE":{"limit":10},"MULTIPLE_CHARTS":{"limit":4},"INDICATORS_ON_CHART":{"limit":10},"TV_PROSTUDIES":{"study_packages":["tv-prostudies"]},"STUDY_ON_STUDY":{"limit":270,"child_limit":9},"SERVER_SIDE_ALERTS":{"limit":100},"CAN_EDIT_PUBLIC_CHATS":{"disable_on_trial":true},"SIMULTANEOUS_CONNECTIONS":{"limit":2},"EXPORT_CHART_DATA":{},"CUSTOM_FORMULAS":{},"INTRADAY_EXOTIC_CHARTS":{}},"pro_premium":{"extends":"pro_realtime","CHART_STORAGE":{"limit":99999},"MULTIPLE_CHARTS":{"limit":8},"INDICATORS_ON_CHART":{"limit":25},"HISTORICAL_BARS":{"limit":20},"STUDY_ON_STUDY":{"limit":270,"child_limit":24},"SERVER_SIDE_ALERTS":{"limit":400},"SIMULTANEOUS_CONNECTIONS":{"limit":5},"ALERTS_TRUE_SMS":{"disable_on_trial":true},"IDEA_SIGNATURE":{"disable_on_trial":true},"PROFILE_WEBSITE_FIELD":{"disable_on_trial":true},"ALERTS_NO_EXPIRATION":{},"PUBLISH_INVITE_ONLY_SCRIPTS":{"disable_on_trial":true},"EXPORT_CHART_DATA":{},"ALERTS_ON_SECONDS":{},"PERMANENT_STREAM_RECORDS":{},"EXTENDED_SOCIAL_LINKS":{"socials":["Facebook","Instagram","Website"],"disable_on_trial":true},"SECONDS_INTERVALS":{}},"pro_mini_alerts":{"extends":"free","SERVER_SIDE_ALERTS":{"limit":30},"SCREENER_ALERTS":{"limit":99999},"SHOWS":{"disable_on_trial":true},"IDC_AVAILABLE_DELAY":{},"DEEP_FUNDAMENTALS_HISTORY":{}},"pro_mini_ads":{"extends":"free","NO_SPONSORED_ADS":{},"SHOWS":{"disable_on_trial":true},"IDC_AVAILABLE_DELAY":{},"DEEP_FUNDAMENTALS_HISTORY":{}},"pro_mini_layouts":{"extends":"free","MULTIPLE_CHARTS":{"limit":8},"SHOWS":{"disable_on_trial":true},"IDC_AVAILABLE_DELAY":{},"DEEP_FUNDAMENTALS_HISTORY":{}},"pro_edu":{"extends":"free","CHART_STORAGE":{"limit":3},"MULTIPLE_CHARTS":{"limit":2},"MULTIPLE_WATCHLISTS":{},"IMPORT_WATCHLISTS":{},"EXPORT_WATCHLISTS":{},"TICK_BY_TICK_PUSH_DATA":{},"SERVER_SIDE_ALERTS":{"limit":5},"SCREENER_ALERTS":{"limit":99999},"SHOWS":{"disable_on_trial":true},"IDC_AVAILABLE_DELAY":{},"DEEP_FUNDAMENTALS_HISTORY":{}}}'),
                n = JSON.parse('{"cme":{"INDICATORS_ON_CHART":{"limit":99999}},"bovespa":{"INDICATORS_ON_CHART":{"limit":99999}},"qecomqa":{"INDICATORS_ON_CHART":{"limit":99999}}}');
            var i = r(5803),
                s = r(8276),
                a = r(88015);

            function l(e, t, r) {
                let o = window.user;
                r && (o = r);
                const n = c(e, t, o);
                return !!n && !(n[i.ProductFeatures.DISABLE_ON_TRIAL] && (!o || o.is_trial))
            }

            function c(e, t, r) {
                var i;
                let l = function e(t) {
                    const r = o[t];
                    return r ? r.extends ? Object.assign({}, e(r.extends), r) : r : null
                }(t || function(e) {
                    let t = window.user;
                    e && (t = e);
                    let r = (null == t ? void 0 : t.pro_plan) || s.ProPlans.Free;
                    const o = r !== s.ProPlans.Free && !(0, a.isTrialProduct)(r);
                    return o || (r = (0, a.getProductForTrial)(r)), o && t && !t.is_pro_limited && !t.new_pro_product_line && (r = "__legacy_" + r), r
                }(r));
                if (!l) return null;
                const c = null === (i = window.TradingView) || void 0 === i ? void 0 : i.widgetCustomer;
                return c && n[c] && (l = Object.assign({}, l, n[c])), l && l[e] || null
            }
        },
        5803: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    ProductFeatures: () => o
                }),
                function(e) {
                    e.DISABLE_ON_TRIAL = "disable_on_trial", e.CUSTOM_INTERVALS = "CUSTOM_INTERVALS", e.CHART_STORAGE = "CHART_STORAGE", e.MULTIPLE_CHARTS = "MULTIPLE_CHARTS", e.MULTIPLE_WATCHLISTS = "MULTIPLE_WATCHLISTS", e.IMPORT_WATCHLISTS = "IMPORT_WATCHLISTS", e.EXPORT_WATCHLISTS = "EXPORT_WATCHLISTS", e.INDICATORS_ON_CHART = "INDICATORS_ON_CHART", e.STUDY_ON_STUDY = "STUDY_ON_STUDY", e.TICK_BY_TICK_PUSH_DATA = "TICK_BY_TICK_PUSH_DATA", e.SERVER_SIDE_ALERTS = "SERVER_SIDE_ALERTS", e.ALERTS_TRUE_SMS = "ALERTS_TRUE_SMS", e.PUBLISH_INVITE_ONLY_SCRIPTS = "PUBLISH_INVITE_ONLY_SCRIPTS", e.PUBLISH_PROTECTED_SCRIPTS = "PUBLISH_PROTECTED_SCRIPTS", e.SCREENER_ALERTS = "SCREENER_ALERTS", e.SCREENER_AUTO_REFRESH = "SCREENER_AUTO_REFRESH", e.SCREENER_EXPORT_DATA = "SCREENER_EXPORT_DATA", e.SCREENER_INTERVALS = "SCREENER_INTERVALS", e.SIMULTANEOUS_CONNECTIONS = "SIMULTANEOUS_CONNECTIONS", e.STUDY_TEMPLATES = "STUDY_TEMPLATES", e.CAN_EDIT_PUBLIC_CHATS = "CAN_EDIT_PUBLIC_CHATS", e.NO_SPONSORED_ADS = "NO_SPONSORED_ADS", e.IDC_AVAILABLE_DELAY = "IDC_AVAILABLE_DELAY", e.STATUS = "STATUS", e.ALERTS_NO_EXPIRATION = "ALERTS_NO_EXPIRATION", e.MULTIFLAGGED_SYMBOLS_LISTS = "MULTIFLAGGED_SYMBOLS_LISTS", e.BAR_REPLAY_INTRADAY = "BAR_REPLAY_INTRADAY", e.TV_VOLUMEBYPRICE = "TV_VOLUMEBYPRICE", e.ALERTS_WEBHOOK = "ALERTS_WEBHOOK", e.DEEP_FUNDAMENTALS_HISTORY = "DEEP_FUNDAMENTALS_HISTORY", e.EXPORT_CHART_DATA = "EXPORT_CHART_DATA", e.ALERTS_ON_SECONDS = "ALERTS_ON_SECONDS", e.PERMANENT_STREAM_RECORDS = "PERMANENT_STREAM_RECORDS", e.IDEA_SOCIAL_LINKS = "IDEA_SOCIAL_LINKS", e.EXTENDED_SOCIAL_LINKS = "EXTENDED_SOCIAL_LINKS", e.DEEP_HISTORY_BACKTEST = "DEEP_HISTORY_BACKTEST"
                }(o || (o = {}))
        },
        79200: (e, t, r) => {
            "use strict";
            r.d(t, {
                reloginOrGoPro: () => h,
                runOrGoPro: () => d,
                runOrGoProWithoutSync: () => u
            });
            var o = r(44439),
                n = r(23946),
                i = r(28338),
                s = r(5803);

            function a(e, t, r) {
                return t.value || (0, i.enabled)(e, r)
            }

            function l(e, t, r) {
                switch (e) {
                    case s.ProductFeatures.SCREENER_INTERVALS:
                        return function(e, t) {
                            const r = (0, i.getConfig)(s.ProductFeatures.SCREENER_INTERVALS, t);
                            return !(!r || !r.interval) && r.interval.includes(e.interval)
                        }(t, r);
                    case s.ProductFeatures.SCREENER_AUTO_REFRESH:
                        return a(s.ProductFeatures.SCREENER_AUTO_REFRESH, t, r);
                    case s.ProductFeatures.ALERTS_NO_EXPIRATION:
                        return a(s.ProductFeatures.ALERTS_NO_EXPIRATION, t, r);
                    default:
                        return (0, i.enabled)(e, r)
                }
            }
            var c = r(71141);

            function u(e, t, r, o) {
                l(t, o) ? e() : (0, n.createGoProDialog)(r)
            }
            async function d(e, t, r, n = {}) {
                const i = window.is_authenticated;
                window.is_authenticated && window.user.is_pro && await (0, o.syncUserData)("gopro"), i === window.is_authenticated ? u(e, t, r, n) : (0, c.showSignModal)({
                    source: r.goproSource,
                    feature: r.feature,
                    signinSuccess: e
                })
            }
            async function h(e) {
                const t = window.is_authenticated;
                window.is_authenticated && window.user.is_pro && await (0, o.syncUserData)("gopro"), t === window.is_authenticated ? (0, n.createGoProDialog)(e) : (0, c.showSignModal)({
                    source: e.goproSource,
                    feature: e.feature
                })
            }
        },
        98006: (e, t, r) => {
            "use strict";
            var o = r(55119).TVLocalStorage,
                n = r(96276),
                i = r(53363);
            r(68724);
            var s = new n;
            TradingView.FeatureToggle = {
                force_prefix: "forcefeaturetoggle.",
                onChanged: new n,
                enableFeature: function(e) {
                    o.setItem(this.force_prefix + e, "true"), s.fire(e)
                },
                disableFeature: function(e) {
                    o.setItem(this.force_prefix + e, "false"), s.fire(e)
                },
                resetFeature: function(e) {
                    o.removeItem(this.force_prefix + e), s.fire(e)
                },
                onFeaturesStateChanged: function() {
                    return s
                }
            }, TradingView.isFeatureEnabled = function(e) {
                function t(e) {
                    try {
                        var t = i(e + function() {
                            if (window.user && window.user.id) return window.user.id;
                            var e = o.getItem("featuretoggle_seed");
                            return null !== e || (e = Math.floor(1e6 * Math.random()), o.setItem("featuretoggle_seed", e)), e
                        }());
                        return new DataView(t).getUint32(0, !0) / 4294967296
                    } catch (e) {
                        return .5
                    }
                }

                function n(r) {
                    return !("local" !== window.environment || ! function(e) {
                        var t = new RegExp("broker_[A-Z]+[a-zA-Z0-9_]+_dev", "g"),
                            r = new RegExp("hide_[A-Z]+[a-zA-Z0-9_]+_on_ios", "g"),
                            o = new RegExp("hide_[A-Z]+[a-zA-Z0-9_]+_on_android", "g"),
                            n = new RegExp("hide_[A-Z]+[a-zA-Z0-9_]+_on_mobile_web", "g");
                        return -1 === ["broker_FXCM_token_v2", "broker_TRADESTATION_V3", "broker_TRADOVATE_dev", "black_friday_mainpage", "black_friday_popup", "datawindow", "trading-fast-renew-oauth-token", "switching_trial_year_to_month_disabled", "switching_year_to_month_disabled", "default_year_billing_cycle_switcher", "marketing-analytics", "google-ads", "visible_address_fields_by_default", "slow-support-warning", "hide-trading-floating-toolbar", "tvcoins_donations", "save-short-streams", "details_disable_bid_ask", "vat_disabled", "pro_plan_upgrades_disabled", "pro_plan_downgrades_disabled", "unit_conversion", "disable_recaptcha_on_signup", "braintree-order-one-click-dropdown", "braintree-trial-implementation", "braintree-gopro-in-order-dialog", "braintree-apple-pay", "braintree-google-pay", "braintree-apple-pay-trial", "braintree-google-pay-trial", "hide_gopro_popup_upgrade_button", "yandex_metric_enabled", "broker_id_session", "remove_line_tools_from_content", "do_not_save_shared_line_tools_to_charts", "save_shared_line_tools", "chart_storage_with_broker_name", "do_not_invalidate_chart_on_changing_line_tools", "autosave_line_tools_immediately", "log_removing_line_tools_group", "oanda-european-accounts-warning", "mobile_show_bottom_panel", "disable_save_settings", "desktop_version_notification_enabled", "paperrest_2fa", "paperrest_preview", "favorites-in-broker-dropdown", "streams_stats_profile", "hide_ecomonic_events", "aggregating_page_pings", "mobile_trading_web", "mobile_trading_ios", "mobile_trading_android", "hide_real_brokers_on_mobile", "percentage_values_for_percentage_scale", "hide_ranges_label_colors", "disable_user_specific_encryption", "remove_scale_settings_from_menu", "enable_deep_history_backtesting", "show_checkbox_of_house_rules_to_idea_and_script", "disable_phone_verification_sms"].indexOf(e) && -1 === e.indexOf("-maintenance") && !1 === t.test(e) && !1 === r.test(e) && !1 === o.test(e) && !1 === n.test(e)
                    }(r)) || (!e[r] || -1 !== e[r]) && (!!("true" === o.getItem(TradingView.FeatureToggle.force_prefix + r) || window.is_authenticated && "undefined" != typeof user && user.settings && "true" === user.settings[TradingView.FeatureToggle.force_prefix + r]) || !("false" === o.getItem(TradingView.FeatureToggle.force_prefix + r) || window.is_authenticated && "undefined" != typeof user && user.settings && "false" === user.settings[TradingView.FeatureToggle.force_prefix + r]) && (!!e[r] && (1 === e[r] || t(r) <= e[r])))
                }
                return TradingView.onWidget() || Promise.all([r.e(4516), r.e(61959), r.e(34604)]).then(r.t.bind(r, 4516, 23)).then(t => {
                    t.on("featuretoggle", (function(t) {
                        var r = n(t.name);
                        e[t.name] = t.state, r !== n(t.name) && s.fire(t.name)
                    }))
                }), n
            }(window.featureToggleState || {}), t.FeatureToggle = TradingView.FeatureToggle, t.isFeatureEnabled = TradingView.isFeatureEnabled, t.onFeaturesStateChanged = TradingView.FeatureToggle.onFeaturesStateChanged.bind(TradingView.FeatureToggle)
        },
        88001: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                unsubscribe: () => l,
                on: () => c,
                subscribe: () => u,
                subscribeToAll: () => d,
                emit: () => h,
                emitOnce: () => p
            });
            var o = r(96276),
                n = r.n(o);
            const i = {},
                s = [],
                a = {};

            function l(e, t, r) {
                i[e].unsubscribe(r, t)
            }

            function c(e, t, r) {
                u(e, t, r)
            }

            function u(e, t, r, o) {
                i.hasOwnProperty(e) || (i[e] = new(n())),
                    a[e] ? t.call(r) : i[e].subscribe(r, t, o)
            }

            function d(e) {
                s.push(e)
            }

            function h(e, ...t) {
                const r = [e].concat(t);
                s.forEach(e => {
                    e.apply(null, r)
                }), i.hasOwnProperty(e) && i[e].fire.apply(i[e], t)
            }

            function p(e) {
                a[e] && console.warn(`Something went wrong: emitOnce called multiple times with same event (${e})`), a[e] = !0, h.apply(null, arguments)
            }
        },
        8479: (e, t, r) => {
            "use strict";
            r.d(t, {
                HammerJSLoader: () => o
            });
            class o extends class {
                constructor() {
                    this._retries = 5, this._cache = null, this._tryLoad = e => {
                        this._retries = this._retries - 1;
                        this._startLoading().then(e, 0 !== this._retries ? () => setTimeout(() => this._tryLoad(e), 3e3) : void 0)
                    }
                }
                load() {
                    return this._cache || (this._cache = new Promise(this._tryLoad)), this._cache
                }
            } {
                _startLoading() {
                    return Promise.all([r.e(50840), r.e(42377)]).then(r.bind(r, 72814)).then(e => e.HammerJS)
                }
            }
        },
        26083: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                Modifiers: () => o.Modifiers,
                createGroup: () => h,
                pressedKeys: () => d,
                registerWindow: () => p,
                unregisterWindow: () => f
            });
            var o = r(11877),
                n = r(20887),
                i = r(65066),
                s = r.n(i);
            var a = r(29098);
            class l {
                constructor(e, t) {
                    this._group = e, this.hotkey = t.hotkey, this.handler = t.handler, this.desc = t.desc, this.element = t.element || null, t.isDisabled ? "function" == typeof t.isDisabled ? this.isDisabled = t.isDisabled : this.isDisabled = () => !0 : this.isDisabled = () => !1
                }
                destroy() {
                    this._group && (this._group.remove(this), this._group = null)
                }
            }
            class c {
                constructor(e, t) {
                    this._actions = [], this._manager = e, this.modal = !(!t || !t.modal), t && (this.desc = t.desc), t && t.isDisabled ? "function" == typeof t.isDisabled ? this.isDisabled = t.isDisabled : this.isDisabled = () => !0 : this.isDisabled = () => !1, this._manager.registerGroup(this)
                }
                add(e) {
                    const t = new l(this, e);
                    return this._actions.push(t), t
                }
                remove(e) {
                    for (let t = this._actions.length; t-- > 0;) this._actions[t] === e && this._actions.splice(t, 1)
                }
                handleHotkey(e, t) {
                    for (let r = this._actions.length; r-- > 0;) {
                        const n = this._actions[r];
                        if (n.hotkey === e && ((!n.element || t.target && n.element.contains(t.target)) && !n.isDisabled())) return n.handler(t), t.preventDefault(), (0, a.trackEvent)("Keyboard Shortcuts", (0, o.humanReadableHash)(e)), !0
                    }
                    return !1
                }
                promote() {
                    this._manager.promoteGroup(this)
                }
                destroy() {
                    this._actions.length = 0, this._manager.unregisterGroup(this)
                }
            }
            const u = new class {
                    constructor() {
                        this._groups = [], this._pressedKeys = new(s())(0), this._keyDownListener = e => {
                            if (e.defaultPrevented) return;
                            const t = (0, o.hashFromEvent)(e);
                            if (this._pressedKeys.setValue(t), !(0, n.isNativeUIInteraction)(t, e.target))
                                for (let r = this._groups.length; r-- > 0;) {
                                    const o = this._groups[r];
                                    if (!o.isDisabled()) {
                                        if (o.handleHotkey(t, e)) return;
                                        if (o.modal) return
                                    }
                                }
                        }, this._keyUpListener = e => {
                            const t = (0, o.hashFromEvent)(e);
                            this._pressedKeys.setValue(t)
                        }, this._blurEvent = () => {
                            this._pressedKeys.setValue(0)
                        }, this._mouseEvent = e => {
                            const t = (0, o.modifiersFromEvent)(e),
                                r = 255 & this._pressedKeys.value();
                            this._pressedKeys.setValue(t | r)
                        }
                    }
                    listen(e) {
                        e.addEventListener("keydown", this._keyDownListener), e.addEventListener("keyup", this._keyUpListener), e.addEventListener("blur", this._blurEvent), e.addEventListener("mousemove", this._mouseEvent)
                    }
                    unlisten(e) {
                        e.removeEventListener("keydown", this._keyDownListener),
                            e.removeEventListener("keyup", this._keyUpListener), e.removeEventListener("blur", this._blurEvent), e.removeEventListener("mousemove", this._mouseEvent)
                    }
                    registerGroup(e) {
                        this._groups.push(e)
                    }
                    unregisterGroup(e) {
                        for (let t = this._groups.length; t--;) this._groups[t] === e && this._groups.splice(t, 1)
                    }
                    promoteGroup(e) {
                        let t = this._groups.length - 1;
                        for (let r = this._groups.length; r--;) {
                            if (this._groups[r] === e) return void(r !== t && (this._groups.splice(r, 1), this._groups.splice(t, 0, e)));
                            this._groups[r].modal && (t = r - 1)
                        }
                    }
                    pressedKeys() {
                        return this._pressedKeys
                    }
                },
                d = u.pressedKeys();

            function h(e) {
                return new c(u, e)
            }

            function p(e) {
                u.listen(e)
            }

            function f(e) {
                u.unlisten(e)
            }
            p(window)
        },
        11877: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                isMacKeyboard: () => n,
                Modifiers: () => i,
                modifiersFromEvent: () => s,
                hashFromEvent: () => a,
                hashShiftPlusEnter: () => l,
                humanReadableModifiers: () => c,
                humanReadableHash: () => d
            });
            var o = r(68724);
            const n = (0, o.isMac)() || o.CheckMobile.iOS();
            var i;

            function s(e) {
                let t = 0;
                return e.shiftKey && (t += 1024), e.altKey && (t += 512), e.ctrlKey && (t += 256), e.metaKey && (t += 2048), t
            }

            function a(e) {
                return s(e) | e.keyCode
            }! function(e) {
                e[e.None = 0] = "None", e[e.Alt = 512] = "Alt", e[e.Shift = 1024] = "Shift", e[e.Mod = n ? 2048 : 256] = "Mod", e[e.Control = 256] = "Control", e[e.Meta = 2048] = "Meta"
            }(i || (i = {}));
            const l = 1037;

            function c(e, t = !n) {
                let r = "";
                return 256 & e && (r += n ? "^" : "Ctrl", t && (r += " + ")), 512 & e && (r += n ? "⌥" : "Alt", t && (r += " + ")), 1024 & e && (r += n ? "⇧" : "Shift", t && (r += " + ")), 2048 & e && (r += n ? "⌘" : "Win", t && (r += " + ")), r
            }
            const u = {
                9: "⇥",
                13: "↵",
                27: "Esc",
                8: n ? "⌫" : "Backspace",
                32: "Space",
                35: "End",
                36: "Home",
                37: "←",
                38: "↑",
                39: "→",
                40: "↓",
                45: "Ins",
                46: "Del",
                188: ",",
                191: "/"
            };
            for (let e = 1; e <= 16; e++) u[e + 111] = "F" + e;

            function d(e) {
                let t = c(e);
                const r = 255 & e;
                return t += r in u ? u[r] : String.fromCharCode(r), t
            }
        },
        20887: (e, t, r) => {
            "use strict";
            r.d(t, {
                isTextEditingField: () => n,
                isNativeUIInteraction: () => i
            });
            var o = r(11877);

            function n(e) {
                if ("INPUT" === e.tagName) {
                    const t = e.type;
                    return "text" === t || "email" === t || "number" === t || "password" === t || "search" === t || "tel" === t || "url" === t
                }
                return "TEXTAREA" === e.tagName || e.isContentEditable
            }

            function i(e, t) {
                if (!t) return !1;
                const r = 255 & e;
                if (27 === r || r >>> 4 == 7) return !1;
                switch (e ^ r) {
                    case o.Modifiers.Alt:
                        return (38 === r || 40 === r) && "SELECT" === t.tagName || n(t);
                    case o.Modifiers.Alt + o.Modifiers.Shift:
                        return n(t);
                    case o.Modifiers.Mod:
                        if (67 === r || !o.isMacKeyboard && 45 === r) {
                            const e = t.ownerDocument && t.ownerDocument.getSelection();
                            if (e && !e.isCollapsed) return !0
                        }
                        return n(t);
                    case o.Modifiers.Mod + o.Modifiers.Shift:
                        return r >= 33 && r <= 40 && n(t);
                    case o.Modifiers.Shift:
                    case 0:
                        return !!(9 !== r || t.ownerDocument && t !== t.ownerDocument.body && t !== t.ownerDocument.documentElement) && ((13 === r || 32 === r || ! function(e) {
                            if ("BUTTON" === e.tagName) return !0;
                            if ("INPUT" === e.tagName) {
                                const t = e.type;
                                if ("submit" === t || "button" === t || "reset" === t || "checkbox" === t || "radio" === t) return !0
                            }
                            return !1
                        }(t)) && ("form" in t || t.isContentEditable))
                }
                return !1
            }
        },
        4346: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                updateInitData: () => s,
                getInitData: () => a,
                getFreshInitData: () => l,
                deleteField: () => c
            });
            var o = r(16282);
            const n = (0, r(87380).getLogger)("Common.InitData"),
                i = window.initData || {};

            function s() {
                window.initData && window.initData !== i && (Object.assign(i, window.initData), window.initData = i);
                const e = document.querySelectorAll('script[type="application/prs.init-data+json"]');
                for (let t = 0; t < e.length; t++) {
                    const r = e[t];
                    try {
                        const e = JSON.parse((0, o.ensureNotNull)(r.textContent));
                        Object.assign(i, e)
                    } catch (e) {
                        n.logWarn("Failed to parse initData element. " + e)
                    } finally {
                        (0, o.ensureNotNull)(r.parentNode).removeChild(r)
                    }
                }
            }

            function a() {
                return i
            }

            function l() {
                return s(), i
            }

            function c(e) {
                delete i[e]
            }
        },
        52946: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                Linking: () => g,
                linking: () => m
            });
            var o = r(16152),
                n = r(65066),
                i = r.n(n),
                s = r(18277),
                a = r(20554),
                l = r(87380),
                c = r(42098),
                u = r(4346),
                d = r(71073),
                h = r(5417);
            const p = (0, l.getLogger)("Linking");
            var f;
            ! function(e) {
                e[e.NotBound = 0] = "NotBound", e[e.BoundToWidget = 1] = "BoundToWidget", e[e.BoundToModel = 2] = "BoundToModel"
            }(f || (f = {}));
            class g {
                constructor() {
                    this._watchedSymbol = new(i()), this._seriesShortSymbol = new(i()), this._proSymbol = new(i()), this._watchedInterval = new(i()), this._watchedIntraday = new(i()), this._watchedSeconds = new(i()), this._watchedTicks = new(i()), this._watchedRange = new(i()), this._watchedSupportedResolutions = new(i()), this._watchedSupportedChartStyles = new(i())([]), this._symbolNamesList = new(i()), this._chartWidgetBindingState = f.NotBound, this._activeChartWidget = null, this._watchedSymbolListenerBound = this._watchedSymbolListener.bind(this), this._watchedIntervalListenerBound = this._watchedIntervalListener.bind(this), this._onSymbolLinkBound = this._onSymbolLink.bind(this), this._searchCharts = null, this._searchChartsLoadDebounced = null, this._selfEmit = !1, this._preventFeedBySymbol = !1, this._feedBySymbolDebounceCounter = 0
                }
                get symbol() {
                    return this._watchedSymbol
                }
                get proSymbol() {
                    return this._proSymbol
                }
                get symbolNamesList() {
                    return this._symbolNamesList
                }
                get seriesShortSymbol() {
                    return this._seriesShortSymbol.readonly()
                }
                get interval() {
                    return this._watchedInterval
                }
                get intraday() {
                    return this._watchedIntraday.readonly()
                }
                get seconds() {
                    return this._watchedSeconds.readonly()
                }
                get ticks() {
                    return this._watchedTicks.readonly()
                }
                get range() {
                    return this._watchedRange.readonly()
                }
                get supportedResolutions() {
                    return this._watchedSupportedResolutions.readonly()
                }
                get supportedChartStyles() {
                    return this._watchedSupportedChartStyles.readonly()
                }
                get preventFeedBySymbol() {
                    return this._preventFeedBySymbol
                }
                bindToChartWidget(e) {
                    if (this.unbindFromChartWidget(), this._activeChartWidget = e, e.hasModel()) return void this._onChartModelCreated(e.model());
                    e.modelCreated().subscribe(this, this._onChartModelCreated), this._chartWidgetBindingState = f.BoundToWidget;
                    const t = e.properties().childs().mainSeriesProperties.childs();
                    this._watchedSymbol.setValue(t.symbol.value()), this._watchedInterval.setValue(t.interval.value())
                }
                unbindFromChartWidget() {
                    switch (this._chartWidgetBindingState) {
                        case f.BoundToWidget:
                            if (!this._activeChartWidget) throw new Error("ChartWidget is undefined");
                            this._activeChartWidget.modelCreated().unsubscribe(this, this._onChartModelCreated);
                            break;
                        case f.BoundToModel:
                            this._symbolProperty().unsubscribe(this, this._onSymbolPropertyChange),
                                this._watchedSymbol.unsubscribe(this._watchedSymbolListenerBound), this._mainSeries().dataEvents().symbolResolved().unsubscribe(this, this._updateSeriesSymbolInfo), this._mainSeries().dataEvents().symbolError().unsubscribe(this, this._updateSeriesSymbolInfo), this._intervalProperty().unsubscribe(this, this._onIntervalPropertyChange), this._watchedInterval.unsubscribe(this._watchedIntervalListenerBound), delete this._watchedSymbol.hook, delete this._watchedSymbol.writeLock
                    }
                    this._activeChartWidget = null, this._chartWidgetBindingState = f.NotBound
                }
                getChartWidget() {
                    return this._activeChartWidget
                }
                bindToChartWidgetCollection(e) {
                    this._chartWidgetCollection = e, this.unbindFromChartWidget(), e.activeChartWidget.subscribe(e => {
                        this.unbindFromChartWidget(), this.bindToChartWidget(e)
                    }, {
                        callWithLast: !0
                    })
                }
                bindToSearchCharts(e) {
                    this.unbindFromSearchCharts(), this._searchCharts = e, e.onSearchBySymbol.subscribe(this, this._onSearchBySymbol), e.loadingSymbol.subscribe(e => {
                        !1 === e && (this._feedBySymbolDebounceCounter = 0)
                    }), this._watchedSymbol.subscribe(this._onSymbolLinkBound)
                }
                unbindFromSearchCharts() {
                    this._searchCharts && (this._searchCharts.onSearchBySymbol.unsubscribe(this, this._onSearchBySymbol), this._watchedSymbol.unsubscribe(this._onSymbolLinkBound), this._searchCharts = null)
                }
                setPreventFeedBySymbol(e) {
                    this._preventFeedBySymbol = e
                }
                _onSearchBySymbol(e) {
                    if (!e.resolved_symbol) throw new Error("no resolved_symbol");
                    this._selfEmit = !0, this._watchedSymbol.setValue(e.resolved_symbol), this._selfEmit = !1
                }
                _onSymbolLink(e) {
                    if (!this._selfEmit) {
                        if (!this._searchCharts) {
                            const e = "No search charts defined";
                            throw p.logError(e), new Error(e)
                        }
                        this._preventFeedBySymbol || this._loadSearchCharts(e)
                    }
                }
                _loadSearchCharts(e) {
                    if (!this._searchCharts) {
                        const e = "No search charts defined";
                        throw p.logError(e), new Error(e)
                    }
                    if (this._searchChartsLoadDebounced) return void(this._feedBySymbolDebounceCounter < 100 && (this._feedBySymbolDebounceCounter++, this._searchChartsLoadDebounced(e)));
                    const t = e => this._searchCharts ? (!0 === this._searchCharts.loadingSymbol.value() ? this._feedBySymbolDebounceCounter < 100 && (this._feedBySymbolDebounceCounter++, this._searchChartsLoadDebounced = (0, o.default)(t, 2e3), this._searchChartsLoadDebounced(e)) : this._searchChartsLoadDebounced = null, this._searchCharts.feedBySymbol.call(this._searchCharts, e)) : () => {};
                    !0 === this._searchCharts.loadingSymbol.value() ? this._feedBySymbolDebounceCounter < 100 && (this._feedBySymbolDebounceCounter++, this._searchChartsLoadDebounced = (0, o.default)(t, 2e3), this._searchChartsLoadDebounced(e)) : this._searchCharts.feedBySymbol(e)
                }
                _mainSeries() {
                    if (!this._activeChartWidget) throw new Error("ChartWidget is undefined");
                    return this._activeChartWidget.model().mainSeries()
                }
                _properties() {
                    return this._mainSeries().properties()
                }
                _symbolProperty() {
                    return this._properties().symbol
                }
                _intervalProperty() {
                    return this._properties().interval
                }
                _watchedSymbolListener(e) {
                    this._symbolProperty().value() !== e && (this._chartWidgetCollection.setSymbol(e), this._sendSnowplowAnalytics())
                }
                _sendSnowplowAnalytics() {
                    if (window.user.do_not_track) return;
                    const e = this._mainSeries(),
                        t = () => {
                            e.dataEvents().symbolResolved().unsubscribe(this, r)
                        },
                        r = r => {
                            (0, d.getTracker)().then(e => {
                                if (null === e) return;
                                const t = this._chartWidgetCollection.layout.value(),
                                    o = this._chartWidgetCollection.metaInfo.uid.value() || "";
                                e.trackChartSymbols(r.pro_name, r.type, t, o)
                            }), e.dataEvents().symbolError().unsubscribe(this, t)
                        };
                    e.dataEvents().symbolResolved().subscribe(this, r, !0), e.dataEvents().symbolError().subscribe(this, t, !0)
                }
                _onSymbolPropertyChange() {
                    const e = this._symbolProperty().value() !== this._watchedSymbol.value();
                    this._watchedSymbol.setValue(this._symbolProperty().value()), e && this._chartWidgetCollection.setSymbol(this._symbolProperty().value())
                }
                _onSymbolResolved(e) {
                    const t = this._mainSeries().symbolInfo();
                    t && this._applyValuesFromSymbolInfo(t)
                }
                _applyValuesFromSymbolInfo(e) {
                    const t = e.pro_name || s.enabled("trading_terminal") && (e.full_name || e.name) || "";
                    this._proSymbol.setValue(t), e.aliases && this._symbolNamesList.setValue(e.aliases)
                }
                _updateSeriesSymbolInfo() {
                    this._seriesShortSymbol.setValue(this._properties().shortName.value());
                    const e = this._mainSeries().symbolInfo();
                    if (e) {
                        this._applyValuesFromSymbolInfo(e);
                        let t = (0, h.allChartStyles)();
                        (0, a.isCloseBasedSymbol)(e) && (t = t.filter(e => (0, a.isSingleValueBasedStyle)(e))), this._watchedSupportedChartStyles.setValue(t), this._watchedIntraday.setValue(!!e.has_intraday), this._watchedSeconds.setValue(!!e.has_seconds), this._watchedTicks.setValue(!(0, a.isCloseBasedSymbol)(e) && !!e.has_ticks), this._watchedRange.setValue(!(0, a.isCloseBasedSymbol)(e))
                    } else this._watchedIntraday.deleteValue(), this._watchedSeconds.deleteValue(), this._watchedTicks.deleteValue(), this._watchedRange.deleteValue(), this._proSymbol.deleteValue()
                }
                _watchedIntervalListener(e) {
                    this._intervalProperty().value() !== e && this._chartWidgetCollection.setResolution(e)
                }
                _onIntervalPropertyChange() {
                    const e = this._intervalProperty().value() !== this._watchedInterval.value();
                    this._watchedInterval.setValue(this._intervalProperty().value()), e && this._chartWidgetCollection.setResolution(this._intervalProperty().value())
                }
                _onChartModelCreated(e) {
                    if (!this._activeChartWidget) throw new Error("ChartWidget is undefined");
                    this._chartWidgetBindingState = f.BoundToModel, this._activeChartWidget.modelCreated().unsubscribe(this, this._onChartModelCreated);
                    const t = this._symbolProperty();
                    t.subscribe(this, this._onSymbolPropertyChange), this._watchedSymbol.setValue(t.value()), this._watchedSymbol.subscribe(this._watchedSymbolListenerBound);
                    const r = this._mainSeries();
                    r.dataEvents().symbolResolved().subscribe(this, this._onSymbolResolved), this._watchedSymbol.hook = e => (r.symbolSameAsCurrent(e) && (e = r.symbol()), e), r.dataEvents().symbolResolved().subscribe(this, this._updateSeriesSymbolInfo), r.dataEvents().symbolError().subscribe(this, this._updateSeriesSymbolInfo), r.dataEvents().symbolNotPermitted().subscribe(this, this._updateSeriesSymbolInfo), r.dataEvents().symbolGroupNotPermitted().subscribe(this, this._updateSeriesSymbolInfo), this._updateSeriesSymbolInfo();
                    const o = this._intervalProperty();
                    o.subscribe(this, this._onIntervalPropertyChange), this._watchedInterval.setValue(o.value()),
                        this._watchedInterval.subscribe(this._watchedIntervalListenerBound), this._activeChartWidget.readOnly() && (this._watchedSymbol.writeLock = !0)
                }
            }
            const m = new g; {
                const e = (0, u.getFreshInitData)().symbolInfo,
                    t = e ? e.pro_symbol : c.getValue("editchart.model.symbol", window.DEFAULT_SYMBOL);
                m.symbol.setValue(t)
            }
            window.TradingViewApi || (window.TradingViewApi = {
                linking: m
            })
        },
        55119: (e, t, r) => {
            "use strict";
            const {
                getLogger: o
            } = r(87380), n = o("TVLocalStorage");
            var i = function() {
                try {
                    this.isAvailable = !0, this.localStorage = window.localStorage, this.localStorage.setItem("tvlocalstorage.available", "true")
                } catch (e) {
                    delete this.isAvailable, delete this.localStorage
                }
                this._updateLength();
                try {
                    this._report()
                } catch (e) {}
            };
            i.prototype._report = function() {
                if (this.isAvailable) {
                    const e = 10,
                        t = [];
                    for (let e = 0; e < this.localStorage.length; e++) {
                        const r = this.key(e);
                        t.push({
                            key: r,
                            length: String(this.getItem(r)).length
                        })
                    }
                    t.sort((e, t) => t.length - e.length);
                    const r = t.slice(0, e);
                    t.sort((e, t) => t.key.length - e.key.length);
                    const o = t.slice(0, e);
                    n.logNormal("Total amount of keys in Local Storage: " + this.length), n.logNormal(`Top ${e} keys with longest values: ${JSON.stringify(r)}`), n.logNormal(`Top ${e} longest key names: ${JSON.stringify(o)}`);
                    try {
                        navigator.storage.estimate().then(e => {
                            n.logNormal("Storage estimate: " + JSON.stringify(e))
                        })
                    } catch (e) {}
                }
            }, i.prototype.length = 0, i.prototype.isAvailable = !1, i.prototype.localStorage = {
                "tvlocalstorage.available": "false"
            }, i.prototype._updateLength = function() {
                if (this.isAvailable) this.length = this.localStorage.length;
                else {
                    var e, t = 0;
                    for (e in this.localStorage) this.localStorage.hasOwnProperty(e) && t++;
                    this.length = t
                }
            }, i.prototype.key = function(e) {
                return this.isAvailable ? this.localStorage.key(e) : Object.keys(this.localStorage)[e]
            }, i.prototype.getItem = function(e) {
                return this.isAvailable ? this.localStorage.getItem(e) : void 0 === this.localStorage[e] ? null : this.localStorage[e]
            }, i.prototype.setItem = function(e, t) {
                this.isAvailable ? this.localStorage.setItem(e, t) : this.localStorage[e] = t, this._updateLength()
            }, i.prototype.removeItem = function(e) {
                this.isAvailable ? this.localStorage.removeItem(e) : delete this.localStorage[e], this._updateLength()
            }, i.prototype.clear = function() {
                this.isAvailable ? this.localStorage.clear() : this.localStorage = {}, this._updateLength()
            };
            var s = function(e) {
                this.storage = e
            };
            s.prototype.getItem = function(e) {
                return Promise.resolve(this.storage.getItem(e))
            }, s.prototype.setItem = function(e, t) {
                return Promise.resolve(this.storage.setItem(e, t))
            }, window.TVLocalStorage = new i, window.TVLocalStorageAsync = new s(window.TVLocalStorage), e.exports = {
                TVLocalStorage: window.TVLocalStorage,
                TVLocalStorageAsync: window.TVLocalStorageAsync
            }
        },
        72777: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                LogoSize: () => o,
                LogoUrlResolver: () => s,
                getLogoUrlResolver: () => l
            });
            var o, n = r(16282),
                i = r(4346);
            ! function(e) {
                e[e.Medium = 0] = "Medium", e[e.Large = 1] = "Large"
            }(o || (o = {}));
            class s {
                constructor(e) {
                    (0, n.assert)("" !== e, "S3 base url must be a non-empty string"), this._baseUrl = e
                }
                getSymbolLogoUrl(e, t) {
                    switch ((0, n.assert)("" !== e, "logo id must be a non-empty string"), t) {
                        case o.Medium:
                            return this._baseUrl + (e + ".svg");
                        case o.Large:
                            return this._baseUrl + (e + "--big.svg")
                    }
                }
                getCountryFlagUrl(e, t) {
                    return this.getSymbolLogoUrl("country/" + e, t)
                }
                getCryptoLogoUrl(e, t) {
                    return this.getSymbolLogoUrl("crypto/" + e, t)
                }
                getProviderLogoUrl(e, t) {
                    return this.getSymbolLogoUrl("provider/" + e, t)
                }
            }
            let a;

            function l() {
                if (!a) {
                    const e = (0, i.getInitData)(),
                        t = e.settings ? e.settings.S3_LOGO_SERVICE_BASE_URL : "";
                    a = new s(t)
                }
                return a
            }
        },
        58988: (e, t, r) => {
            "use strict";
            r.d(t, {
                breakpoints: () => o,
                mobileFirstBreakpoints: () => n,
                mobileFirstLegacyBreakpoints: () => i
            });
            const o = {
                    desktop: 1 / 0,
                    desktopHd: 1919,
                    phone: 767,
                    "phone-vertical": 479,
                    tablet: 1019
                },
                n = {
                    base: 0,
                    "media-mf-phone-vertical": 320,
                    "media-mf-phone-landscape": 568,
                    "media-mf-tablet-vertical": 768,
                    "media-mf-tablet-landscape": 1024,
                    "media-mf-laptop": 1280,
                    "media-mf-desktop-medium": 1440,
                    "media-mf-desktop-large": 1920,
                    "media-mf-desktop-extra-large": 2560
                },
                i = {
                    "media-mf-legacy-phone-vertical": 330,
                    "media-mf-legacy-phone": 480,
                    "media-mf-legacy-notebook": 1020,
                    "media-mf-legacy-desktop-medium": 1480,
                    "media-mf-legacy-desktop": 1531
                }
        },
        51193: (e, t, r) => {
            "use strict";
            r.d(t, {
                getScrollbarWidth: () => o,
                matchMediaMinMax: () => n,
                getContentWidth: () => i,
                setStyle: () => s,
                getCSSProperty: () => a,
                getCSSPropertyNumericValue: () => l
            });
            const o = (() => {
                let e;
                return () => {
                    var t;
                    if (void 0 === e) {
                        const r = document.createElement("div"),
                            o = r.style;
                        o.visibility = "hidden", o.width = "100px", o.msOverflowStyle = "scrollbar", document.body.appendChild(r);
                        const n = r.offsetWidth;
                        r.style.overflow = "scroll";
                        const i = document.createElement("div");
                        i.style.width = "100%", r.appendChild(i);
                        const s = i.offsetWidth;
                        null === (t = r.parentNode) || void 0 === t || t.removeChild(r), e = n - s
                    }
                    return e
                }
            })();

            function n(e, t) {
                return t === 1 / 0 ? window.matchMedia(`(min-width: ${e}px)`) : window.matchMedia(`(min-width: ${e}px) and (max-width: ${t}px)`)
            }

            function i(e) {
                return l(e, "width") - l(e, "padding-left") - l(e, "padding-right")
            }

            function s(e, t, r) {
                null !== e && e.style.setProperty(t, r)
            }

            function a(e, t) {
                return getComputedStyle(e, null).getPropertyValue(t)
            }

            function l(e, t) {
                return parseInt(a(e, t))
            }
        },
        59091: (e, t, r) => {
            "use strict";
            r.d(t, {
                setFixedBodyState: () => a
            });
            var o = r(51193),
                n = r(1369);
            let i = 0,
                s = !1;

            function a(e) {
                const {
                    body: t
                } = document, r = t.querySelector(".widgetbar-wrap");
                if (e && 1 == ++i) {
                    const e = (0, o.getCSSProperty)(t, "overflow"),
                        n = (0, o.getCSSPropertyNumericValue)(t, "padding-right");
                    "hidden" !== e.toLowerCase() && t.scrollHeight > t.offsetHeight && ((0, o.setStyle)(r, "right", (0, o.getScrollbarWidth)() + "px"), t.style.paddingRight = n + (0, o.getScrollbarWidth)() + "px", s = !0), t.classList.add("i-no-scroll")
                } else if (!e && i > 0 && 0 == --i && (t.classList.remove("i-no-scroll"), s)) {
                    (0, o.setStyle)(r, "right", "0px");
                    let e = 0;
                    e = r ? (0, n.getWidgetBarPadding)((0, o.getContentWidth)(r)) : 0, t.scrollHeight <= t.clientHeight && (e -= (0, o.getScrollbarWidth)()), t.style.paddingRight = (e < 0 ? 0 : e) + "px", s = !1
                }
            }
        },
        40142: (e, t, r) => {
            "use strict";
            r.d(t, {
                isOnMobileAppPage: () => n,
                urlWithMobileAppParams: () => i
            });
            var o = r(32010);

            function n(e, t = !1) {
                const {
                    searchParams: r
                } = new URL(String(location)), n = o.get("tv_app") || "";
                let i = "true" === r.get("mobileapp_new"),
                    s = "true" === r.get("mobileapp");
                return t || (i || (i = ["android", "android_nps"].includes(n)), s || (s = "ios" === n)), !("new" !== e && "any" !== e || !i) || !("new" === e || !s)
            }

            function i(e) {
                if (n("new")) {
                    const t = new URL(e, location.href);
                    t.searchParams.set("mobileapp_new", "true"), e = t.toString()
                }
                if (n("old")) {
                    const t = new URL(e, location.href);
                    t.searchParams.set("mobileapp", "true"), e = t.toString()
                }
                return e
            }
        },
        65194: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                qaGlobals: () => o
            });
            const o = new class {
                constructor(e, t) {
                    this._test = e[t] = {}
                }
                provide(e, t) {
                    this._test[e] = t
                }
            }(window, "qaGlobals")
        },
        91496: (e, t, r) => {
            "use strict";
            r.d(t, {
                unwrap: () => n,
                html: () => i,
                contentHeight: () => s,
                outerHeight: () => a,
                outerWidth: () => l,
                offset: () => c,
                position: () => u
            });
            var o = r(16282);

            function n(e) {
                return e[0]
            }

            function i(e, t) {
                return void 0 === t || (null === t && (e.innerHTML = ""), "string" != typeof t && "number" != typeof t || (e.innerHTML = String(t))), e
            }

            function s(e) {
                const {
                    paddingTop: t,
                    paddingBottom: r
                } = window.getComputedStyle(e);
                return [t, r].reduce((e, t) => e - Number((t || "").replace("px", "")), e.clientHeight)
            }

            function a(e, t = !1) {
                const r = getComputedStyle(e),
                    o = [r.height];
                return "border-box" !== r.boxSizing && o.push(r.paddingTop, r.paddingBottom, r.borderTopWidth, r.borderBottomWidth), t && o.push(r.marginTop, r.marginBottom), o.reduce((e, t) => e + (parseFloat(t) || 0), 0)
            }

            function l(e, t = !1) {
                const r = getComputedStyle(e),
                    o = [r.width];
                return "border-box" !== r.boxSizing && o.push(r.paddingLeft, r.paddingRight, r.borderLeftWidth, r.borderRightWidth), t && o.push(r.marginLeft, r.marginRight), o.reduce((e, t) => e + (parseFloat(t) || 0), 0)
            }

            function c(e) {
                if (!e.getClientRects().length) return {
                    top: 0,
                    left: 0
                };
                const t = e.getBoundingClientRect(),
                    r = (0, o.ensureNotNull)(e.ownerDocument.defaultView);
                return {
                    top: t.top + r.pageYOffset,
                    left: t.left + r.pageXOffset
                }
            }

            function u(e) {
                const t = getComputedStyle(e);
                let r, o = {
                    top: 0,
                    left: 0
                };
                if ("fixed" === t.position) r = e.getBoundingClientRect();
                else {
                    r = c(e);
                    const t = e.ownerDocument;
                    let n = e.offsetParent || t.documentElement;
                    for (; n && (n === t.body || n === t.documentElement) && "static" === getComputedStyle(n).position;) n = n.parentElement;
                    n && n !== e && 1 === n.nodeType && (o = c(n), o.top += parseFloat(getComputedStyle(n).borderTopWidth), o.left += parseFloat(getComputedStyle(n).borderLeftWidth))
                }
                return {
                    top: r.top - o.top - parseFloat(t.marginTop),
                    left: r.left - o.left - parseFloat(t.marginLeft)
                }
            }
        },
        42098: (e, t, r) => {
            "use strict";
            e = r.nmd(e), r(68724);
            var o = r(85864).fetch,
                n = r(29412).regExpEscape,
                i = r(41962).TVXWindowEvents,
                s = r(55119).TVLocalStorage,
                a = r(96276),
                l = r(18277),
                c = r(98006).isFeatureEnabled,
                u = r(87380).getLogger("Lib.TVSettings"),
                d = ["s.tradingview.com", "betacdn.tradingview.com"],
                h = (l.enabled("use_localstorage_for_settings"), window.TVSettings = function() {
                    var e = !1,
                        t = null,
                        r = !1;

                    function p() {
                        return !(t || window.is_authenticated)
                    }
                    try {
                        e = !TradingView.onWidget() && parent && parent !== window && !!parent.IS_DEMO_PAGE
                    } catch (e) {}
                    if (e) {
                        var f = {
                                "widgetbar.layout-settings": {
                                    widgets: {},
                                    settings: {
                                        minimized: !0
                                    }
                                },
                                notShowMainWizard: !0
                            },
                            g = function(e, t, r) {
                                var o = f[e];
                                return null == o ? t : o
                            },
                            m = function() {};
                        return {
                            loaded: !1,
                            loadedModel: !1,
                            getValue: g,
                            getJSON: g,
                            getBool: g,
                            getFloat: g,
                            getInt: g,
                            setValue: m,
                            setJSON: m,
                            remove: m,
                            keys: function() {
                                return Object.keys(f)
                            },
                            keysMask: function() {
                                return []
                            },
                            sync: m,
                            onSync: {
                                subscribe: function() {}
                            }
                        }
                    }
                    var _ = 12e4;
                    "local" === window.environment && (_ = 5e3);
                    var v, b, y, w = TradingView.onWidget() ? "tradingview-widget" : "tradingview",
                        S = w + ".",
                        C = {},
                        k = [],
                        E = [/^widgetbar\.widget\.watchlist.+/, /.+quicks$/, /^widgetbar\.layout-settings$/, /^ChartSideToolbarWidget\.visible$/, /^onwidget\.watchlist$/, /^domepanel.visible$/, /^orderpanel.visible$/, /^chart\.favoriteDrawings$/, /^chart\.favoriteDrawingsPosition$/, /^loadChartDialog.favorites$/, /^ChartFavoriteDrawingToolbarWidget\.visible/, /^trading\.chart\.proterty$/, /^trading_floating_toolbar\.position$/, /^trading\.orderWidgetMode\./, /^symbolWatermark$/, /^pinereference\.size$/, /^pinereference\.position$/, /^hint\.+/, /^ChartDrawingToolbarWidget\.visible/];
                    const x = ["current_theme.name"];

                    function T(e) {
                        return S + e
                    }

                    function A(e) {
                        return e.substring(S.length)
                    }

                    function M(e, t) {
                        var r = C[e];
                        return null == r ? t : r
                    }

                    function L(e, t, r) {
                        r = r || {};
                        var o = "" + t;
                        return C[e] !== o && (C[e] = o, I(e)), r.forceFlush && !b && (b = setTimeout((function() {
                            b = void 0, D()
                        }), 10)), h
                    }

                    function P(e, t) {
                        return t = t || {}, null != C[e] && (delete C[e], I(e)), t.forceFlush && D(), h
                    }

                    function F() {
                        v = void 0, k.length && D()
                    }

                    function I(e) {
                        if (t) null == C[e] ? t.removeValue(e) : t.setValue(e, C[e]);
                        else if (p()) try {
                            null == C[e] ? s.removeItem(T(e)) : s.setItem(T(e), C[e])
                        } catch (e) {} else k.push(e), v || (v = setTimeout(F, _));
                        i.emit("settings", JSON.stringify({
                            key: e,
                            value: C[e]
                        }))
                    }

                    function D(e) {
                        if (!r && !y)
                            if (c("disable_save_settings")) u.logWarn("Settings flashing has been skipped because of disable_save_settings featuretoggle");
                            else if (!l.enabled("widget") && !p() && 0 !== k.length) {
                            var t = k;
                            k = [];
                            for (var n = {}, i = t.length; i--;) {
                                var s = t[i],
                                    a = C[s];
                                void 0 === a && (a = null), n[s] = a
                            }
                            var d = new FormData;
                            d.append("delta", JSON.stringify(n)), e && navigator.sendBeacon ? navigator.sendBeacon("/savesettings/", d) : o("/savesettings/", {
                                method: "POST",
                                credentials: "include",
                                body: d
                            }).then((function(r) {
                                if (r.ok || (k = k.concat(t)), [429, 503].includes(r.status)) {
                                    var o = 1e3 * +r.headers.get("retry-after") || 3e5;
                                    y = setTimeout(() => {
                                        y = void 0, D(e)
                                    }, o)
                                }
                            })).catch((function() {
                                k = k.concat(t)
                            }))
                        }
                    }

                    function O() {
                        return Object.keys(C)
                    }

                    function R(e) {
                        for (var t = 0; t < E.length; ++t)
                            if (E[t].exec(e)) return !0;
                        return !1
                    }

                    function B(e) {
                        return e.substring(0, S.length) === S
                    }

                    function N(e) {
                        C = {};
                        const t = 0 === Object.keys(e).length;
                        t || function(e) {
                                Object.keys(e).forEach((function(t) {
                                    C[t] = e[t] + ""
                                }))
                            }(e),
                            function(e) {
                                for (var t = s.length; t--;) {
                                    var r = s.key(t);
                                    r && B(r) && ((e || x.includes(A(r))) && L(A(r), s.getItem(r)), s.removeItem(r))
                                }
                            }(t)
                    }
                    i.on("settings", (function(e) {
                        var t = JSON.parse(e);
                        null == t.value ? delete C[t.key] : C[t.key] = t.value
                    }));
                    var $ = new a;
                    return document.addEventListener("visibilitychange", (function() {
                        "hidden" !== document.visibilityState && !0 !== document.hidden || D()
                    })), window.addEventListener("beforeunload", (function() {
                        D(!0)
                    })), {
                        loaded: !1,
                        loadedModel: !1,
                        getValue: M,
                        getJSON: function(e, t) {
                            var r = M(e, void 0);
                            if (null == r) return t;
                            try {
                                return JSON.parse(r)
                            } catch (r) {
                                return P(e), t
                            }
                        },
                        getBool: function(e, t) {
                            var r = M(e);
                            return null == r ? t : !(!r || "false" === r || 0 == +r)
                        },
                        getFloat: function(e, t, r) {
                            var o = M(e, void 0);
                            if (null == o) return t;
                            var n = parseFloat(o);
                            if (!isFinite(n)) throw new TypeError('"' + o + '" is not float (key: "' + e + '")');
                            return n
                        },
                        getInt: function(e, t, r) {
                            var o = M(e, void 0);
                            if (null == o) return t;
                            var n = parseInt(o, 10);
                            if (!isFinite(n)) throw new TypeError('"' + o + '" is not int (key: "' + e + '")');
                            return n
                        },
                        setValue: L,
                        setJSON: function(e, t, r) {
                            return L(e, JSON.stringify(t), r), h
                        },
                        remove: P,
                        keys: O,
                        keysMask: function(e, t) {
                            for (var r = O(), o = [], i = (e = new RegExp("^" + n(e).replace(/\\\*\\\*/gi, ".+").replace(/\\\*/gi, "[^.]+") + "$", "gi"), r.length - 1); i >= 0; i--) e.test(r[i]) && o.push(r[i]), e.lastIndex = 0;
                            return o
                        },
                        sync: function(e) {
                            null !== e ? (t ? N(t.initialSettings || {}) : p() ? (function() {
                                if (TradingView.onWidget() && d.includes(window.location.host))
                                    for (var e = s.length; e--;) {
                                        var t = s.key(e);
                                        if (0 === t.indexOf("tradingview.")) {
                                            var r = t.replace("tradingview.", w + ".");
                                            s.setItem(r, s.getItem(t)), s.removeItem(t)
                                        }
                                    }
                            }(), function() {
                                for (const e of x) C[e] && !s.getItem(T(e)) && s.setItem(T(e), C[e])
                            }(), function() {
                                C = {};
                                for (var e = !l.enabled("save_chart_properties_to_local_storage"), t = s.length; t--;) {
                                    var r = s.key(t);
                                    if (r && B(r)) {
                                        var o = r.substring(S.length);
                                        e && !R(o) || (C[o] = s.getItem(r))
                                    }
                                }
                            }()) : N(e || {}), $.fire()) : r = !0
                        },
                        onSync: $,
                        setSettingsAdapter: function(e) {
                            t = e
                        }
                    }
                }());
            setTimeout((function() {
                r.e(30362).then(r.bind(r, 98376)).then(e => {
                    e.clearOldSettings()
                })
            }), 3e4), e && e.exports && (e.exports = h)
        },
        74291: (e, t, r) => {
            "use strict";
            r.d(t, {
                isUserNeedSignAgreement: () => n,
                checkIfExchangeAvailable: () => i
            });
            r(68421);
            var o = r(72162);

            function n(e) {
                if (!(0, o.isIDCExchange)(e)) return !1;
                e = s(e);
                const t = window.pro,
                    r = t.getProduct(e);
                return void 0 !== r.idc_service_codes_delay && ((!Array.isArray(r.included_exchanges) || !r.included_exchanges.some(e => t.hasPackage(s(e)))) && ! function(e) {
                    const t = window.pro;
                    return t.hasPackage(e) || t.hasPackage(e + "_dly")
                }(e))
            }

            function i(e) {
                const t = window.pro;
                return new Promise(r => {
                    window.is_authenticated ? !t.getIDCExchanges(!0).length || t.isInvalidShopConf() ? t.updateShopConf().then(() => {
                        r(!n(e))
                    }).catch(() => {
                        r(!0)
                    }) : r(!n(e)) : r(!0)
                })
            }

            function s(e) {
                return e.startsWith("exchange-") ? e : "exchange-{0}".format(e.toLowerCase())
            }
        },
        72162: (e, t, r) => {
            "use strict";

            function o(e, t = !1) {
                if (e && e.startsWith("exchange-")) return function(e, t = !1) {
                    const r = window.pro,
                        o = r.getProduct(e);
                    return !!r.isProductDefined(o) && (t ? !!o.idc_service_codes_delay : !!o.idc_service_codes)
                }(e, t);
                const r = (e || "").toLowerCase();
                return window.pro.getIDCExchanges(t).includes(r)
            }
            r.d(t, {
                isIDCExchange: () => o
            })
        },
        71073: (e, t, r) => {
            "use strict";
            async function o() {
                if (!window.user || window.user.do_not_track) return null; {
                    const e = (await Promise.all([r.e(19110), r.e(24081)]).then(r.bind(r, 80686))).getTrackerInstance();
                    return e || null
                }
            }
            r.d(t, {
                getTracker: () => o
            })
        },
        44439: (e, t, r) => {
            "use strict";
            r.d(t, {
                syncUserData: () => c,
                syncUserConversionData: () => u
            });
            var o = r(87380),
                n = r(29098),
                i = r(85864);
            const s = (0, o.getLogger)("User.Sync");

            function a(e) {
                return `${e}_${window.user&&window.user.username||""}`
            }

            function l(e, t, r) {
                r !== window.user.pro_plan && (window.user.pro_plan = r, window.user.is_pro = Boolean(r), (0, n.trackEvent)("Sync User Data", "Different Pro Plan", a(e))), t !== window.is_authenticated && (window.is_authenticated = t, window.loginStateChange.fire(), (0, n.trackEvent)("Sync User Data", "Different Auth", a(e)))
            }
            async function c(e) {
                try {
                    const t = await r.e(90254).then(r.bind(r, 27358));
                    l(e, !0, (await t.getMe()).pro_plan)
                } catch (t) {
                    ! function(e, t) {
                        "not_authenticated" === t.type ? l(e, !1, void 0) : s.logError(t.message)
                    }(e, t)
                }
            }
            async function u(e) {
                const t = await (0, i.fetch)("/gopro/"),
                    r = await t.json();
                return l(e, r.is_authenticated, r.user.pro_plan), r
            }
        },
        10164: (e, t, r) => {
            "use strict";
            r.d(t, {
                telemetry: () => d
            });
            var o = r(96276),
                n = r.n(o),
                i = r(85864),
                s = r(68724),
                a = r(40142);
            r(65194);
            const l = (0, r(87380).getLogger)("Common.Telemetry"),
                c = {
                    default: 15e3,
                    site: 3e5
                },
                u = ["before_websocket_connection_time_frame", "websocket_connection_time_frame", "first_series_full_time_frame", "page_full_load_time_frame", "page_load_time_frame"];
            const d = new class {
                constructor() {
                    this.reportSent = new(n()), this.timeCounters = {
                        series: {
                            marks: []
                        },
                        study: {},
                        pine: {}
                    }, this._timeoutIds = {}, this._commonAdditionalData = {
                        cluster: null,
                        userId: "0"
                    }, this._reportStash = {}
                }
                setSessionInfo(e) {
                    const t = this._parseCluster(e);
                    null !== t && (this._commonAdditionalData.cluster = t)
                }
                sendReport(e, t, r) {
                    var o;
                    if (!this._isAbleToSendReport(t)) return;
                    const n = this._getSubserviceType(e),
                        i = this._getHost(e, n);
                    if (null !== i) {
                        if (r = void 0 === r ? {
                                count: 1
                            } : r, this._addReportToStash(r, t, i), !this._timeoutIds[e]) {
                            const t = null !== (o = c[e]) && void 0 !== o ? o : c.default;
                            this._timeoutIds[e] = setTimeout(this._sendTelemetryToService.bind(this, e, i), t)
                        }
                    } else l.logError(`Unable to get host for counter: ${t}, metric type: ${e}, serivce type: ${n}`)
                }
                sendChartReport(e, t, r = !0) {
                    this._sendServiceSpecifiedReport("charts", e, t, r)
                }
                sendLineToolsStorageReport(e, t, r = !0) {
                    this._sendServiceSpecifiedReport("line_tools_storage", e, t, r)
                }
                _sendServiceSpecifiedReport(e, t, r, o = !0) {
                    this._updateUserInfo(), r = void 0 === r ? {
                        count: 1
                    } : r, o && (r = this._appendCommonAdditionalInfo(r, ["cluster", "userId"])), this.sendReport(e, t, r)
                }
                _updateUserInfo() {
                    const e = "user" in window && "id" in window.user ? window.user.id : "0";
                    this._commonAdditionalData.userId = String(e)
                }
                _isAbleToSendReport(e) {
                    const t = window.TELEMETRY_HOSTS,
                        r = u.includes(e),
                        o = Boolean(window.TradingView.onChartPage || (0, s.onWidget)());
                    return t && (!r || o)
                }
                _sendTelemetryToService(e, t) {
                    if (this._reportStash.hasOwnProperty(t)) {
                        const e = this._cropParams(this._reportStash[t]),
                            r = this._renameAllParams(e),
                            o = {
                                event: "report_stash",
                                params: this._cleanAllParams(r)
                            };
                        l.logDebug(`Report to host: ${t}; stash: ${JSON.stringify(this._reportStash[t])}`), this.reportSent.fire(this._reportStash[t]), delete this._reportStash[t], (0, i.fetch)(t + "/report", {
                            method: "POST",
                            body: JSON.stringify(o)
                        })
                    }
                    this._timeoutIds[e] = null
                }
                _getHost(e, t) {
                    const r = window.TELEMETRY_HOSTS,
                        o = r[e] && r[e][t];
                    return Boolean(o) ? o : null
                }
                _getSubserviceType(e) {
                    if (!["charts", "site"].includes(e)) return "all";
                    let t = "free";
                    const r = window.user.is_pro;
                    return "charts" === e && (0, a.isOnMobileAppPage)("old") ? t = r ? "ios_pro" : "ios_free" : "charts" === e && (0, a.isOnMobileAppPage)("new") ? t = r ? "android_pro" : "android_free" : (0, s.onWidget)() ? t = "widget" : r && (t = "pro"), t
                }
                _parseCluster(e) {
                    let t;
                    try {
                        t = JSON.parse(e).session_id
                    } catch (e) {
                        return l.logError("Could not parse cluster id (session id)"), null
                    }
                    const r = /(.*@)(.*)/gi.exec(t);
                    return null !== r && r.length >= 3 ? r[2] : null
                }
                _appendCommonAdditionalInfo(e, t) {
                    return t.forEach(t => {
                        t in this._commonAdditionalData && (e.additional = e.additional || {}, e.additional[t] = this._commonAdditionalData[t])
                    }), e
                }
                _cropParams(e) {
                    var t;
                    for (const r in e) e.hasOwnProperty(r) && e[r].length > 1e3 && (e.too_much_metrics_frame = null !== (t = e.too_much_metrics_frame) && void 0 !== t ? t : [], e.too_much_metrics_frame.push({
                        value: e[r].length,
                        additional: {
                            event: r
                        }
                    }), delete e[r]);
                    return e
                }
                _renameAllParams(e) {
                    const t = {};
                    for (const r in e) e.hasOwnProperty(r) && (t[r] = [], e[r].forEach(e => {
                        t[r].push(this._renameEntryParams(e))
                    }));
                    return t
                }
                _renameEntryParams(e) {
                    const t = {
                        count: "c",
                        value: "v",
                        text: "t",
                        additional: "a"
                    };
                    return Object.keys(e).reduce((r, o) => (r[t[o]] = e[o], r), {})
                }
                _cleanAllParams(e) {
                    const t = {};
                    for (const r in e)
                        if (e.hasOwnProperty(r)) {
                            t[r] = [];
                            const o = {
                                c: 0
                            };
                            e[r].forEach(e => {
                                const n = this._cleanEntryParams(e),
                                    i = Object.keys(n).length;
                                1 === i && void 0 !== n.c ? o.c += n.c : i > 0 && t[r].push(n)
                            }), o.c > 0 && t[r].push(o), 0 === t[r].length && delete t[r]
                        }
                    return t
                }
                _cleanEntryParams(e) {
                    const t = Object.keys(e).reduce((t, r) => "c" !== r && "t" !== r || e[r] ? (t[r] = e[r], t) : t, {});
                    return "c" in t || "v" in t || "t" in t ? t : {}
                }
                _addReportToStash(e, t, r) {
                    r in this._reportStash || (this._reportStash[r] = {}), t in this._reportStash[r] || (this._reportStash[r][t] = []), Object.keys(e).length > 0 && this._reportStash[r][t].push(e)
                }
            }
        },
        29355: (e, t, r) => {
            "use strict";
            r.d(t, {
                saveTextFile: () => n,
                escapeCSVValue: () => l
            });
            var o = r(68724);

            function n(e, t, r = "text/plain") {
                const n = new Blob([t], {
                    type: r
                });
                if (o.CheckMobile.iOS()) {
                    const t = new FileReader;
                    return t.onload = () => {
                        t.result && i(e, t.result.toString())
                    }, void t.readAsDataURL(n)
                }
                const s = window.URL.createObjectURL(n);
                navigator.msSaveOrOpenBlob ? navigator.msSaveOrOpenBlob(n, e) : window.navigator.msSaveBlob ? window.navigator.msSaveBlob(n, e) : (i(e, s), window.URL.revokeObjectURL(s))
            }

            function i(e, t) {
                const r = document.createElement("a");
                r.style.display = "none", document.body.appendChild(r), r.href = t, r.download = e, r.click(), document.body.removeChild(r)
            }
            const s = /[",\r\n]/,
                a = /"/g;

            function l(e) {
                return s.test(e) ? `"${e.replace(a,'""')}"` : e
            }
        },
        59943: (e, t, r) => {
            "use strict";

            function o(e, t = window) {
                const r = "theme-" + e,
                    o = t.document.documentElement.classList;
                for (const e of Array.from(o)) e.startsWith("theme-") && e !== r && o.remove(e);
                o.add(r)
            }
            r.r(t), r.d(t, {
                applyTheme: () => o
            })
        },
        80380: (e, t, r) => {
            "use strict";
            r.d(t, {
                DEFAULT_THEME: () => o
            });
            const o = "light"
        },
        36570: (e, t, r) => {
            "use strict";
            r.d(t, {
                themes: () => l
            });
            var o = r(68026),
                n = r(8107);
            const i = JSON.parse('{"color-bg-primary":"color-cold-gray-850","color-bg-primary-hover":"color-cold-gray-800","color-bg-secondary":"color-cold-gray-900","color-bg-highlight":"color-cold-gray-900","color-bg-scroll-buttons":"color-cold-gray-800","color-legacy-bg-scroll-buttons":"color-cold-gray-550","color-legacy-bg-widget":"color-cold-gray-900","color-text-primary":"color-cold-gray-200","color-text-secondary":"color-cold-gray-500","color-text-tertiary":"color-cold-gray-400","color-text-disabled":"color-cold-gray-650","color-accent-content":"color-white","color-divider":"color-cold-gray-700","color-divider-hover":"color-cold-gray-800","color-divider-secondary":"color-cold-gray-800","color-box-shadow":"color-cold-gray-900","color-active-hover-text":"color-cold-gray-300","color-alert-text":"color-cold-gray-200","color-border":"color-cold-gray-750","color-border-chat-fields":"color-cold-gray-750","color-border-hover":"color-cold-gray-650","color-border-table":"color-cold-gray-800","color-brand":"color-tv-blue-500","color-brand-hover":"color-tv-blue-600","color-brand-active":"color-tv-blue-700","color-button-hover-bg":"color-cold-gray-850","color-chart-page-bg":"color-cold-gray-800","color-common-tooltip-bg":"color-cold-gray-750","color-danger":"color-ripe-red-600","color-danger-hover":"color-ripe-red-500","color-danger-active":"color-ripe-red-400","color-depthrenderer-fill-style":"color-cold-gray-150","color-depthrenderer-stroke-style":"color-cold-gray-650","color-disabled-border-and-color":"color-cold-gray-800","color-disabled-input":"color-cold-gray-750","color-empty-container-message":"color-cold-gray-500","color-highlight-new":"color-tv-blue-a800","color-icons":"color-cold-gray-500","color-input-bg":"color-cold-gray-800","color-input-textarea-readonly":"color-cold-gray-650","color-input-placeholder-text":"color-cold-gray-700","color-input-publish-bg":"color-cold-gray-900","color-item-active-blue":"color-tv-blue-a800","color-item-hover-active-bg":"color-cold-gray-800","color-item-hover-bg":"color-cold-gray-800","color-item-hover-blue":"color-tv-blue-a800","color-item-selected-blue":"color-tv-blue-a800","color-item-active-text":"color-cold-gray-200","color-item-active-bg":"color-tv-blue-500","color-link":"color-tv-blue-500","color-link-hover":"color-tv-blue-600","color-link-active":"color-tv-blue-700","color-list-item":"color-cold-gray-500","color-list-nth-child-bg":"color-cold-gray-850","color-news-highlight":"color-cold-gray-800","color-pane-bg":"color-cold-gray-900","color-pane-secondary-bg":"color-cold-gray-850","color-placeholder":"color-cold-gray-650","color-popup-menu-item-hover-bg":"color-cold-gray-800","color-popup-menu-separator":"color-cold-gray-700","color-row-hover-active-bg":"color-cold-gray-800","color-sb-scrollbar-body-bg":"color-cold-gray-650","color-screener-description":"color-cold-gray-200","color-section-separator-border":"color-cold-gray-750","color-search-button-hover":"color-cold-gray-700","color-separator-table-chat":"color-cold-gray-750","color-success":"color-minty-green-700","color-success-hover":"color-minty-green-600","color-success-active":"color-minty-green-500","color-tag-active-bg":"color-cold-gray-750","color-tag-hover-bg":"color-cold-gray-800","color-text-regular":"color-cold-gray-200","color-toolbar-button-text":"color-cold-gray-300","color-toolbar-button-text-hover":"color-cold-gray-300","color-toolbar-button-text-active":"color-tv-blue-500","color-toolbar-button-text-active-hover":"color-tv-blue-600","color-toolbar-button-background-hover":"color-cold-gray-800","color-toolbar-button-background-secondary-hover":"color-cold-gray-750","color-toolbar-toggle-button-background-active":"color-tv-blue-500","color-toolbar-toggle-button-background-active-hover":"color-tv-blue-600","color-toolbar-interactive-element-text-normal":"color-cold-gray-300","color-toolbar-interactive-element-text-hover":"color-cold-gray-250","color-toolbar-opened-element-bg":"color-cold-gray-800","color-tooltip-bg":"color-cold-gray-750","color-tv-button-checked":"color-cold-gray-500","color-tv-dialog-caption":"color-cold-gray-50","color-tv-dropdown-item-hover-bg":"color-cold-gray-800","color-underlined-text":"color-cold-gray-300","color-widget-pages-bg":"color-cold-gray-900","color-warning":"color-tan-orange-700","color-forex-icon":"color-white","color-list-item-active-bg":"color-tv-blue-500","color-list-item-hover-bg":"color-cold-gray-800","color-list-item-text":"color-cold-gray-200","color-price-axis-label-back":"color-cold-gray-800","color-price-axis-label-text":"color-cold-gray-500","color-price-axis-gear":"color-cold-gray-500","color-price-axis-gear-hover":"color-cold-gray-400","color-price-axis-highlight":"color-cold-gray-800","color-bid":"color-tv-blue-500","color-scroll-bg":"color-cold-gray-750","color-scroll-border":"color-cold-gray-850","color-widget-border":"color-cold-gray-800","color-scroll-buttons-arrow":"color-white","color-control-intent-default":"color-cold-gray-650","color-control-intent-success":"color-minty-green-600","color-control-intent-primary":"color-tv-blue-500","color-control-intent-warning":"color-tan-orange-500","color-control-intent-danger":"color-ripe-red-700","color-growing":"color-minty-green-600","color-falling":"color-ripe-red-600","color-pre-market":"color-tan-orange-600","color-pre-market-bg":"color-tan-orange-400","color-post-market":"color-tv-blue-500","color-post-market-bg":"color-tv-blue-400","color-market-open":"color-minty-green-500","color-market-open-bg":"color-minty-green-400","color-market-closed":"color-cold-gray-400","color-market-holiday":"color-cold-gray-400","color-invalid-symbol":"color-ripe-red-400","color-invalid-symbol-hover":"color-ripe-red-500","color-replay-mode":"color-tv-blue-500","color-replay-mode-icon":"color-tv-blue-50","color-replay-mode-hover":"color-tv-blue-600","color-notaccurate-mode":"color-berry-pink-700","color-notaccurate-mode-bg":"color-berry-pink-400","color-delay-mode":"color-tan-orange-700","color-delay-mode-bg":"color-tan-orange-400","color-eod-mode":"color-grapes-purple-700","color-eod-mode-bg":"color-grapes-purple-400","color-data-problem":"color-ripe-red-600","color-data-problem-bg":"color-ripe-red-400","color-data-problem-hover":"color-ripe-red-500","color-list-item-bg-highlighted":"color-tv-blue-a900","color-list-item-bg-selected":"color-tv-blue-a800","color-list-item-bg-highlighted-hover":"color-tv-blue-a800","color-list-item-bg-selected-hover":"color-tv-blue-a700","color-screener-header-bg":"color-cold-gray-850","color-screener-header-bg-hover":"color-cold-gray-800","color-overlay":"color-cold-gray-950","color-card-border":"color-cold-gray-700","color-card-border-hover":"color-cold-gray-600","color-background-special-primary":"color-black","color-stroke-special-primary":"color-cold-gray-800","color-selection-bg":"color-tv-blue-a700"}'),
                s = JSON.parse('{"color-toolbar-button-text-active":"color-seeking-alpha-brand"}');
            var a = r(50214);
            const l = {
                [o.StdTheme.Light]: {
                    name: o.StdTheme.Light,
                    label: () => (0, n.t)("Light", {
                        context: "colorThemeName"
                    }),
                    order: 2,
                    getThemedColor: e => (0, a.getHexColorByName)(e)
                },
                [o.StdTheme.Dark]: {
                    name: o.StdTheme.Dark,
                    label: () => (0, n.t)("Dark", {
                        context: "colorThemeName"
                    }),
                    order: 1,
                    getThemedColor: e => {
                        const t = i[e] || e;
                        return (0, a.getHexColorByName)(t)
                    }
                }
            };
            l.sa = {
                isPrivate: !0,
                noChartTheme: !0,
                name: "sa",
                getThemedColor: e => {
                    const t = s[e] || e;
                    return (0, a.getHexColorByName)(t)
                }
            }
        },
        68026: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                StdTheme: () => a.StdTheme,
                getStdChartTheme: () => u,
                getStdThemeNames: () => c,
                getThemeNameIfStdTheme: () => p,
                isStdTheme: () => h,
                translateThemeName: () => d
            });
            var o = r(8107),
                n = r(14563);
            const i = JSON.parse('{"content":{"chartProperties":{"scalesProperties":{"textColor":"#131722","lineColor":"rgba(42, 46, 57, 0.14)","backgroundColor":"#ffffff"},"paneProperties":{"vertGridProperties":{"color":"rgba(42, 46, 57, 0.06)"},"horzGridProperties":{"color":"rgba(42, 46, 57, 0.06)"},"crossHairProperties":{"color":"#9598A1"},"background":"#ffffff","backgroundGradientStartColor":"#ffffff","backgroundGradientEndColor":"#ffffff"}},"sessions":{"graphics":{"backgrounds":{"outOfSession":{"color":"#2962FF","transparency":92},"preMarket":{"color":"#FF9800","transparency":92},"postMarket":{"color":"#2962FF","transparency":92}},"vertlines":{"sessBreaks":{"color":"#4985e7","style":2,"width":1}}}},"mainSourceProperties":{"baseLineColor":"#B2B5BE","candleStyle":{"borderColor":"#378658","upColor":"#26a69a","wickColor":"#737375","wickUpColor":"#26a69a","wickDownColor":"#ef5350","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350"},"haStyle":{"borderColor":"#378658","upColor":"#26a69a","wickColor":"#737375","wickUpColor":"#26a69a","wickDownColor":"#ef5350","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350"},"barStyle":{"downColor":"#ef5350","upColor":"#26a69a"},"pnfStyle":{"downColor":"#ef5350","upColor":"#26a69a","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"},"baselineStyle":{"baselineColor":"rgba( 117, 134, 150, 1)","topFillColor1":"rgba( 38, 166, 154, 0.28)","topFillColor2":"rgba( 38, 166, 154, 0.05)","bottomFillColor1":"rgba( 239, 83, 80, 0.05)","bottomFillColor2":"rgba( 239, 83, 80, 0.28)","topLineColor":"rgba( 38, 166, 154, 1)","bottomLineColor":"rgba( 239, 83, 80, 1)"},"areaStyle":{"transparency":100,"color1":"rgba(41, 98, 255, 0.28)","color2":"#2962FF","linecolor":"#2962FF","linewidth":2,"linestyle":0},"renkoStyle":{"upColor":"#26a69a","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae","borderUpColorProjection":"#a9dcc3","borderDownColorProjection":"#f5a6ae","wickUpColor":"#26a69a","wickDownColor":"#ef5350"},"lineStyle":{"color":"#2962FF","linewidth":2,"linestyle":0},"kagiStyle":{"downColor":"#ef5350","upColor":"#26a69a","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"},"pbStyle":{"upColor":"#26a69a","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae","borderUpColorProjection":"#a9dcc3","borderDownColorProjection":"#f5a6ae"},"rangeStyle":{"upColor":"#26a69a","downColor":"#ef5350","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"}}}}'),
                s = JSON.parse('{"content":{"chartProperties":{"scalesProperties":{"textColor":"#B2B5BE","lineColor":"rgba(240, 243, 250, 0.12)","backgroundColor":"#ffffff"},"paneProperties":{"vertGridProperties":{"color":"rgba(240, 243, 250, 0.06)"},"horzGridProperties":{"color":"rgba(240, 243, 250, 0.06)"},"crossHairProperties":{"color":"#9598A1"},"background":"#131722","backgroundGradientStartColor":"#181C27","backgroundGradientEndColor":"#131722","backgroundType":"gradient"}},"sessions":{"graphics":{"backgrounds":{"outOfSession":{"color":"#2962FF","transparency":92},"preMarket":{"color":"#FF9800","transparency":92},"postMarket":{"color":"#2962FF","transparency":92}},"vertlines":{"sessBreaks":{"color":"#4985e7","style":2,"width":1}}}},"mainSourceProperties":{"baseLineColor":"#5d606b","candleStyle":{"borderColor":"#378658","upColor":"#26a69a","wickColor":"#B5B5B8","wickUpColor":"#26a69a","wickDownColor":"#ef5350","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350"},"haStyle":{"borderColor":"#378658","upColor":"#26a69a","wickColor":"#B5B5B8","wickUpColor":"#26a69a","wickDownColor":"#ef5350","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350"},"barStyle":{"downColor":"#ef5350","upColor":"#26a69a"},"pnfStyle":{"downColor":"#ef5350","upColor":"#26a69a","upColorProjection":"#336854","downColorProjection":"#7f323f"},"baselineStyle":{"baselineColor":"rgba( 117, 134, 150, 1)","topFillColor1":"rgba( 38, 166, 154, 0.28)","topFillColor2":"rgba( 38, 166, 154, 0.05)","bottomFillColor1":"rgba( 239, 83, 80, 0.05)","bottomFillColor2":"rgba( 239, 83, 80, 0.28)","topLineColor":"rgba( 38, 166, 154, 1)","bottomLineColor":"rgba( 239, 83, 80, 1)"},"areaStyle":{"transparency":100,"color1":"rgba(41, 98, 255, 0.28)","color2":"#2962FF","linecolor":"#2962FF","linewidth":2,"linestyle":0},"renkoStyle":{"upColor":"#26a69a","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350","upColorProjection":"#336854","downColorProjection":"#7f323f","borderUpColorProjection":"#336854","borderDownColorProjection":"#7f323f","wickUpColor":"#26a69a","wickDownColor":"#ef5350"},"lineStyle":{"color":"#2962FF","linewidth":2,"linestyle":0},"kagiStyle":{"downColor":"#ef5350","upColor":"#26a69a","upColorProjection":"#336854","downColorProjection":"#7f323f"},"pbStyle":{"upColor":"#26a69a","downColor":"#ef5350","borderUpColor":"#26a69a","borderDownColor":"#ef5350","upColorProjection":"#336854","downColorProjection":"#7f323f","borderUpColorProjection":"#336854","borderDownColorProjection":"#7f323f"},"rangeStyle":{"upColor":"#26a69a","downColor":"#ef5350","upColorProjection":"#336854","downColorProjection":"#7f323f"}}}}');
            var a = r(53321);

            function l() {
                return {
                    [a.StdTheme.Light]: JSON.parse(JSON.stringify(i)),
                    [a.StdTheme.Dark]: JSON.parse(JSON.stringify(s))
                }
            }

            function c() {
                return [a.StdTheme.Light, a.StdTheme.Dark]
            }

            function u(e) {
                return l()[e]
            }

            function d(e) {
                return {
                    [a.StdTheme.Light]: o.t("Light", {
                        context: "colorThemeName"
                    }),
                    [a.StdTheme.Dark]: o.t("Dark", {
                        context: "colorThemeName"
                    })
                }[e] || e
            }

            function h(e) {
                const t = l();
                return c().some(r => f(t[r], e))
            }

            function p(e) {
                const t = l(),
                    r = c();
                for (const o of r)
                    if (f(t[o], e)) return o;
                return null
            }

            function f(e, t) {
                let r = e.content === t.content;
                return function(e = {}, t) {
                    try {
                        ! function e(t, r, o) {
                            for (const n in t)
                                if (t.hasOwnProperty(n)) {
                                    const i = r.concat(n);
                                    if ("object" == typeof t[n]) e(t[n], i, o);
                                    else if (o(i, t[n])) throw new Error("exit")
                                }
                        }(e, [], t)
                    } catch (e) {
                        return
                    }
                }(e.content, (e, o) => {
                    const i = function(e, t = {}) {
                        let r = t;
                        for (let t = 0; t < e.length; t++) {
                            if (!r || "object" != typeof r) return;
                            r = r[e[t]]
                        }
                        if ("string" == typeof r || "number" == typeof r) return r;
                        return
                    }(e, t.content);
                    return r = function(e, t) {
                        if ("string" == typeof e && "string" == typeof t) try {
                            return (0, n.areEqualRgb)((0, n.parseRgb)(e), (0, n.parseRgb)(t))
                        } catch (r) {
                            return e === t
                        }
                        return e === t
                    }(o, i), !r
                }), r
            }
        },
        53321: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    StdTheme: () => o
                }),
                function(e) {
                    e.Light = "light", e.Dark = "dark"
                }(o || (o = {}))
        },
        97483: (e, t, r) => {
            "use strict";
            r.d(t, {
                getThemeFromUserSettings: () => n,
                saveThemeInUserSettings: () => i
            });
            var o = r(42098);

            function n() {
                return (0, o.getValue)("current_theme.name") || null
            }

            function i(e) {
                (0, o.setValue)("current_theme.name", e, {
                    forceFlush: !0
                })
            }
        },
        34698: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                DEFAULT_THEME: () => h.DEFAULT_THEME,
                extractThemeFromModel: () => I,
                getCurrentTheme: () => g,
                getStdTheme: () => E,
                getStdThemeNames: () => C,
                getStdThemedValue: () => x,
                getTheme: () => w,
                getThemeNames: () => S,
                getThemedColor: () => m,
                isPublicTheme: () => f,
                isStdTheme: () => F,
                isStdThemeName: () => k,
                isStdThemedDefaultValue: () => T,
                isThemeExist: () => L,
                loadTheme: () => _,
                removeTheme: () => M,
                restoreTheme: () => v,
                saveTheme: () => A,
                savedThemeName: () => b,
                syncTheme: () => y,
                themes: () => p.themes,
                translateStdThemeName: () => P
            });
            var o = r(14563),
                n = r(68981),
                i = r(97483),
                s = r(85864);
            const a = (0, r(87380).getLogger)("Themes.Provider");
            let l = null;

            function c(e) {
                return (0, s.fetch)("/theme/?themeName=" + encodeURIComponent(e), {
                    credentials: "include",
                    method: "GET"
                }).then(e => e.json()).then(e => {
                    const t = {};
                    return e.content && (t.content = JSON.parse(e.content)), t
                })
            }
            var u = r(68026),
                d = r(87479),
                h = r(80380),
                p = r(36570);

            function f(e) {
                return !e.isPrivate
            }

            function g() {
                return p.themes[d.watchedTheme.value()] || p.themes[h.DEFAULT_THEME]
            }

            function m(e) {
                return g().getThemedColor(e)
            }
            async function _(e, t, r, o, i = !0, s = !1, a = !1) {
                const l = await (t ? Promise.resolve(E(e)) : w(e));
                if (void 0 !== l.content) {
                    const u = !t;
                    a && (void 0 !== (c = l.content).chartProperties && (0, n.applyDefaultsOverrides)(c.chartProperties), void 0 !== c.mainSourceProperties && (0, n.applyDefaultsOverrides)(c.mainSourceProperties, void 0, !0, "mainSeriesProperties")), await o.applyTheme(l.content, u, r, e, t, i, s)
                }
                var c;
                return l
            }

            function v() {
                (0, d.setTheme)((0, i.getThemeFromUserSettings)() || h.DEFAULT_THEME)
            }

            function b() {
                return (0, i.getThemeFromUserSettings)()
            }

            function y() {
                (0,
                    i.saveThemeInUserSettings)(g().name)
            }

            function w(e) {
                return c(e)
            }

            function S() {
                return l || (0, s.fetch)("/themes/", {
                    credentials: "include",
                    method: "GET"
                }).then(e => (l = e.json(), l))
            }

            function C() {
                return u.getStdThemeNames()
            }

            function k(e) {
                return C().includes(e)
            }

            function E(e) {
                return u.getStdChartTheme(e) || {
                    content: void 0
                }
            }

            function x(e, t) {
                const r = t || g().name,
                    o = u.getStdChartTheme(r),
                    n = 0 !== e.length && e.split(".");
                return o && o.content && n ? n.reduce((e, t) => e[t], o.content) : null
            }

            function T(e, t, r) {
                const n = x(e, r);
                return null !== n && (0, o.areEqualRgba)((0, o.parseRgba)(n), (0, o.parseRgba)(String(t)))
            }

            function A(e, t) {
                return function(e, t) {
                    const r = new FormData;
                    return r.append("content", JSON.stringify(t)), r.append("name", e), l = null, (0, s.fetch)("/save-theme/", {
                        credentials: "include",
                        method: "POST",
                        body: r
                    }).then(e => e.json(), e => a.logError(e))
                }(e, t)
            }

            function M(e) {
                return function(e) {
                    const t = new FormData;
                    return t.append("name", e), l = null, (0, s.fetch)("/remove-theme/", {
                        credentials: "include",
                        method: "POST",
                        body: t
                    }).then(e => e.json(), e => a.logError(e))
                }(e)
            }

            function L(e) {
                return function(e) {
                    return c(e).then(e => Boolean(e.content))
                }(e)
            }

            function P(e) {
                return u.translateThemeName(e)
            }

            function F(e) {
                return u.isStdTheme(e)
            }

            function I(e) {
                return {
                    content: {
                        chartProperties: {
                            paneProperties: e.model().properties().childs().paneProperties.state(),
                            scalesProperties: e.model().properties().childs().scalesProperties.state()
                        },
                        sessions: e.model().sessions().properties().state(),
                        mainSourceProperties: e.model().mainSeries().properties().state()
                    }
                }
            }
        },
        87479: (e, t, r) => {
            "use strict";
            r.r(t), r.d(t, {
                watchedTheme: () => s,
                setTheme: () => a
            });
            var o = r(65066),
                n = r.n(o),
                i = r(59943);
            const s = new(n());

            function a(e) {
                s.setValue(e)
            }
            s.subscribe(e => {
                (0, i.applyTheme)(e, window)
            })
        },
        29098: (e, t, r) => {
            "use strict";
            r.d(t, {
                trackEvent: () => l
            });
            var o = r(88001),
                n = r(18277);
            const i = (0, r(87380).getLogger)("Common.TrackEvent"),
                s = [/Study_(Drawing)_(.*)/, /(Study)_(.*)@tv-basicstudies/, /(Study)_(.*)/, /(Chart Style) (.*)/];
            let a = !1;
            const l = (e, t, r) => {
                if (a) return;
                if (n.enabled("charting_library_base")) return void((e, t, r) => {
                    t = t || e || r || "";
                    let n = "";
                    for (let e = 0; e < s.length; e++) {
                        const r = t.match(s[e]);
                        if (r && 3 === r.length) {
                            t = r[1], n = r[2];
                            break
                        }
                    }(0, o.emit)(t.toLowerCase().replace(" ", "_"), {
                        category: e,
                        label: r,
                        value: n
                    })
                })(e, t, r);
                let l = (e ? e + ":" : "") + t;
                r && (l += " " + r), i.logNormal(l), n.enabled("widget") || !window._UNIT_TESTS && window.gtag && window.gtag("event", t, {
                    event_category: e,
                    event_label: r
                })
            };
            "undefined" != typeof window && (window.TradingView = window.TradingView || {}, window.TradingView.trackEvent = l)
        },
        41962: (e, t, r) => {
            "use strict";
            r.d(t, {
                TVXWindowEvents: () => s
            });
            r(68421);
            var o = r(87380),
                n = r(55119);
            const i = (0, o.getLogger)("XWindowEvents");
            var s;
            ! function(e) {
                const t = "tvxwevents.",
                    r = {};
                let o;
                window.BroadcastChannel ? (o = new BroadcastChannel("tvxwevents"), o.addEventListener("message", (function(e) {
                    const {
                        data: {
                            event: t,
                            value: o
                        }
                    } = e;
                    r[t] && r[t].forEach(e => {
                        e(o)
                    })
                })), function() {
                    const e = [],
                        r = performance.now();
                    for (let r = 0; r < n.TVLocalStorage.length; r++) {
                        const o = n.TVLocalStorage.key(r);
                        o.startsWith(t) && e.push(o)
                    }
                    const o = n.TVLocalStorage.length;
                    for (const t of e) n.TVLocalStorage.removeItem(t);
                    const s = performance.now() - r;
                    i.logNormal("Total keys amount in local storage on operation start: " + o), i.logNormal("Keys amount in local storage to be deleted: " + e.length), i.logNormal("Keys to be deleted from local storage: " + JSON.stringify(e)), i.logNormal(`Removing keys from local storage took ${s} ms`)
                }()) : window.addEventListener("storage", (function(e) {
                    const {
                        newValue: o,
                        key: i
                    } = e;
                    if (null === o || !i || !i.startsWith(t)) return;
                    const s = i.substring(t.length);
                    r[s] && r[s].forEach(t => {
                        t(e.newValue)
                    });
                    n.TVLocalStorage.removeItem(i)
                })), e.on = function(e, t) {
                    r[e] || (r[e] = []), r[e].push(t)
                }, e.off = function(e, t) {
                    if (!r[e]) return;
                    const o = r[e].indexOf(t); - 1 !== o && (1 === r[e].length ? delete r[e] : r[e].splice(o, 1))
                }, e.emit = function(e, r = Date.now()) {
                    try {
                        o ? o.postMessage({
                            event: e,
                            value: r
                        }) : n.TVLocalStorage.setItem(t + e, r.toString())
                    } catch (e) {
                        i.logError(e.message)
                    }
                }
            }(s || (s = {}))
        },
        15233: (e, t, r) => {
            "use strict";
            r.d(t, {
                DialogBreakpoints: () => n
            });
            var o = r(32455);
            const n = {
                SmallHeight: o["small-height-breakpoint"],
                TabletSmall: o["tablet-small-breakpoint"],
                TabletNormal: o["tablet-normal-breakpoint"]
            }
        },
        80357: (e, t, r) => {
            "use strict";
            r.d(t, {
                isDetailsReady: () => n
            });
            var o = r(65066);
            const n = new(r.n(o)())(!1)
        },
        49860: (e, t, r) => {
            "use strict";
            r.d(t, {
                switchDetailsViewMode: () => s
            });
            var o = r(67030),
                n = r(80357);
            let i = null;

            function s(e, t, r = !1) {
                i && n.isDetailsReady.unsubscribe(i), i = n => {
                    var i, s, a;
                    if (!n) return;
                    const l = null === (a = null === (s = null === (i = null === window || void 0 === window ? void 0 : window.widgetbar) || void 0 === i ? void 0 : i.layout) || void 0 === s ? void 0 : s.getWidgetByType("detail")) || void 0 === a ? void 0 : a.widgetObject;
                    e === o.ViewMode.SymbolNotes ? l.switchViewMode(e, null != t ? t : null, r) : l.switchViewMode(e), r = !1
                }, n.isDetailsReady.subscribe(i, {
                    callWithLast: !0
                })
            }
        },
        67030: (e, t, r) => {
            "use strict";
            var o;
            r.d(t, {
                    ViewMode: () => o
                }),
                function(e) {
                    e.DetailsInfo = "detailsInfo", e.SymbolNotes = "symbolNotes"
                }(o || (o = {}))
        },
        79407: (e, t, r) => {
            "use strict";
            async function o(e, t) {
                const o = await Promise.all([r.e(23876), r.e(26822), r.e(64595), r.e(69756), r.e(88278), r.e(52273), r.e(5076), r.e(67491), r.e(34965), r.e(24261), r.e(81594), r.e(73935), r.e(74155), r.e(43871), r.e(40709), r.e(38890)]).then(r.bind(r, 41994));
                return o.showSimpleDialog(e, o.renameModule, t)
            }
            async function n(e, t) {
                const o = await Promise.all([r.e(23876), r.e(26822), r.e(64595), r.e(69756), r.e(88278), r.e(52273), r.e(5076), r.e(67491), r.e(34965), r.e(24261), r.e(81594), r.e(73935), r.e(74155), r.e(43871), r.e(40709), r.e(38890)]).then(r.bind(r, 41994));
                return o.showSimpleDialog(e, o.confirmModule, t)
            }
            async function i(e, t) {
                const o = await Promise.all([r.e(23876), r.e(26822), r.e(64595), r.e(69756), r.e(88278), r.e(52273), r.e(5076), r.e(67491), r.e(34965), r.e(24261), r.e(81594), r.e(73935), r.e(74155), r.e(43871), r.e(40709), r.e(38890)]).then(r.bind(r, 41994));
                return o.showSimpleDialog(e, o.warningModule, t)
            }
            r.r(t), r.d(t, {
                showRename: () => o,
                showConfirm: () => n,
                showWarning: () => i
            })
        },
        42491: (e, t, r) => {
            "use strict";
            r.d(t, {
                runOrSignIn: () => n
            });
            const o = r(18277).enabled("widget");

            function n(e, t) {
                o ? e() : window.runOrSignIn(e, t)
            }
        },
        70405: (e, t, r) => {
            "use strict";
            r.d(t, {
                anchors: () => n,
                makeAnchorable: () => i
            });
            var o = r(67294);
            const n = {
                bottom: {
                    attachment: {
                        horizontal: "left",
                        vertical: "top"
                    },
                    targetAttachment: {
                        horizontal: "left",
                        vertical: "bottom"
                    }
                },
                top: {
                    attachment: {
                        horizontal: "left",
                        vertical: "bottom"
                    },
                    targetAttachment: {
                        horizontal: "left",
                        vertical: "top"
                    }
                },
                topRight: {
                    attachment: {
                        horizontal: "right",
                        vertical: "bottom"
                    },
                    targetAttachment: {
                        horizontal: "right",
                        vertical: "top"
                    }
                },
                bottomRight: {
                    attachment: {
                        horizontal: "right",
                        vertical: "top"
                    },
                    targetAttachment: {
                        horizontal: "right",
                        vertical: "bottom"
                    }
                }
            };

            function i(e) {
                var t;
                return (t = class extends o.PureComponent {
                    render() {
                        const {
                            anchor: t = "bottom"
                        } = this.props;
                        return o.createElement(e, { ...this.props,
                            attachment: n[t].attachment,
                            targetAttachment: n[t].targetAttachment
                        })
                    }
                }).displayName = "Anchorable Component", t
            }
        },
        11019: (e, t, r) => {
            "use strict";
            r.d(t, {
                makeAttachable: () => i
            });
            var o = r(67294),
                n = r(73935);

            function i(e) {
                var t;
                return (t = class extends o.PureComponent {
                    constructor(e) {
                        super(e), this._getComponentInstance = e => {
                            this._instance = e
                        }, this._throttleCalcProps = () => {
                            requestAnimationFrame(() => this.setState(this._calcProps(this.props)))
                        }, this.state = this._getStateFromProps()
                    }
                    componentDidMount() {
                        this._instanceElem = n.findDOMNode(this._instance), this.props.attachOnce || this._subscribe(), this.setState(this._calcProps(this.props))
                    }
                    componentDidUpdate(e) {
                        e.children === this.props.children && e.top === this.props.top && e.left === this.props.left && e.width === this.props.width || this.setState(this._getStateFromProps(), () => this.setState(this._calcProps(this.props)))
                    }
                    render() {
                        return o.createElement("div", {
                            style: {
                                position: "absolute",
                                width: "100%",
                                top: 0,
                                left: 0
                            }
                        }, o.createElement(e, { ...this.props,
                            ref: this._getComponentInstance,
                            top: this.state.top,
                            bottom: void 0 !== this.state.bottom ? this.state.bottom : "auto",
                            right: void 0 !== this.state.right ? this.state.right : "auto",
                            left: this.state.left,
                            width: this.state.width,
                            maxWidth: this.state.maxWidth
                        }, this.props.children))
                    }
                    componentWillUnmount() {
                        this._unsubsribe()
                    }
                    _getStateFromProps() {
                        return {
                            bottom: this.props.bottom,
                            left: this.props.left,
                            right: this.props.right,
                            top: void 0 !== this.props.top ? this.props.top : -1e4,
                            width: this.props.inheritWidthFromTarget ? this.props.target && this.props.target.getBoundingClientRect().width : this.props.width,
                            maxWidth: this.props.inheritMaxWidthFromTarget && this.props.target && this.props.target.getBoundingClientRect().width
                        }
                    }
                    _calcProps(e) {
                        if (e.target && e.attachment && e.targetAttachment) {
                            const t = this._calcTargetProps(e.target, e.attachment, e.targetAttachment);
                            if (null === t) return {};
                            const {
                                width: r,
                                inheritWidthFromTarget: o = !0,
                                inheritMaxWidthFromTarget: n = !1
                            } = this.props, i = {
                                width: o ? t.width : r,
                                maxWidth: n ? t.width : void 0
                            };
                            switch (e.attachment.vertical) {
                                case "bottom":
                                case "middle":
                                    i.top = t.y;
                                    break;
                                default:
                                    i[e.attachment.vertical] = t.y
                            }
                            switch (e.attachment.horizontal) {
                                case "right":
                                case "center":
                                    i.left = t.x;
                                    break;
                                default:
                                    i[e.attachment.horizontal] = t.x
                            }
                            return i
                        }
                        return {}
                    }
                    _calcTargetProps(e, t, r) {
                        const o = e.getBoundingClientRect(),
                            n = this._instanceElem.getBoundingClientRect(),
                            i = "parent" === this.props.root ? this._getCoordsRelToParentEl(e, o) : this._getCoordsRelToDocument(o);
                        if (null === i) return null;
                        const s = this._getDimensions(n),
                            a = this._getDimensions(o).width;
                        let l = 0,
                            c = 0;
                        switch (t.vertical) {
                            case "top":
                                c = i[r.vertical];
                                break;
                            case "bottom":
                                c = i[r.vertical] - s.height;
                                break;
                            case "middle":
                                c = i[r.vertical] - s.height / 2
                        }
                        switch (t.horizontal) {
                            case "left":
                                l = i[r.horizontal];
                                break;
                            case "right":
                                l = i[r.horizontal] - s.width;
                                break;
                            case "center":
                                l = i[r.horizontal] - s.width / 2
                        }
                        return "number" == typeof this.props.attachmentOffsetY && (c += this.props.attachmentOffsetY), "number" == typeof this.props.attachmentOffsetX && (l += this.props.attachmentOffsetX), {
                            x: l,
                            y: c,
                            width: a
                        }
                    }
                    _getCoordsRelToDocument(e) {
                        const t = pageYOffset,
                            r = pageXOffset,
                            o = e.top + t,
                            n = e.bottom + t,
                            i = e.left + r;
                        return {
                            top: o,
                            bottom: n,
                            left: i,
                            right: e.right + r,
                            middle: (o + e.height) / 2,
                            center: i + e.width / 2
                        }
                    }
                    _getCoordsRelToParentEl(e, t) {
                        const r = e.offsetParent;
                        if (null === r) return null;
                        const o = r.scrollTop,
                            n = r.scrollLeft,
                            i = e.offsetTop + o,
                            s = e.offsetLeft + n,
                            a = t.width + s;
                        return {
                            top: i,
                            bottom: t.height + i,
                            left: s,
                            right: a,
                            middle: (i + t.height) / 2,
                            center: (s + t.width) / 2
                        }
                    }
                    _getDimensions(e) {
                        return {
                            height: e.height,
                            width: e.width
                        }
                    }
                    _subscribe() {
                        "document" === this.props.root && (window.addEventListener("scroll", this._throttleCalcProps, !0), window.addEventListener("resize", this._throttleCalcProps))
                    }
                    _unsubsribe() {
                        window.removeEventListener("scroll", this._throttleCalcProps, !0), window.removeEventListener("resize", this._throttleCalcProps)
                    }
                }).displayName = "Attachable Component", t
            }
        },
        95417: (e, t, r) => {
            "use strict";
            r.d(t, {
                getCircleLogoPairHtml: () => n
            });
            var o = r(41942);
            r(50879);

            function n(e) {
                const {
                    primaryLogoUrl: t,
                    secondaryLogoUrl: r,
                    size: n,
                    className: s
                } = e;
                return `<span class="${(0,o.getBlockStyleClasses)(n,s)}">\n\t\t\t${i({logoUrl:r,size:n})}\n\t\t\t${i({logoUrl:t,size:n})}\n\t\t</span>`
            }

            function i(e) {
                const {
                    logoUrl: t,
                    size: r
                } = e, n = (0, o.getLogoStyleClasses)(r, Boolean(t));
                return void 0 === t ? `<span class="${n}"></span>` : `<img class="${n}" src="${t}" alt="" />`
            }
        },
        41942: (e, t, r) => {
            "use strict";
            r.d(t, {
                getBlockStyleClasses: () => n,
                getLogoStyleClasses: () => i
            });
            var o = r(94184);

            function n(e, t) {
                return o("tv-circle-logo-pair", "tv-circle-logo-pair--" + e, t)
            }

            function i(e, t) {
                return o("tv-circle-logo-pair__logo", "tv-circle-logo-pair__logo--" + e, !t && "tv-circle-logo-pair__logo-empty")
            }
        },
        95496: (e, t, r) => {
            "use strict";
            r.d(t, {
                getCircleLogoHtml: () => n
            });
            var o = r(43096);
            r(75074);

            function n(e) {
                const t = (0, o.getStyleClasses)(e.size, e.className);
                return (0, o.isCircleLogoWithUrlProps)(e) ? `<img class="${t}" src="${e.logoUrl}" alt="">` : `<span class="${t}">${e.placeholderLetter||""}</span>`
            }
        },
        43096: (e, t, r) => {
            "use strict";
            r.d(t, {
                getStyleClasses: () => n,
                isCircleLogoWithUrlProps: () => i
            });
            var o = r(94184);

            function n(e, t) {
                return o("tv-circle-logo", "tv-circle-logo--" + e, t)
            }

            function i(e) {
                return "logoUrl" in e && void 0 !== e.logoUrl && 0 !== e.logoUrl.length
            }
        },
        22517: (e, t, r) => {
            "use strict";
            r.d(t, {
                ContextMenuContext: () => o
            });
            const o = r(67294).createContext(null)
        },
        3240: (e, t, r) => {
            "use strict";
            r.d(t, {
                Hint: () => a
            });
            var o = r(67294),
                n = r(94184),
                i = r.n(n),
                s = r(30160);

            function a(e) {
                const {
                    text: t = "",
                    className: r
                } = e;
                return o.createElement("span", {
                    className: i()(s.shortcut, r)
                }, t)
            }
        },
        94040: (e, t, r) => {
            "use strict";
            r.d(t, {
                ContextMenuItem: () => f
            });
            var o = r(67294),
                n = r(94184),
                i = r.n(n),
                s = r(30456),
                a = r(60371),
                l = r(38095),
                c = r(3240),
                u = r(15045),
                d = r(90584),
                h = r(70164),
                p = r(85848);

            function f(e) {
                const {
                    isTitle: t,
                    isLoading: r,
                    isHovered: n,
                    active: f,
                    checkable: g,
                    disabled: m,
                    checked: _,
                    icon: v,
                    iconChecked: b,
                    hint: y,
                    subItems: w,
                    label: S,
                    onClick: C,
                    children: k,
                    toolbox: E,
                    jsxLabel: x,
                    size: T = "normal"
                } = e, A = (0, o.useContext)(l.EmptyIconsContext), M = !!w.length;
                return r ? o.createElement("li", {
                    className: i()(p.item, p.loading, p[T])
                }, o.createElement(a.Loader, null)) : o.createElement("li", {
                    className: i()(p.item, p.interactive, t && p.title, m && p.disabled, n && p.hovered, f && p.active, A && p.emptyIcons, p[T]),
                    onClick: C
                }, o.createElement(s.Icon, {
                    className: i()(p.icon),
                    icon: function() {
                        if (g && _) return b || v || u;
                        return v
                    }()
                }), o.createElement("span", {
                    className: i()(p.label)
                }, null != x ? x : S), !!E && o.createElement(s.Icon, {
                    onClick: function() {
                        E && E.action()
                    },
                    className: p.remove,
                    icon: h
                }), !M && y && o.createElement(c.Hint, {
                    className: p.shortcut,
                    text: y
                }), M && o.createElement(s.Icon, {
                    className: p.nested,
                    icon: d
                }), k)
            }
        },
        22643: (e, t, r) => {
            "use strict";
            r.d(t, {
                ContextMenuList: () => h
            });
            var o = r(67294),
                n = r(81885);

            function i(e) {
                return o.createElement("li", {
                    className: n.separator
                })
            }
            var s = r(94040),
                a = r(94615),
                l = r(87553);

            function c(e) {
                const {
                    action: t
                } = e, [r, n] = (0, o.useState)(() => t.getState()), [i, c] = (0, o.useState)(!1), u = !!r.subItems.length, d = u && i;
                return (0, o.useEffect)(() => {
                    const e = () => n(t.getState());
                    return t.onUpdate().subscribe(null, e), () => {
                        t.onUpdate().unsubscribe(null, e)
                    }
                }, []), o.createElement(s.ContextMenuItem, { ...r,
                    onClick: function(e) {
                        if (r.disabled || e.defaultPrevented) return;
                        if (u) return void c(!0);
                        r.doNotCloseOnClick || (0, l.globalCloseMenu)();
                        t.execute()
                    },
                    isLoading: r.loading,
                    isHovered: d
                }, d && o.createElement(a.Drawer, {
                    onClose: p
                }, o.createElement(h, {
                    items: r.subItems,
                    parentAction: t,
                    closeNested: p
                })));

                function p(e) {
                    e && e.preventDefault(), c(!1)
                }
            }
            var u = r(38095),
                d = r(88267);

            function h(e) {
                const {
                    items: t,
                    parentAction: r,
                    closeNested: n
                } = e, a = !Boolean(r) && t.every(e => !Boolean("separator" !== e.type && (e.getState().icon || e.getState().checkable)));
                return o.createElement(u.EmptyIconsContext.Provider, {
                    value: a
                }, o.createElement("ul", null, r && o.createElement(o.Fragment, null, o.createElement(s.ContextMenuItem, {
                    label: r.getState().label,
                    isTitle: !0,
                    active: !1,
                    disabled: !1,
                    subItems: [],
                    checkable: !1,
                    checked: !1,
                    doNotCloseOnClick: !1,
                    icon: d,
                    onClick: n
                }), o.createElement(i, null)), t.map(e => {
                    switch (e.type) {
                        case "action":
                            return o.createElement(c, {
                                key: e.id,
                                action: e
                            });
                        case "separator":
                            return o.createElement(i, {
                                key: e.id
                            })
                    }
                })))
            }
        },
        38095: (e, t, r) => {
            "use strict";
            r.d(t, {
                EmptyIconsContext: () => o
            });
            const o = r(67294).createContext(!1)
        },
        48693: (e, t, r) => {
            "use strict";
            r.d(t, {
                DrawerManager: () => n,
                DrawerContext: () => i
            });
            var o = r(67294);
            class n extends o.PureComponent {
                constructor(e) {
                    super(e), this._addDrawer = () => {
                        const e = this.state.currentDrawer + 1;
                        return this.setState({
                            currentDrawer: e
                        }), e
                    }, this._removeDrawer = () => {
                        const e = this.state.currentDrawer - 1;
                        return this.setState({
                            currentDrawer: e
                        }), e
                    }, this.state = {
                        currentDrawer: 0
                    }
                }
                render() {
                    return o.createElement(i.Provider, {
                        value: {
                            addDrawer: this._addDrawer,
                            removeDrawer: this._removeDrawer,
                            currentDrawer: this.state.currentDrawer
                        }
                    }, this.props.children)
                }
            }
            const i = o.createContext(null)
        },
        94615: (e, t, r) => {
            "use strict";
            r.d(t, {
                Drawer: () => p
            });
            var o = r(67294),
                n = r(16282),
                i = r(94184),
                s = r(67891),
                a = r(59091),
                l = r(72625),
                c = r(48693),
                u = r(68724),
                d = r(69369),
                h = r(64526);

            function p(e) {
                const {
                    position: t = "Bottom",
                    onClose: r,
                    children: p,
                    className: f,
                    theme: g = h
                } = e, m = (0, n.ensureNotNull)((0, o.useContext)(c.DrawerContext)), [_, v] = (0, o.useState)(0), b = (0, o.useRef)(null), y = (0, o.useContext)(d.CloseDelegateContext);
                return (0, o.useEffect)(() => {
                    const e = (0, n.ensureNotNull)(b.current);
                    return e.focus({
                        preventScroll: !0
                    }), y.subscribe(m, r), (0, a.setFixedBodyState)(!0), u.CheckMobile.iOS() && (0, s.disableBodyScroll)(e), v(m.addDrawer()), () => {
                        y.unsubscribe(m, r);
                        const t = m.removeDrawer();
                        u.CheckMobile.iOS() && (0, s.enableBodyScroll)(e), 0 === t && (0, a.setFixedBodyState)(!1)
                    }
                }, []), o.createElement(l.Portal, null, o.createElement("div", {
                    className: i(h.wrap, h["position" + t])
                }, _ === m.currentDrawer && o.createElement("div", {
                    className: h.backdrop,
                    onClick: r
                }), o.createElement("div", {
                    className: i(h.drawer, g.drawer, h["position" + t], f),
                    ref: b,
                    tabIndex: -1,
                    "data-name": e["data-name"]
                }, p)))
            }
        },
        10485: (e, t, r) => {
            "use strict";
            r.d(t, {
                DropdownContainer: () => a
            });
            var o = r(67294),
                n = r(96741),
                i = r(94184),
                s = r(16282);
            class a extends o.PureComponent {
                constructor() {
                    super(...arguments), this._container = null, this._setContainerRef = e => {
                        "function" == typeof this.props.reference && this.props.reference(e), "object" == typeof this.props.reference && (this.props.reference.current = e), this._container = e
                    }
                }
                componentDidMount() {
                    this.props.onDropdownWheelNoPassive && this._addPassiveListenerOnWheel(this.props.onDropdownWheelNoPassive)
                }
                componentDidUpdate(e) {
                    this.props.onDropdownWheelNoPassive !== e.onDropdownWheelNoPassive && this._updatePassiveListenerOnWheel(e.onDropdownWheelNoPassive)
                }
                componentWillUnmount() {
                    this.props.onDropdownWheelNoPassive && this._removePassiveListenerOnWheel(this.props.onDropdownWheelNoPassive)
                }
                render() {
                    const {
                        shadow: e = "bottom",
                        children: t,
                        className: r
                    } = this.props, s = i(n.container, n[e], r), a = {
                        maxHeight: this.props.maxHeight
                    };
                    return o.createElement("div", {
                        ref: this._setContainerRef,
                        style: a,
                        className: s,
                        onTouchStart: this.props.onDropdownTouchStart,
                        onTouchMove: this.props.onDropdownTouchMove,
                        onTouchEnd: this.props.onDropdownTouchEnd,
                        onWheel: this.props.onDropdownWheel
                    }, t)
                }
                _updatePassiveListenerOnWheel(e) {
                    e && this._removePassiveListenerOnWheel(e), this.props.onDropdownWheelNoPassive && this._addPassiveListenerOnWheel(this.props.onDropdownWheelNoPassive)
                }
                _addPassiveListenerOnWheel(e) {
                    (0, s.ensureNotNull)(this._container).addEventListener("wheel", e, {
                        passive: !1
                    })
                }
                _removePassiveListenerOnWheel(e) {
                    (0, s.ensureNotNull)(this._container).removeEventListener("wheel", e)
                }
            }
        },
        38405: (e, t, r) => {
            "use strict";
            r.d(t, {
                DropdownList: () => f
            });
            var o = r(67294),
                n = r(87552),
                i = r(94184),
                s = r(44086),
                a = r(18088),
                l = r(91660),
                c = r(10485),
                u = r(70405);
            const d = (0, a.makeNavigateable)(s.List),
                h = (0, u.makeAnchorable)(l.Dropdown),
                p = {
                    top: "top",
                    bottom: "bottom",
                    topRight: "top"
                };
            class f extends o.PureComponent {
                render() {
                    const {
                        anchor: e = "bottom",
                        fontSize: t = 14,
                        root: r = "parent"
                    } = this.props, s = i(n.list, n[e]), {
                        dropdownClassName: a,
                        height: l,
                        ...u
                    } = this.props;
                    return o.createElement(h, { ...u,
                        className: a,
                        root: r
                    }, o.createElement(c.DropdownContainer, {
                        className: this.props.dropdownContainerClassName,
                        shadow: p[e],
                        maxHeight: this.props.maxHeight,
                        onDropdownTouchStart: this.props.onDropdownTouchStart ? this.props.onDropdownTouchStart : void 0,
                        onDropdownTouchMove: this.props.onDropdownTouchMove ? this.props.onDropdownTouchMove : void 0,
                        onDropdownTouchEnd: this.props.onDropdownTouchEnd ? this.props.onDropdownTouchEnd : void 0,
                        onDropdownWheelNoPassive: this.props.onDropdownWheelNoPassive ? this.props.onDropdownWheelNoPassive : void 0
                    }, o.createElement(d, { ...u,
                        width: this.props.width,
                        height: l,
                        className: this.props.className || s,
                        itemsClassName: this.props.itemsClassName || n.item,
                        selectedClassName: this.props.selectedClassName || n.selected,
                        fontSize: t,
                        reference: this.props.reference
                    })))
                }
            }
        },
        91660: (e, t, r) => {
            "use strict";
            r.d(t, {
                Dropdown: () => l
            });
            var o = r(67294),
                n = r(36982),
                i = r(11019),
                s = r(58871);
            class a extends o.PureComponent {
                render() {
                    const e = {
                        position: "absolute",
                        top: this.props.top,
                        width: this.props.width,
                        height: this.props.height,
                        bottom: this.props.bottom,
                        right: this.props.right,
                        left: this.props.left,
                        zIndex: this.props.zIndex
                    };
                    return o.createElement(n, {
                        onMeasure: this.props.onResize
                    }, o.createElement("div", {
                        className: this.props.className,
                        style: e,
                        ref: this.props.reference
                    }, this.props.children))
                }
            }
            a.displayName = "Dropdown Container";
            const l = (0, s.makeOverlapable)((0, i.makeAttachable)(a))
        },
        36493: (e, t, r) => {
            "use strict";
            r.d(t, {
                useOutsideEvent: () => i
            });
            var o = r(67294),
                n = r(76623);

            function i(e) {
                const {
                    click: t,
                    mouseDown: r,
                    touchEnd: i,
                    touchStart: s,
                    handler: a,
                    reference: l,
                    ownerDocument: c = document
                } = e, u = (0, o.useRef)(null), d = (0, o.useRef)(new CustomEvent("timestamp").timeStamp);
                return (0, o.useLayoutEffect)(() => {
                    const e = {
                            click: t,
                            mouseDown: r,
                            touchEnd: i,
                            touchStart: s
                        },
                        o = l ? l.current : u.current;
                    return (0, n.addOutsideEventListener)(d.current, o, a, c, e)
                }, [t, r, i, s, a]), l || u
            }
        },
        44086: (e, t, r) => {
            "use strict";
            r.d(t, {
                List: () => c
            });
            var o = r(67294),
                n = r(73935),
                i = r(36982),
                s = r(78433),
                a = r(94184);
            class l extends o.PureComponent {
                constructor(e) {
                    super(e)
                }
                render() {
                    return o.createElement("div", {
                        className: this.props.className,
                        onClick: this.props.onClick,
                        ref: this.props.reference
                    }, this.props.children)
                }
            }
            class c extends o.PureComponent {
                constructor(e) {
                    super(e)
                }
                render() {
                    const {
                        theme: e = s
                    } = this.props, t = a(e.list, {
                        [this.props.className]: Boolean(this.props.className)
                    }), {
                        fontSize: r = 13
                    } = this.props, n = {
                        bottom: this.props.bottom,
                        fontSize: r,
                        left: this.props.left,
                        height: this.props.height || "auto",
                        right: this.props.right,
                        top: this.props.top,
                        width: this.props.width,
                        zIndex: this.props.zIndex
                    };
                    return o.createElement(i, {
                        whitelist: ["height", "width"],
                        shouldMeasure: !!this.props.onMeasure,
                        onMeasure: this.props.onMeasure
                    }, o.createElement("div", {
                        className: t,
                        style: n,
                        ref: this.props.reference
                    }, this._wrapItems(this.props.items, this.props.selected)))
                }
                componentDidMount() {
                    if (this._el = n.findDOMNode(this), void 0 !== this.props.selected && this.props.shouldScrollIfNotVisible) {
                        const e = this._items[this.props.selected];
                        e && this._scrollIfNotVisible(e)
                    }
                }
                componentDidUpdate() {
                    if (void 0 !== this.props.selected && this.props.shouldScrollIfNotVisible) {
                        const e = this._items[this.props.selected];
                        e && this._scrollIfNotVisible(e)
                    }
                }
                _wrapItems(e = [], t) {
                    this._items = [];
                    const {
                        itemWrap: r = l,
                        theme: n = s
                    } = this.props, i = r;
                    return e.map((e, r) => {
                        const s = a(n.item, {
                            [this.props.itemsClassName]: Boolean(this.props.itemsClassName),
                            [this.props.selectedClassName]: t === r
                        });
                        return o.createElement(i, {
                            reference: t => {
                                t && this._items.push({
                                    elem: t,
                                    index: r,
                                    value: e
                                })
                            },
                            key: r,
                            onClick: () => this._onSelect(r),
                            className: s
                        }, e.elem)
                    })
                }
                _onSelect(e) {
                    this.props.onSelect && this.props.onSelect(e, this._items[e].value)
                }
                _scrollIfNotVisible(e) {
                    const t = this._el.scrollTop,
                        r = this._el.scrollTop + this._el.clientHeight,
                        o = e.elem.offsetTop,
                        n = o + e.elem.clientHeight;
                    o <= t ? e.elem.scrollIntoView(!0) : n >= r && e.elem.scrollIntoView(!1)
                }
            }
            c.defaultProps = {
                shouldScrollIfNotVisible: !0
            }
        },
        79405: (e, t, r) => {
            "use strict";
            r.d(t, {
                MatchMedia: () => n
            });
            var o = r(67294);
            class n extends o.PureComponent {
                constructor(e) {
                    super(e), this._handleChange = () => {
                        this.forceUpdate()
                    }, this.state = {
                        query: window.matchMedia(this.props.rule)
                    }
                }
                componentDidMount() {
                    this._subscribe(this.state.query)
                }
                componentDidUpdate(e, t) {
                    this.state.query !== t.query && (this._unsubscribe(t.query), this._subscribe(this.state.query))
                }
                componentWillUnmount() {
                    this._unsubscribe(this.state.query)
                }
                render() {
                    return this.props.children(this.state.query.matches)
                }
                static getDerivedStateFromProps(e, t) {
                    return e.rule !== t.query.media ? {
                        query: window.matchMedia(e.rule)
                    } : null
                }
                _subscribe(e) {
                    e.addListener(this._handleChange)
                }
                _unsubscribe(e) {
                    e.removeListener(this._handleChange)
                }
            }
        },
        87553: (e, t, r) => {
            "use strict";
            r.d(t, {
                globalCloseDelegate: () => n,
                globalCloseMenu: () => i
            });
            var o = r(96276);
            const n = new(r.n(o)());

            function i() {
                n.fire()
            }
        },
        18088: (e, t, r) => {
            "use strict";
            r.d(t, {
                makeNavigateable: () => n
            });
            var o = r(67294);

            function n(e) {
                var t;
                return (t = class extends o.PureComponent {
                    constructor(e) {
                        super(e), this._items = this.props.items
                    }
                    componentDidUpdate(e) {
                        if (e.command !== this.props.command && this.props.command) switch (this.props.command.name) {
                            case "next":
                                this._next();
                                break;
                            case "prev":
                                this._prev()
                        }
                        e.items !== this.props.items && (this._items = this.props.items)
                    }
                    render() {
                        return o.createElement(e, { ...this.props
                        }, this.props.children)
                    }
                    _next() {
                        const {
                            selected: e = -1
                        } = this.props, t = e + 1;
                        this._items.length - 1 >= t ? this._navigateTo(t) : this._navigateTo(0)
                    }
                    _prev() {
                        const {
                            selected: e = -1
                        } = this.props, t = e - 1, r = this._items.length - 1;
                        0 <= t ? this._navigateTo(t) : this._navigateTo(r)
                    }
                    _navigateTo(e) {
                        this.props.onNavigate && this.props.onNavigate(e, this._items[e])
                    }
                }).displayName = "Navigateable Component", t
            }
        },
        98618: (e, t, r) => {
            "use strict";
            r.d(t, {
                OutsideEvent: () => n
            });
            var o = r(36493);

            function n(e) {
                const {
                    children: t,
                    ...r
                } = e;
                return t((0, o.useOutsideEvent)(r))
            }
        },
        30976: (e, t, r) => {
            "use strict";
            r.d(t, {
                OverlapManager: () => i,
                getRootOverlapManager: () => a
            });
            var o = r(16282);
            class n {
                constructor() {
                    this._storage = []
                }
                add(e) {
                    this._storage.push(e)
                }
                remove(e) {
                    this._storage = this._storage.filter(t => e !== t)
                }
                has(e) {
                    return this._storage.includes(e)
                }
                getItems() {
                    return this._storage
                }
            }
            class i {
                constructor(e = document) {
                    this._storage = new n, this._windows = new Map, this._index = 0, this._document = e, this._container = e.createDocumentFragment()
                }
                setContainer(e) {
                    const t = this._container,
                        r = null === e ? this._document.createDocumentFragment() : e;
                    ! function(e, t) {
                        Array.from(e.childNodes).forEach(e => {
                            e.nodeType === Node.ELEMENT_NODE && t.appendChild(e)
                        })
                    }(t, r), this._container = r
                }
                registerWindow(e) {
                    this._storage.has(e) || this._storage.add(e)
                }
                ensureWindow(e, t = {
                    position: "fixed",
                    direction: "normal"
                }) {
                    const r = this._windows.get(e);
                    if (void 0 !== r) return r;
                    this.registerWindow(e);
                    const o = this._document.createElement("div");
                    if (o.style.position = t.position, o.style.zIndex = this._index.toString(), o.dataset.id = e, void 0 !== t.index) {
                        const e = this._container.childNodes.length;
                        if (t.index >= e) this._container.appendChild(o);
                        else if (t.index <= 0) this._container.insertBefore(o, this._container.firstChild);
                        else {
                            const e = this._container.childNodes[t.index];
                            this._container.insertBefore(o, e)
                        }
                    } else "reverse" === t.direction ? this._container.insertBefore(o, this._container.firstChild) : this._container.appendChild(o);
                    return this._windows.set(e, o), ++this._index, o
                }
                unregisterWindow(e) {
                    this._storage.remove(e);
                    const t = this._windows.get(e);
                    void 0 !== t && (null !== t.parentElement && t.parentElement.removeChild(t), this._windows.delete(e))
                }
                getZindex(e) {
                    const t = this.ensureWindow(e);
                    return parseInt(t.style.zIndex || "0")
                }
                moveToTop(e) {
                    if (this.getZindex(e) !== this._index) {
                        this.ensureWindow(e).style.zIndex = (++this._index).toString()
                    }
                }
                removeWindow(e) {
                    this.unregisterWindow(e)
                }
            }
            const s = new WeakMap;

            function a(e = document) {
                const t = e.getElementById("overlap-manager-root");
                if (null !== t) return (0, o.ensureDefined)(s.get(t)); {
                    const t = new i(e),
                        r = function(e) {
                            const t = e.createElement("div");
                            return t.style.position = "absolute", t.style.zIndex = 150..toString(), t.style.top = "0px", t.style.left = "0px", t.id = "overlap-manager-root", t
                        }(e);
                    return s.set(r, t), t.setContainer(r), e.body.appendChild(r), t
                }
            }
        },
        58871: (e, t, r) => {
            "use strict";
            r.d(t, {
                makeOverlapable: () => i
            });
            var o = r(67294),
                n = r(72625);

            function i(e) {
                return class extends o.PureComponent {
                    render() {
                        const {
                            isOpened: t,
                            root: r
                        } = this.props;
                        if (!t) return null;
                        const i = o.createElement(e, { ...this.props,
                            zIndex: 150
                        });
                        return "parent" === r ? i : o.createElement(n.Portal, null, i)
                    }
                }
            }
        },
        69369: (e, t, r) => {
            "use strict";
            r.d(t, {
                CloseDelegateContext: () => i
            });
            var o = r(67294),
                n = r(87553);
            const i = o.createContext(n.globalCloseDelegate)
        },
        72625: (e, t, r) => {
            "use strict";
            r.d(t, {
                Portal: () => l,
                PortalContext: () => c
            });
            var o = r(67294),
                n = r(73935),
                i = r(75443),
                s = r(30976),
                a = r(29791);
            class l extends o.PureComponent {
                constructor() {
                    super(...arguments), this._uuid = (0, i.guid)()
                }
                componentWillUnmount() {
                    this._manager().removeWindow(this._uuid)
                }
                render() {
                    const e = this._manager().ensureWindow(this._uuid, this.props.layerOptions);
                    return e.style.top = this.props.top || "", e.style.bottom = this.props.bottom || "", e.style.left = this.props.left || "", e.style.right = this.props.right || "", e.style.pointerEvents = this.props.pointerEvents || "", n.createPortal(o.createElement(c.Provider, {
                        value: this
                    }, this.props.children), e)
                }
                moveToTop() {
                    this._manager().moveToTop(this._uuid)
                }
                _manager() {
                    return null === this.context ? (0,
                        s.getRootOverlapManager)() : this.context
                }
            }
            l.contextType = a.SlotContext;
            const c = o.createContext(null)
        },
        29791: (e, t, r) => {
            "use strict";
            r.d(t, {
                Slot: () => n,
                SlotContext: () => i
            });
            var o = r(67294);
            class n extends o.Component {
                shouldComponentUpdate() {
                    return !1
                }
                render() {
                    return o.createElement("div", {
                        style: {
                            position: "fixed",
                            zIndex: 150,
                            left: 0,
                            top: 0
                        },
                        ref: this.props.reference
                    })
                }
            }
            const i = o.createContext(null)
        },
        2444: (e, t, r) => {
            "use strict";

            function o(e, t, r = {}) {
                const o = Object.assign({}, t);
                for (const n of Object.keys(t)) {
                    const i = r[n] || n;
                    i in e && (o[n] = [e[i], t[n]].join(" "))
                }
                return o
            }

            function n(e, t, r = {}) {
                return Object.assign({}, e, o(e, t, r))
            }
            r.d(t, {
                weakComposeClasses: () => o,
                mergeThemes: () => n
            })
        },
        92703: (e, t, r) => {
            "use strict";
            var o = r(50414);

            function n() {}

            function i() {}
            i.resetWarningCache = n, e.exports = function() {
                function e(e, t, r, n, i, s) {
                    if (s !== o) {
                        var a = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");
                        throw a.name = "Invariant Violation", a
                    }
                }

                function t() {
                    return e
                }
                e.isRequired = e;
                var r = {
                    array: e,
                    bool: e,
                    func: e,
                    number: e,
                    object: e,
                    string: e,
                    symbol: e,
                    any: e,
                    arrayOf: t,
                    element: e,
                    elementType: e,
                    instanceOf: t,
                    node: e,
                    objectOf: t,
                    oneOf: t,
                    oneOfType: t,
                    shape: t,
                    exact: t,
                    checkPropTypes: i,
                    resetWarningCache: n
                };
                return r.PropTypes = r, r
            }
        },
        45697: (e, t, r) => {
            e.exports = r(92703)()
        },
        50414: e => {
            "use strict";
            e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"
        },
        64448: (e, t, r) => {
            "use strict";
            var o = r(67294),
                n = r(27418),
                i = r(63840);

            function s(e) {
                for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, r = 1; r < arguments.length; r++) t += "&args[]=" + encodeURIComponent(arguments[r]);
                return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
            }
            if (!o) throw Error(s(227));
            var a = new Set,
                l = {};

            function c(e, t) {
                u(e, t), u(e + "Capture", t)
            }

            function u(e, t) {
                for (l[e] = t, e = 0; e < t.length; e++) a.add(t[e])
            }
            var d = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement),
                h = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
                p = Object.prototype.hasOwnProperty,
                f = {},
                g = {};

            function m(e, t, r, o, n, i, s) {
                this.acceptsBooleans = 2 === t || 3 === t || 4 === t, this.attributeName = o, this.attributeNamespace = n, this.mustUseProperty = r, this.propertyName = e, this.type = t, this.sanitizeURL = i, this.removeEmptyString = s
            }
            var _ = {};
            "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e) {
                _[e] = new m(e, 0, !1, e, null, !1, !1)
            })), [
                ["acceptCharset", "accept-charset"],
                ["className", "class"],
                ["htmlFor", "for"],
                ["httpEquiv", "http-equiv"]
            ].forEach((function(e) {
                var t = e[0];
                _[t] = new m(t, 1, !1, e[1], null, !1, !1)
            })), ["contentEditable", "draggable", "spellCheck", "value"].forEach((function(e) {
                _[e] = new m(e, 2, !1, e.toLowerCase(), null, !1, !1)
            })), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach((function(e) {
                _[e] = new m(e, 2, !1, e, null, !1, !1)
            })), "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e) {
                _[e] = new m(e, 3, !1, e.toLowerCase(), null, !1, !1)
            })), ["checked", "multiple", "muted", "selected"].forEach((function(e) {
                _[e] = new m(e, 3, !0, e, null, !1, !1)
            })), ["capture", "download"].forEach((function(e) {
                _[e] = new m(e, 4, !1, e, null, !1, !1)
            })), ["cols", "rows", "size", "span"].forEach((function(e) {
                _[e] = new m(e, 6, !1, e, null, !1, !1)
            })), ["rowSpan", "start"].forEach((function(e) {
                _[e] = new m(e, 5, !1, e.toLowerCase(), null, !1, !1)
            }));
            var v = /[\-:]([a-z])/g;

            function b(e) {
                return e[1].toUpperCase()
            }

            function y(e, t, r, o) {
                var n = _.hasOwnProperty(t) ? _[t] : null;
                (null !== n ? 0 === n.type : !o && (2 < t.length && ("o" === t[0] || "O" === t[0]) && ("n" === t[1] || "N" === t[1]))) || (function(e, t, r, o) {
                    if (null == t || function(e, t, r, o) {
                            if (null !== r && 0 === r.type) return !1;
                            switch (typeof t) {
                                case "function":
                                case "symbol":
                                    return !0;
                                case "boolean":
                                    return !o && (null !== r ? !r.acceptsBooleans : "data-" !== (e = e.toLowerCase().slice(0, 5)) && "aria-" !== e);
                                default:
                                    return !1
                            }
                        }(e, t, r, o)) return !0;
                    if (o) return !1;
                    if (null !== r) switch (r.type) {
                        case 3:
                            return !t;
                        case 4:
                            return !1 === t;
                        case 5:
                            return isNaN(t);
                        case 6:
                            return isNaN(t) || 1 > t
                    }
                    return !1
                }(t, r, n, o) && (r = null), o || null === n ? function(e) {
                    return !!p.call(g, e) || !p.call(f, e) && (h.test(e) ? g[e] = !0 : (f[e] = !0, !1))
                }(t) && (null === r ? e.removeAttribute(t) : e.setAttribute(t, "" + r)) : n.mustUseProperty ? e[n.propertyName] = null === r ? 3 !== n.type && "" : r : (t = n.attributeName, o = n.attributeNamespace, null === r ? e.removeAttribute(t) : (r = 3 === (n = n.type) || 4 === n && !0 === r ? "" : "" + r, o ? e.setAttributeNS(o, t, r) : e.setAttribute(t, r))))
            }
            "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e) {
                var t = e.replace(v, b);
                _[t] = new m(t, 1, !1, e, null, !1, !1)
            })), "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e) {
                var t = e.replace(v, b);
                _[t] = new m(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1, !1)
            })), ["xml:base", "xml:lang", "xml:space"].forEach((function(e) {
                var t = e.replace(v, b);
                _[t] = new m(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1, !1)
            })), ["tabIndex", "crossOrigin"].forEach((function(e) {
                _[e] = new m(e, 1, !1, e.toLowerCase(), null, !1, !1)
            })), _.xlinkHref = new m("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1), ["src", "href", "action", "formAction"].forEach((function(e) {
                _[e] = new m(e, 1, !1, e.toLowerCase(), null, !0, !0)
            }));
            var w = o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
                S = 60103,
                C = 60106,
                k = 60107,
                E = 60108,
                x = 60114,
                T = 60109,
                A = 60110,
                M = 60112,
                L = 60113,
                P = 60120,
                F = 60115,
                I = 60116,
                D = 60121,
                O = 60128,
                R = 60129,
                B = 60130,
                N = 60131;
            if ("function" == typeof Symbol && Symbol.for) {
                var $ = Symbol.for;
                S = $("react.element"), C = $("react.portal"), k = $("react.fragment"), E = $("react.strict_mode"), x = $("react.profiler"), T = $("react.provider"), A = $("react.context"), M = $("react.forward_ref"), L = $("react.suspense"), P = $("react.suspense_list"), F = $("react.memo"), I = $("react.lazy"), D = $("react.block"), $("react.scope"), O = $("react.opaque.id"), R = $("react.debug_trace_mode"), B = $("react.offscreen"), N = $("react.legacy_hidden")
            }
            var j, W = "function" == typeof Symbol && Symbol.iterator;

            function V(e) {
                return null === e || "object" != typeof e ? null : "function" == typeof(e = W && e[W] || e["@@iterator"]) ? e : null
            }

            function U(e) {
                if (void 0 === j) try {
                    throw Error()
                } catch (e) {
                    var t = e.stack.trim().match(/\n( *(at )?)/);
                    j = t && t[1] || ""
                }
                return "\n" + j + e
            }
            var q = !1;

            function z(e, t) {
                if (!e || q) return "";
                q = !0;
                var r = Error.prepareStackTrace;
                Error.prepareStackTrace = void 0;
                try {
                    if (t)
                        if (t = function() {
                                throw Error()
                            }, Object.defineProperty(t.prototype, "props", {
                                set: function() {
                                    throw Error()
                                }
                            }), "object" == typeof Reflect && Reflect.construct) {
                            try {
                                Reflect.construct(t, [])
                            } catch (e) {
                                var o = e
                            }
                            Reflect.construct(e, [], t)
                        } else {
                            try {
                                t.call()
                            } catch (e) {
                                o = e
                            }
                            e.call(t.prototype)
                        }
                    else {
                        try {
                            throw Error()
                        } catch (e) {
                            o = e
                        }
                        e()
                    }
                } catch (e) {
                    if (e && o && "string" == typeof e.stack) {
                        for (var n = e.stack.split("\n"), i = o.stack.split("\n"), s = n.length - 1, a = i.length - 1; 1 <= s && 0 <= a && n[s] !== i[a];) a--;
                        for (; 1 <= s && 0 <= a; s--, a--)
                            if (n[s] !== i[a]) {
                                if (1 !== s || 1 !== a)
                                    do {
                                        if (s--, 0 > --a || n[s] !== i[a]) return "\n" + n[s].replace(" at new ", " at ")
                                    } while (1 <= s && 0 <= a);
                                break
                            }
                    }
                } finally {
                    q = !1, Error.prepareStackTrace = r
                }
                return (e = e ? e.displayName || e.name : "") ? U(e) : ""
            }

            function H(e) {
                switch (e.tag) {
                    case 5:
                        return U(e.type);
                    case 16:
                        return U("Lazy");
                    case 13:
                        return U("Suspense");
                    case 19:
                        return U("SuspenseList");
                    case 0:
                    case 2:
                    case 15:
                        return e = z(e.type, !1);
                    case 11:
                        return e = z(e.type.render, !1);
                    case 22:
                        return e = z(e.type._render, !1);
                    case 1:
                        return e = z(e.type, !0);
                    default:
                        return ""
                }
            }

            function Y(e) {
                if (null == e) return null;
                if ("function" == typeof e) return e.displayName || e.name || null;
                if ("string" == typeof e) return e;
                switch (e) {
                    case k:
                        return "Fragment";
                    case C:
                        return "Portal";
                    case x:
                        return "Profiler";
                    case E:
                        return "StrictMode";
                    case L:
                        return "Suspense";
                    case P:
                        return "SuspenseList"
                }
                if ("object" == typeof e) switch (e.$$typeof) {
                    case A:
                        return (e.displayName || "Context") + ".Consumer";
                    case T:
                        return (e._context.displayName || "Context") + ".Provider";
                    case M:
                        var t = e.render;
                        return t = t.displayName || t.name || "", e.displayName || ("" !== t ? "ForwardRef(" + t + ")" : "ForwardRef");
                    case F:
                        return Y(e.type);
                    case D:
                        return Y(e._render);
                    case I:
                        t = e._payload, e = e._init;
                        try {
                            return Y(e(t))
                        } catch (e) {}
                }
                return null
            }

            function K(e) {
                switch (typeof e) {
                    case "boolean":
                    case "number":
                    case "object":
                    case "string":
                    case "undefined":
                        return e;
                    default:
                        return ""
                }
            }

            function X(e) {
                var t = e.type;
                return (e = e.nodeName) && "input" === e.toLowerCase() && ("checkbox" === t || "radio" === t)
            }

            function G(e) {
                e._valueTracker || (e._valueTracker = function(e) {
                    var t = X(e) ? "checked" : "value",
                        r = Object.getOwnPropertyDescriptor(e.constructor.prototype, t),
                        o = "" + e[t];
                    if (!e.hasOwnProperty(t) && void 0 !== r && "function" == typeof r.get && "function" == typeof r.set) {
                        var n = r.get,
                            i = r.set;
                        return Object.defineProperty(e, t, {
                            configurable: !0,
                            get: function() {
                                return n.call(this)
                            },
                            set: function(e) {
                                o = "" + e, i.call(this, e)
                            }
                        }), Object.defineProperty(e, t, {
                            enumerable: r.enumerable
                        }), {
                            getValue: function() {
                                return o
                            },
                            setValue: function(e) {
                                o = "" + e
                            },
                            stopTracking: function() {
                                e._valueTracker = null, delete e[t]
                            }
                        }
                    }
                }(e))
            }

            function Q(e) {
                if (!e) return !1;
                var t = e._valueTracker;
                if (!t) return !0;
                var r = t.getValue(),
                    o = "";
                return e && (o = X(e) ? e.checked ? "true" : "false" : e.value), (e = o) !== r && (t.setValue(e), !0)
            }

            function J(e) {
                if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null;
                try {
                    return e.activeElement || e.body
                } catch (t) {
                    return e.body
                }
            }

            function Z(e, t) {
                var r = t.checked;
                return n({}, t, {
                    defaultChecked: void 0,
                    defaultValue: void 0,
                    value: void 0,
                    checked: null != r ? r : e._wrapperState.initialChecked
                })
            }

            function ee(e, t) {
                var r = null == t.defaultValue ? "" : t.defaultValue,
                    o = null != t.checked ? t.checked : t.defaultChecked;
                r = K(null != t.value ? t.value : r), e._wrapperState = {
                    initialChecked: o,
                    initialValue: r,
                    controlled: "checkbox" === t.type || "radio" === t.type ? null != t.checked : null != t.value
                }
            }

            function te(e, t) {
                null != (t = t.checked) && y(e, "checked", t, !1)
            }

            function re(e, t) {
                te(e, t);
                var r = K(t.value),
                    o = t.type;
                if (null != r) "number" === o ? (0 === r && "" === e.value || e.value != r) && (e.value = "" + r) : e.value !== "" + r && (e.value = "" + r);
                else if ("submit" === o || "reset" === o) return void e.removeAttribute("value");
                t.hasOwnProperty("value") ? ne(e, t.type, r) : t.hasOwnProperty("defaultValue") && ne(e, t.type, K(t.defaultValue)), null == t.checked && null != t.defaultChecked && (e.defaultChecked = !!t.defaultChecked)
            }

            function oe(e, t, r) {
                if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) {
                    var o = t.type;
                    if (!("submit" !== o && "reset" !== o || void 0 !== t.value && null !== t.value)) return;
                    t = "" + e._wrapperState.initialValue, r || t === e.value || (e.value = t), e.defaultValue = t
                }
                "" !== (r = e.name) && (e.name = ""), e.defaultChecked = !!e._wrapperState.initialChecked, "" !== r && (e.name = r)
            }

            function ne(e, t, r) {
                "number" === t && J(e.ownerDocument) === e || (null == r ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + r && (e.defaultValue = "" + r))
            }

            function ie(e, t) {
                return e = n({
                    children: void 0
                }, t), (t = function(e) {
                    var t = "";
                    return o.Children.forEach(e, (function(e) {
                        null != e && (t += e)
                    })), t
                }(t.children)) && (e.children = t), e
            }

            function se(e, t, r, o) {
                if (e = e.options, t) {
                    t = {};
                    for (var n = 0; n < r.length; n++) t["$" + r[n]] = !0;
                    for (r = 0; r < e.length; r++) n = t.hasOwnProperty("$" + e[r].value), e[r].selected !== n && (e[r].selected = n), n && o && (e[r].defaultSelected = !0)
                } else {
                    for (r = "" + K(r), t = null, n = 0; n < e.length; n++) {
                        if (e[n].value === r) return e[n].selected = !0, void(o && (e[n].defaultSelected = !0));
                        null !== t || e[n].disabled || (t = e[n])
                    }
                    null !== t && (t.selected = !0)
                }
            }

            function ae(e, t) {
                if (null != t.dangerouslySetInnerHTML) throw Error(s(91));
                return n({}, t, {
                    value: void 0,
                    defaultValue: void 0,
                    children: "" + e._wrapperState.initialValue
                })
            }

            function le(e, t) {
                var r = t.value;
                if (null == r) {
                    if (r = t.children, t = t.defaultValue, null != r) {
                        if (null != t) throw Error(s(92));
                        if (Array.isArray(r)) {
                            if (!(1 >= r.length)) throw Error(s(93));
                            r = r[0]
                        }
                        t = r
                    }
                    null == t && (t = ""), r = t
                }
                e._wrapperState = {
                    initialValue: K(r)
                }
            }

            function ce(e, t) {
                var r = K(t.value),
                    o = K(t.defaultValue);
                null != r && ((r = "" + r) !== e.value && (e.value = r), null == t.defaultValue && e.defaultValue !== r && (e.defaultValue = r)), null != o && (e.defaultValue = "" + o)
            }

            function ue(e) {
                var t = e.textContent;
                t === e._wrapperState.initialValue && "" !== t && null !== t && (e.value = t)
            }
            var de = "http://www.w3.org/1999/xhtml",
                he = "http://www.w3.org/2000/svg";

            function pe(e) {
                switch (e) {
                    case "svg":
                        return "http://www.w3.org/2000/svg";
                    case "math":
                        return "http://www.w3.org/1998/Math/MathML";
                    default:
                        return "http://www.w3.org/1999/xhtml"
                }
            }

            function fe(e, t) {
                return null == e || "http://www.w3.org/1999/xhtml" === e ? pe(t) : "http://www.w3.org/2000/svg" === e && "foreignObject" === t ? "http://www.w3.org/1999/xhtml" : e
            }
            var ge, me = function(e) {
                return "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function(t, r, o, n) {
                    MSApp.execUnsafeLocalFunction((function() {
                        return e(t, r)
                    }))
                } : e
            }((function(e, t) {
                if (e.namespaceURI !== he || "innerHTML" in e) e.innerHTML = t;
                else {
                    for ((ge = ge || document.createElement("div")).innerHTML = "<svg>" + t.valueOf().toString() + "</svg>", t = ge.firstChild; e.firstChild;) e.removeChild(e.firstChild);
                    for (; t.firstChild;) e.appendChild(t.firstChild)
                }
            }));

            function _e(e, t) {
                if (t) {
                    var r = e.firstChild;
                    if (r && r === e.lastChild && 3 === r.nodeType) return void(r.nodeValue = t)
                }
                e.textContent = t
            }
            var ve = {
                    animationIterationCount: !0,
                    borderImageOutset: !0,
                    borderImageSlice: !0,
                    borderImageWidth: !0,
                    boxFlex: !0,
                    boxFlexGroup: !0,
                    boxOrdinalGroup: !0,
                    columnCount: !0,
                    columns: !0,
                    flex: !0,
                    flexGrow: !0,
                    flexPositive: !0,
                    flexShrink: !0,
                    flexNegative: !0,
                    flexOrder: !0,
                    gridArea: !0,
                    gridRow: !0,
                    gridRowEnd: !0,
                    gridRowSpan: !0,
                    gridRowStart: !0,
                    gridColumn: !0,
                    gridColumnEnd: !0,
                    gridColumnSpan: !0,
                    gridColumnStart: !0,
                    fontWeight: !0,
                    lineClamp: !0,
                    lineHeight: !0,
                    opacity: !0,
                    order: !0,
                    orphans: !0,
                    tabSize: !0,
                    widows: !0,
                    zIndex: !0,
                    zoom: !0,
                    fillOpacity: !0,
                    floodOpacity: !0,
                    stopOpacity: !0,
                    strokeDasharray: !0,
                    strokeDashoffset: !0,
                    strokeMiterlimit: !0,
                    strokeOpacity: !0,
                    strokeWidth: !0
                },
                be = ["Webkit", "ms", "Moz", "O"];

            function ye(e, t, r) {
                return null == t || "boolean" == typeof t || "" === t ? "" : r || "number" != typeof t || 0 === t || ve.hasOwnProperty(e) && ve[e] ? ("" + t).trim() : t + "px"
            }

            function we(e, t) {
                for (var r in e = e.style, t)
                    if (t.hasOwnProperty(r)) {
                        var o = 0 === r.indexOf("--"),
                            n = ye(r, t[r], o);
                        "float" === r && (r = "cssFloat"), o ? e.setProperty(r, n) : e[r] = n
                    }
            }
            Object.keys(ve).forEach((function(e) {
                be.forEach((function(t) {
                    t = t + e.charAt(0).toUpperCase() + e.substring(1), ve[t] = ve[e]
                }))
            }));
            var Se = n({
                menuitem: !0
            }, {
                area: !0,
                base: !0,
                br: !0,
                col: !0,
                embed: !0,
                hr: !0,
                img: !0,
                input: !0,
                keygen: !0,
                link: !0,
                meta: !0,
                param: !0,
                source: !0,
                track: !0,
                wbr: !0
            });

            function Ce(e, t) {
                if (t) {
                    if (Se[e] && (null != t.children || null != t.dangerouslySetInnerHTML)) throw Error(s(137, e));
                    if (null != t.dangerouslySetInnerHTML) {
                        if (null != t.children) throw Error(s(60));
                        if ("object" != typeof t.dangerouslySetInnerHTML || !("__html" in t.dangerouslySetInnerHTML)) throw Error(s(61))
                    }
                    if (null != t.style && "object" != typeof t.style) throw Error(s(62))
                }
            }

            function ke(e, t) {
                if (-1 === e.indexOf("-")) return "string" == typeof t.is;
                switch (e) {
                    case "annotation-xml":
                    case "color-profile":
                    case "font-face":
                    case "font-face-src":
                    case "font-face-uri":
                    case "font-face-format":
                    case "font-face-name":
                    case "missing-glyph":
                        return !1;
                    default:
                        return !0
                }
            }

            function Ee(e) {
                return (e = e.target || e.srcElement || window).correspondingUseElement && (e = e.correspondingUseElement), 3 === e.nodeType ? e.parentNode : e
            }
            var xe = null,
                Te = null,
                Ae = null;

            function Me(e) {
                if (e = Jo(e)) {
                    if ("function" != typeof xe) throw Error(s(280));
                    var t = e.stateNode;
                    t && (t = en(t), xe(e.stateNode, e.type, t))
                }
            }

            function Le(e) {
                Te ? Ae ? Ae.push(e) : Ae = [e] : Te = e
            }

            function Pe() {
                if (Te) {
                    var e = Te,
                        t = Ae;
                    if (Ae = Te = null, Me(e), t)
                        for (e = 0; e < t.length; e++) Me(t[e])
                }
            }

            function Fe(e, t) {
                return e(t)
            }

            function Ie(e, t, r, o, n) {
                return e(t, r, o, n)
            }

            function De() {}
            var Oe = Fe,
                Re = !1,
                Be = !1;

            function Ne() {
                null === Te && null === Ae || (De(), Pe())
            }

            function $e(e, t) {
                var r = e.stateNode;
                if (null === r) return null;
                var o = en(r);
                if (null === o) return null;
                r = o[t];
                e: switch (t) {
                    case "onClick":
                    case "onClickCapture":
                    case "onDoubleClick":
                    case "onDoubleClickCapture":
                    case "onMouseDown":
                    case "onMouseDownCapture":
                    case "onMouseMove":
                    case "onMouseMoveCapture":
                    case "onMouseUp":
                    case "onMouseUpCapture":
                    case "onMouseEnter":
                        (o = !o.disabled) || (o = !("button" === (e = e.type) || "input" === e || "select" === e || "textarea" === e)), e = !o;
                        break e;
                    default:
                        e = !1
                }
                if (e) return null;
                if (r && "function" != typeof r) throw Error(s(231, t, typeof r));
                return r
            }
            var je = !1;
            if (d) try {
                var We = {};
                Object.defineProperty(We, "passive", {
                    get: function() {
                        je = !0
                    }
                }), window.addEventListener("test", We, We), window.removeEventListener("test", We, We)
            } catch (e) {
                je = !1
            }

            function Ve(e, t, r, o, n, i, s, a, l) {
                var c = Array.prototype.slice.call(arguments, 3);
                try {
                    t.apply(r, c)
                } catch (e) {
                    this.onError(e)
                }
            }
            var Ue = !1,
                qe = null,
                ze = !1,
                He = null,
                Ye = {
                    onError: function(e) {
                        Ue = !0, qe = e
                    }
                };

            function Ke(e, t, r, o, n, i, s, a, l) {
                Ue = !1, qe = null, Ve.apply(Ye, arguments)
            }

            function Xe(e) {
                var t = e,
                    r = e;
                if (e.alternate)
                    for (; t.return;) t = t.return;
                else {
                    e = t;
                    do {
                        0 != (1026 & (t = e).flags) && (r = t.return), e = t.return
                    } while (e)
                }
                return 3 === t.tag ? r : null
            }

            function Ge(e) {
                if (13 === e.tag) {
                    var t = e.memoizedState;
                    if (null === t && (null !== (e = e.alternate) && (t = e.memoizedState)), null !== t) return t.dehydrated
                }
                return null
            }

            function Qe(e) {
                if (Xe(e) !== e) throw Error(s(188))
            }

            function Je(e) {
                if (!(e = function(e) {
                        var t = e.alternate;
                        if (!t) {
                            if (null === (t = Xe(e))) throw Error(s(188));
                            return t !== e ? null : e
                        }
                        for (var r = e, o = t;;) {
                            var n = r.return;
                            if (null === n) break;
                            var i = n.alternate;
                            if (null === i) {
                                if (null !== (o = n.return)) {
                                    r = o;
                                    continue
                                }
                                break
                            }
                            if (n.child === i.child) {
                                for (i = n.child; i;) {
                                    if (i === r) return Qe(n), e;
                                    if (i === o) return Qe(n), t;
                                    i = i.sibling
                                }
                                throw Error(s(188))
                            }
                            if (r.return !== o.return) r = n, o = i;
                            else {
                                for (var a = !1, l = n.child; l;) {
                                    if (l === r) {
                                        a = !0, r = n, o = i;
                                        break
                                    }
                                    if (l === o) {
                                        a = !0, o = n, r = i;
                                        break
                                    }
                                    l = l.sibling
                                }
                                if (!a) {
                                    for (l = i.child; l;) {
                                        if (l === r) {
                                            a = !0, r = i, o = n;
                                            break
                                        }
                                        if (l === o) {
                                            a = !0, o = i, r = n;
                                            break
                                        }
                                        l = l.sibling
                                    }
                                    if (!a) throw Error(s(189))
                                }
                            }
                            if (r.alternate !== o) throw Error(s(190))
                        }
                        if (3 !== r.tag) throw Error(s(188));
                        return r.stateNode.current === r ? e : t
                    }(e))) return null;
                for (var t = e;;) {
                    if (5 === t.tag || 6 === t.tag) return t;
                    if (t.child) t.child.return = t, t = t.child;
                    else {
                        if (t === e) break;
                        for (; !t.sibling;) {
                            if (!t.return || t.return === e) return null;
                            t = t.return
                        }
                        t.sibling.return = t.return, t = t.sibling
                    }
                }
                return null
            }

            function Ze(e, t) {
                for (var r = e.alternate; null !== t;) {
                    if (t === e || t === r) return !0;
                    t = t.return
                }
                return !1
            }
            var et, tt, rt, ot, nt = !1,
                it = [],
                st = null,
                at = null,
                lt = null,
                ct = new Map,
                ut = new Map,
                dt = [],
                ht = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");

            function pt(e, t, r, o, n) {
                return {
                    blockedOn: e,
                    domEventName: t,
                    eventSystemFlags: 16 | r,
                    nativeEvent: n,
                    targetContainers: [o]
                }
            }

            function ft(e, t) {
                switch (e) {
                    case "focusin":
                    case "focusout":
                        st = null;
                        break;
                    case "dragenter":
                    case "dragleave":
                        at = null;
                        break;
                    case "mouseover":
                    case "mouseout":
                        lt = null;
                        break;
                    case "pointerover":
                    case "pointerout":
                        ct.delete(t.pointerId);
                        break;
                    case "gotpointercapture":
                    case "lostpointercapture":
                        ut.delete(t.pointerId)
                }
            }

            function gt(e, t, r, o, n, i) {
                return null === e || e.nativeEvent !== i ? (e = pt(t, r, o, n, i), null !== t && (null !== (t = Jo(t)) && tt(t)), e) : (e.eventSystemFlags |= o, t = e.targetContainers, null !== n && -1 === t.indexOf(n) && t.push(n), e)
            }

            function mt(e) {
                var t = Qo(e.target);
                if (null !== t) {
                    var r = Xe(t);
                    if (null !== r)
                        if (13 === (t = r.tag)) {
                            if (null !== (t = Ge(r))) return e.blockedOn = t, void ot(e.lanePriority, (function() {
                                i.unstable_runWithPriority(e.priority, (function() {
                                    rt(r)
                                }))
                            }))
                        } else if (3 === t && r.stateNode.hydrate) return void(e.blockedOn = 3 === r.tag ? r.stateNode.containerInfo : null)
                }
                e.blockedOn = null
            }

            function _t(e) {
                if (null !== e.blockedOn) return !1;
                for (var t = e.targetContainers; 0 < t.length;) {
                    var r = Jt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent);
                    if (null !== r) return null !== (t = Jo(r)) && tt(t), e.blockedOn = r, !1;
                    t.shift()
                }
                return !0
            }

            function vt(e, t, r) {
                _t(e) && r.delete(t)
            }

            function bt() {
                for (nt = !1; 0 < it.length;) {
                    var e = it[0];
                    if (null !== e.blockedOn) {
                        null !== (e = Jo(e.blockedOn)) && et(e);
                        break
                    }
                    for (var t = e.targetContainers; 0 < t.length;) {
                        var r = Jt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent);
                        if (null !== r) {
                            e.blockedOn = r;
                            break
                        }
                        t.shift()
                    }
                    null === e.blockedOn && it.shift()
                }
                null !== st && _t(st) && (st = null), null !== at && _t(at) && (at = null), null !== lt && _t(lt) && (lt = null), ct.forEach(vt), ut.forEach(vt)
            }

            function yt(e, t) {
                e.blockedOn === t && (e.blockedOn = null, nt || (nt = !0, i.unstable_scheduleCallback(i.unstable_NormalPriority, bt)))
            }

            function wt(e) {
                function t(t) {
                    return yt(t, e)
                }
                if (0 < it.length) {
                    yt(it[0], e);
                    for (var r = 1; r < it.length; r++) {
                        var o = it[r];
                        o.blockedOn === e && (o.blockedOn = null)
                    }
                }
                for (null !== st && yt(st, e), null !== at && yt(at, e), null !== lt && yt(lt, e), ct.forEach(t), ut.forEach(t), r = 0; r < dt.length; r++)(o = dt[r]).blockedOn === e && (o.blockedOn = null);
                for (; 0 < dt.length && null === (r = dt[0]).blockedOn;) mt(r), null === r.blockedOn && dt.shift()
            }

            function St(e, t) {
                var r = {};
                return r[e.toLowerCase()] = t.toLowerCase(), r["Webkit" + e] = "webkit" + t, r["Moz" + e] = "moz" + t, r
            }
            var Ct = {
                    animationend: St("Animation", "AnimationEnd"),
                    animationiteration: St("Animation", "AnimationIteration"),
                    animationstart: St("Animation", "AnimationStart"),
                    transitionend: St("Transition", "TransitionEnd")
                },
                kt = {},
                Et = {};

            function xt(e) {
                if (kt[e]) return kt[e];
                if (!Ct[e]) return e;
                var t, r = Ct[e];
                for (t in r)
                    if (r.hasOwnProperty(t) && t in Et) return kt[e] = r[t];
                return e
            }
            d && (Et = document.createElement("div").style, "AnimationEvent" in window || (delete Ct.animationend.animation, delete Ct.animationiteration.animation, delete Ct.animationstart.animation), "TransitionEvent" in window || delete Ct.transitionend.transition);
            var Tt = xt("animationend"),
                At = xt("animationiteration"),
                Mt = xt("animationstart"),
                Lt = xt("transitionend"),
                Pt = new Map,
                Ft = new Map,
                It = ["abort", "abort", Tt, "animationEnd", At, "animationIteration", Mt, "animationStart", "canplay", "canPlay", "canplaythrough", "canPlayThrough", "durationchange", "durationChange", "emptied", "emptied", "encrypted", "encrypted", "ended", "ended", "error", "error", "gotpointercapture", "gotPointerCapture", "load", "load", "loadeddata", "loadedData", "loadedmetadata", "loadedMetadata", "loadstart", "loadStart", "lostpointercapture", "lostPointerCapture", "playing", "playing", "progress", "progress", "seeking", "seeking", "stalled", "stalled", "suspend", "suspend", "timeupdate", "timeUpdate", Lt, "transitionEnd", "waiting", "waiting"];

            function Dt(e, t) {
                for (var r = 0; r < e.length; r += 2) {
                    var o = e[r],
                        n = e[r + 1];
                    n = "on" + (n[0].toUpperCase() + n.slice(1)), Ft.set(o, t), Pt.set(o, n), c(n, [o])
                }
            }(0, i.unstable_now)();
            var Ot = 8;

            function Rt(e) {
                if (0 != (1 & e)) return Ot = 15, 1;
                if (0 != (2 & e)) return Ot = 14, 2;
                if (0 != (4 & e)) return Ot = 13, 4;
                var t = 24 & e;
                return 0 !== t ? (Ot = 12, t) : 0 != (32 & e) ? (Ot = 11, 32) : 0 !== (t = 192 & e) ? (Ot = 10, t) : 0 != (256 & e) ? (Ot = 9, 256) : 0 !== (t = 3584 & e) ? (Ot = 8, t) : 0 != (4096 & e) ? (Ot = 7, 4096) : 0 !== (t = 4186112 & e) ? (Ot = 6, t) : 0 !== (t = 62914560 & e) ? (Ot = 5, t) : 67108864 & e ? (Ot = 4, 67108864) : 0 != (134217728 & e) ? (Ot = 3, 134217728) : 0 !== (t = 805306368 & e) ? (Ot = 2, t) : 0 != (1073741824 & e) ? (Ot = 1, 1073741824) : (Ot = 8, e)
            }

            function Bt(e, t) {
                var r = e.pendingLanes;
                if (0 === r) return Ot = 0;
                var o = 0,
                    n = 0,
                    i = e.expiredLanes,
                    s = e.suspendedLanes,
                    a = e.pingedLanes;
                if (0 !== i) o = i, n = Ot = 15;
                else if (0 !== (i = 134217727 & r)) {
                    var l = i & ~s;
                    0 !== l ? (o = Rt(l), n = Ot) : 0 !== (a &= i) && (o = Rt(a), n = Ot)
                } else 0 !== (i = r & ~s) ? (o = Rt(i), n = Ot) : 0 !== a && (o = Rt(a), n = Ot);
                if (0 === o) return 0;
                if (o = r & ((0 > (o = 31 - Ut(o)) ? 0 : 1 << o) << 1) - 1, 0 !== t && t !== o && 0 == (t & s)) {
                    if (Rt(t), n <= Ot) return t;
                    Ot = n
                }
                if (0 !== (t = e.entangledLanes))
                    for (e = e.entanglements, t &= o; 0 < t;) n = 1 << (r = 31 - Ut(t)), o |= e[r], t &= ~n;
                return o
            }

            function Nt(e) {
                return 0 !== (e = -1073741825 & e.pendingLanes) ? e : 1073741824 & e ? 1073741824 : 0
            }

            function $t(e, t) {
                switch (e) {
                    case 15:
                        return 1;
                    case 14:
                        return 2;
                    case 12:
                        return 0 === (e = jt(24 & ~t)) ? $t(10, t) : e;
                    case 10:
                        return 0 === (e = jt(192 & ~t)) ? $t(8, t) : e;
                    case 8:
                        return 0 === (e = jt(3584 & ~t)) && (0 === (e = jt(4186112 & ~t)) && (e = 512)), e;
                    case 2:
                        return 0 === (t = jt(805306368 & ~t)) && (t = 268435456), t
                }
                throw Error(s(358, e))
            }

            function jt(e) {
                return e & -e
            }

            function Wt(e) {
                for (var t = [], r = 0; 31 > r; r++) t.push(e);
                return t
            }

            function Vt(e, t, r) {
                e.pendingLanes |= t;
                var o = t - 1;
                e.suspendedLanes &= o, e.pingedLanes &= o, (e = e.eventTimes)[t = 31 - Ut(t)] = r
            }
            var Ut = Math.clz32 ? Math.clz32 : function(e) {
                    return 0 === e ? 32 : 31 - (qt(e) / zt | 0) | 0
                },
                qt = Math.log,
                zt = Math.LN2;
            var Ht = i.unstable_UserBlockingPriority,
                Yt = i.unstable_runWithPriority,
                Kt = !0;

            function Xt(e, t, r, o) {
                Re || De();
                var n = Qt,
                    i = Re;
                Re = !0;
                try {
                    Ie(n, e, t, r, o)
                } finally {
                    (Re = i) || Ne()
                }
            }

            function Gt(e, t, r, o) {
                Yt(Ht, Qt.bind(null, e, t, r, o))
            }

            function Qt(e, t, r, o) {
                var n;
                if (Kt)
                    if ((n = 0 == (4 & t)) && 0 < it.length && -1 < ht.indexOf(e)) e = pt(null, e, t, r, o), it.push(e);
                    else {
                        var i = Jt(e, t, r, o);
                        if (null === i) n && ft(e, o);
                        else {
                            if (n) {
                                if (-1 < ht.indexOf(e)) return e = pt(i, e, t, r, o), void it.push(e);
                                if (function(e, t, r, o, n) {
                                        switch (t) {
                                            case "focusin":
                                                return st = gt(st, e, t, r, o, n), !0;
                                            case "dragenter":
                                                return at = gt(at, e, t, r, o, n), !0;
                                            case "mouseover":
                                                return lt = gt(lt, e, t, r, o, n), !0;
                                            case "pointerover":
                                                var i = n.pointerId;
                                                return ct.set(i, gt(ct.get(i) || null, e, t, r, o, n)), !0;
                                            case "gotpointercapture":
                                                return i = n.pointerId, ut.set(i, gt(ut.get(i) || null, e, t, r, o, n)), !0
                                        }
                                        return !1
                                    }(i, e, t, r, o)) return;
                                ft(e, o)
                            }
                            Lo(e, t, o, null, r)
                        }
                    }
            }

            function Jt(e, t, r, o) {
                var n = Ee(o);
                if (null !== (n = Qo(n))) {
                    var i = Xe(n);
                    if (null === i) n = null;
                    else {
                        var s = i.tag;
                        if (13 === s) {
                            if (null !== (n = Ge(i))) return n;
                            n = null
                        } else if (3 === s) {
                            if (i.stateNode.hydrate) return 3 === i.tag ? i.stateNode.containerInfo : null;
                            n = null
                        } else i !== n && (n = null)
                    }
                }
                return Lo(e, t, o, n, r), null
            }
            var Zt = null,
                er = null,
                tr = null;

            function rr() {
                if (tr) return tr;
                var e, t, r = er,
                    o = r.length,
                    n = "value" in Zt ? Zt.value : Zt.textContent,
                    i = n.length;
                for (e = 0; e < o && r[e] === n[e]; e++);
                var s = o - e;
                for (t = 1; t <= s && r[o - t] === n[i - t]; t++);
                return tr = n.slice(e, 1 < t ? 1 - t : void 0)
            }

            function or(e) {
                var t = e.keyCode;
                return "charCode" in e ? 0 === (e = e.charCode) && 13 === t && (e = 13) : e = t, 10 === e && (e = 13), 32 <= e || 13 === e ? e : 0
            }

            function nr() {
                return !0
            }

            function ir() {
                return !1
            }

            function sr(e) {
                function t(t, r, o, n, i) {
                    for (var s in this._reactName = t, this._targetInst = o, this.type = r, this.nativeEvent = n, this.target = i, this.currentTarget = null, e) e.hasOwnProperty(s) && (t = e[s], this[s] = t ? t(n) : n[s]);
                    return this.isDefaultPrevented = (null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue) ? nr : ir, this.isPropagationStopped = ir, this
                }
                return n(t.prototype, {
                    preventDefault: function() {
                        this.defaultPrevented = !0;
                        var e = this.nativeEvent;
                        e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), this.isDefaultPrevented = nr)
                    },
                    stopPropagation: function() {
                        var e = this.nativeEvent;
                        e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), this.isPropagationStopped = nr)
                    },
                    persist: function() {},
                    isPersistent: nr
                }), t
            }
            var ar, lr, cr, ur = {
                    eventPhase: 0,
                    bubbles: 0,
                    cancelable: 0,
                    timeStamp: function(e) {
                        return e.timeStamp || Date.now()
                    },
                    defaultPrevented: 0,
                    isTrusted: 0
                },
                dr = sr(ur),
                hr = n({}, ur, {
                    view: 0,
                    detail: 0
                }),
                pr = sr(hr),
                fr = n({}, hr, {
                    screenX: 0,
                    screenY: 0,
                    clientX: 0,
                    clientY: 0,
                    pageX: 0,
                    pageY: 0,
                    ctrlKey: 0,
                    shiftKey: 0,
                    altKey: 0,
                    metaKey: 0,
                    getModifierState: Er,
                    button: 0,
                    buttons: 0,
                    relatedTarget: function(e) {
                        return void 0 === e.relatedTarget ? e.fromElement === e.srcElement ? e.toElement : e.fromElement : e.relatedTarget
                    },
                    movementX: function(e) {
                        return "movementX" in e ? e.movementX : (e !== cr && (cr && "mousemove" === e.type ? (ar = e.screenX - cr.screenX, lr = e.screenY - cr.screenY) : lr = ar = 0, cr = e), ar)
                    },
                    movementY: function(e) {
                        return "movementY" in e ? e.movementY : lr
                    }
                }),
                gr = sr(fr),
                mr = sr(n({}, fr, {
                    dataTransfer: 0
                })),
                _r = sr(n({}, hr, {
                    relatedTarget: 0
                })),
                vr = sr(n({}, ur, {
                    animationName: 0,
                    elapsedTime: 0,
                    pseudoElement: 0
                })),
                br = sr(n({}, ur, {
                    clipboardData: function(e) {
                        return "clipboardData" in e ? e.clipboardData : window.clipboardData
                    }
                })),
                yr = sr(n({}, ur, {
                    data: 0
                })),
                wr = {
                    Esc: "Escape",
                    Spacebar: " ",
                    Left: "ArrowLeft",
                    Up: "ArrowUp",
                    Right: "ArrowRight",
                    Down: "ArrowDown",
                    Del: "Delete",
                    Win: "OS",
                    Menu: "ContextMenu",
                    Apps: "ContextMenu",
                    Scroll: "ScrollLock",
                    MozPrintableKey: "Unidentified"
                },
                Sr = {
                    8: "Backspace",
                    9: "Tab",
                    12: "Clear",
                    13: "Enter",
                    16: "Shift",
                    17: "Control",
                    18: "Alt",
                    19: "Pause",
                    20: "CapsLock",
                    27: "Escape",
                    32: " ",
                    33: "PageUp",
                    34: "PageDown",
                    35: "End",
                    36: "Home",
                    37: "ArrowLeft",
                    38: "ArrowUp",
                    39: "ArrowRight",
                    40: "ArrowDown",
                    45: "Insert",
                    46: "Delete",
                    112: "F1",
                    113: "F2",
                    114: "F3",
                    115: "F4",
                    116: "F5",
                    117: "F6",
                    118: "F7",
                    119: "F8",
                    120: "F9",
                    121: "F10",
                    122: "F11",
                    123: "F12",
                    144: "NumLock",
                    145: "ScrollLock",
                    224: "Meta"
                },
                Cr = {
                    Alt: "altKey",
                    Control: "ctrlKey",
                    Meta: "metaKey",
                    Shift: "shiftKey"
                };

            function kr(e) {
                var t = this.nativeEvent;
                return t.getModifierState ? t.getModifierState(e) : !!(e = Cr[e]) && !!t[e]
            }

            function Er() {
                return kr
            }
            var xr = sr(n({}, hr, {
                    key: function(e) {
                        if (e.key) {
                            var t = wr[e.key] || e.key;
                            if ("Unidentified" !== t) return t
                        }
                        return "keypress" === e.type ? 13 === (e = or(e)) ? "Enter" : String.fromCharCode(e) : "keydown" === e.type || "keyup" === e.type ? Sr[e.keyCode] || "Unidentified" : ""
                    },
                    code: 0,
                    location: 0,
                    ctrlKey: 0,
                    shiftKey: 0,
                    altKey: 0,
                    metaKey: 0,
                    repeat: 0,
                    locale: 0,
                    getModifierState: Er,
                    charCode: function(e) {
                        return "keypress" === e.type ? or(e) : 0
                    },
                    keyCode: function(e) {
                        return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0
                    },
                    which: function(e) {
                        return "keypress" === e.type ? or(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0
                    }
                })),
                Tr = sr(n({}, fr, {
                    pointerId: 0,
                    width: 0,
                    height: 0,
                    pressure: 0,
                    tangentialPressure: 0,
                    tiltX: 0,
                    tiltY: 0,
                    twist: 0,
                    pointerType: 0,
                    isPrimary: 0
                })),
                Ar = sr(n({}, hr, {
                    touches: 0,
                    targetTouches: 0,
                    changedTouches: 0,
                    altKey: 0,
                    metaKey: 0,
                    ctrlKey: 0,
                    shiftKey: 0,
                    getModifierState: Er
                })),
                Mr = sr(n({}, ur, {
                    propertyName: 0,
                    elapsedTime: 0,
                    pseudoElement: 0
                })),
                Lr = sr(n({}, fr, {
                    deltaX: function(e) {
                        return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0
                    },
                    deltaY: function(e) {
                        return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0
                    },
                    deltaZ: 0,
                    deltaMode: 0
                })),
                Pr = [9, 13, 27, 32],
                Fr = d && "CompositionEvent" in window,
                Ir = null;
            d && "documentMode" in document && (Ir = document.documentMode);
            var Dr = d && "TextEvent" in window && !Ir,
                Or = d && (!Fr || Ir && 8 < Ir && 11 >= Ir),
                Rr = String.fromCharCode(32),
                Br = !1;

            function Nr(e, t) {
                switch (e) {
                    case "keyup":
                        return -1 !== Pr.indexOf(t.keyCode);
                    case "keydown":
                        return 229 !== t.keyCode;
                    case "keypress":
                    case "mousedown":
                    case "focusout":
                        return !0;
                    default:
                        return !1
                }
            }

            function $r(e) {
                return "object" == typeof(e = e.detail) && "data" in e ? e.data : null
            }
            var jr = !1;
            var Wr = {
                color: !0,
                date: !0,
                datetime: !0,
                "datetime-local": !0,
                email: !0,
                month: !0,
                number: !0,
                password: !0,
                range: !0,
                search: !0,
                tel: !0,
                text: !0,
                time: !0,
                url: !0,
                week: !0
            };

            function Vr(e) {
                var t = e && e.nodeName && e.nodeName.toLowerCase();
                return "input" === t ? !!Wr[e.type] : "textarea" === t
            }

            function Ur(e, t, r, o) {
                Le(o), 0 < (t = Fo(t, "onChange")).length && (r = new dr("onChange", "change", null, r, o), e.push({
                    event: r,
                    listeners: t
                }))
            }
            var qr = null,
                zr = null;

            function Hr(e) {
                ko(e, 0)
            }

            function Yr(e) {
                if (Q(Zo(e))) return e
            }

            function Kr(e, t) {
                if ("change" === e) return t
            }
            var Xr = !1;
            if (d) {
                var Gr;
                if (d) {
                    var Qr = "oninput" in document;
                    if (!Qr) {
                        var Jr = document.createElement("div");
                        Jr.setAttribute("oninput", "return;"), Qr = "function" == typeof Jr.oninput
                    }
                    Gr = Qr
                } else Gr = !1;
                Xr = Gr && (!document.documentMode || 9 < document.documentMode)
            }

            function Zr() {
                qr && (qr.detachEvent("onpropertychange", eo), zr = qr = null)
            }

            function eo(e) {
                if ("value" === e.propertyName && Yr(zr)) {
                    var t = [];
                    if (Ur(t, zr, e, Ee(e)), e = Hr, Re) e(t);
                    else {
                        Re = !0;
                        try {
                            Fe(e, t)
                        } finally {
                            Re = !1, Ne()
                        }
                    }
                }
            }

            function to(e, t, r) {
                "focusin" === e ? (Zr(), zr = r, (qr = t).attachEvent("onpropertychange", eo)) : "focusout" === e && Zr()
            }

            function ro(e) {
                if ("selectionchange" === e || "keyup" === e || "keydown" === e) return Yr(zr)
            }

            function oo(e, t) {
                if ("click" === e) return Yr(t)
            }

            function no(e, t) {
                if ("input" === e || "change" === e) return Yr(t)
            }
            var io = "function" == typeof Object.is ? Object.is : function(e, t) {
                    return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t
                },
                so = Object.prototype.hasOwnProperty;

            function ao(e, t) {
                if (io(e, t)) return !0;
                if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1;
                var r = Object.keys(e),
                    o = Object.keys(t);
                if (r.length !== o.length) return !1;
                for (o = 0; o < r.length; o++)
                    if (!so.call(t, r[o]) || !io(e[r[o]], t[r[o]])) return !1;
                return !0
            }

            function lo(e) {
                for (; e && e.firstChild;) e = e.firstChild;
                return e
            }

            function co(e, t) {
                var r, o = lo(e);
                for (e = 0; o;) {
                    if (3 === o.nodeType) {
                        if (r = e + o.textContent.length, e <= t && r >= t) return {
                            node: o,
                            offset: t - e
                        };
                        e = r
                    }
                    e: {
                        for (; o;) {
                            if (o.nextSibling) {
                                o = o.nextSibling;
                                break e
                            }
                            o = o.parentNode
                        }
                        o = void 0
                    }
                    o = lo(o)
                }
            }

            function uo() {
                for (var e = window, t = J(); t instanceof e.HTMLIFrameElement;) {
                    try {
                        var r = "string" == typeof t.contentWindow.location.href
                    } catch (e) {
                        r = !1
                    }
                    if (!r) break;
                    t = J((e = t.contentWindow).document)
                }
                return t
            }

            function ho(e) {
                var t = e && e.nodeName && e.nodeName.toLowerCase();
                return t && ("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type) || "textarea" === t || "true" === e.contentEditable)
            }
            var po = d && "documentMode" in document && 11 >= document.documentMode,
                fo = null,
                go = null,
                mo = null,
                _o = !1;

            function vo(e, t, r) {
                var o = r.window === r ? r.document : 9 === r.nodeType ? r : r.ownerDocument;
                _o || null == fo || fo !== J(o) || ("selectionStart" in (o = fo) && ho(o) ? o = {
                    start: o.selectionStart,
                    end: o.selectionEnd
                } : o = {
                    anchorNode: (o = (o.ownerDocument && o.ownerDocument.defaultView || window).getSelection()).anchorNode,
                    anchorOffset: o.anchorOffset,
                    focusNode: o.focusNode,
                    focusOffset: o.focusOffset
                }, mo && ao(mo, o) || (mo = o, 0 < (o = Fo(go, "onSelect")).length && (t = new dr("onSelect", "select", null, t, r), e.push({
                    event: t,
                    listeners: o
                }), t.target = fo)))
            }
            Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "), 0), Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "), 1), Dt(It, 2);
            for (var bo = "change selectionchange textInput compositionstart compositionend compositionupdate".split(" "), yo = 0; yo < bo.length; yo++) Ft.set(bo[yo], 0);
            u("onMouseEnter", ["mouseout", "mouseover"]), u("onMouseLeave", ["mouseout", "mouseover"]), u("onPointerEnter", ["pointerout", "pointerover"]), u("onPointerLeave", ["pointerout", "pointerover"]), c("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" ")), c("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")), c("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]), c("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" ")), c("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" ")), c("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
            var wo = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),
                So = new Set("cancel close invalid load scroll toggle".split(" ").concat(wo));

            function Co(e, t, r) {
                var o = e.type || "unknown-event";
                e.currentTarget = r,
                    function(e, t, r, o, n, i, a, l, c) {
                        if (Ke.apply(this, arguments), Ue) {
                            if (!Ue) throw Error(s(198));
                            var u = qe;
                            Ue = !1, qe = null, ze || (ze = !0, He = u)
                        }
                    }(o, t, void 0, e), e.currentTarget = null
            }

            function ko(e, t) {
                t = 0 != (4 & t);
                for (var r = 0; r < e.length; r++) {
                    var o = e[r],
                        n = o.event;
                    o = o.listeners;
                    e: {
                        var i = void 0;
                        if (t)
                            for (var s = o.length - 1; 0 <= s; s--) {
                                var a = o[s],
                                    l = a.instance,
                                    c = a.currentTarget;
                                if (a = a.listener, l !== i && n.isPropagationStopped()) break e;
                                Co(n, a, c), i = l
                            } else
                                for (s = 0; s < o.length; s++) {
                                    if (l = (a = o[s]).instance, c = a.currentTarget, a = a.listener, l !== i && n.isPropagationStopped()) break e;
                                    Co(n, a, c), i = l
                                }
                    }
                }
                if (ze) throw e = He, ze = !1, He = null, e
            }

            function Eo(e, t) {
                var r = tn(t),
                    o = e + "__bubble";
                r.has(o) || (Mo(t, e, 2, !1), r.add(o))
            }
            var xo = "_reactListening" + Math.random().toString(36).slice(2);

            function To(e) {
                e[xo] || (e[xo] = !0, a.forEach((function(t) {
                    So.has(t) || Ao(t, !1, e, null), Ao(t, !0, e, null)
                })))
            }

            function Ao(e, t, r, o) {
                var n = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0,
                    i = r;
                if ("selectionchange" === e && 9 !== r.nodeType && (i = r.ownerDocument), null !== o && !t && So.has(e)) {
                    if ("scroll" !== e) return;
                    n |= 2, i = o
                }
                var s = tn(i),
                    a = e + "__" + (t ? "capture" : "bubble");
                s.has(a) || (t && (n |= 4), Mo(i, e, n, t), s.add(a))
            }

            function Mo(e, t, r, o) {
                var n = Ft.get(t);
                switch (void 0 === n ? 2 : n) {
                    case 0:
                        n = Xt;
                        break;
                    case 1:
                        n = Gt;
                        break;
                    default:
                        n = Qt
                }
                r = n.bind(null, t, r, e), n = void 0, !je || "touchstart" !== t && "touchmove" !== t && "wheel" !== t || (n = !0), o ? void 0 !== n ? e.addEventListener(t, r, {
                    capture: !0,
                    passive: n
                }) : e.addEventListener(t, r, !0) : void 0 !== n ? e.addEventListener(t, r, {
                    passive: n
                }) : e.addEventListener(t, r, !1)
            }

            function Lo(e, t, r, o, n) {
                var i = o;
                if (0 == (1 & t) && 0 == (2 & t) && null !== o) e: for (;;) {
                    if (null === o) return;
                    var s = o.tag;
                    if (3 === s || 4 === s) {
                        var a = o.stateNode.containerInfo;
                        if (a === n || 8 === a.nodeType && a.parentNode === n) break;
                        if (4 === s)
                            for (s = o.return; null !== s;) {
                                var l = s.tag;
                                if ((3 === l || 4 === l) && ((l = s.stateNode.containerInfo) === n || 8 === l.nodeType && l.parentNode === n)) return;
                                s = s.return
                            }
                        for (; null !== a;) {
                            if (null === (s = Qo(a))) return;
                            if (5 === (l = s.tag) || 6 === l) {
                                o = i = s;
                                continue e
                            }
                            a = a.parentNode
                        }
                    }
                    o = o.return
                }! function(e, t, r) {
                    if (Be) return e(t, r);
                    Be = !0;
                    try {
                        Oe(e, t, r)
                    } finally {
                        Be = !1, Ne()
                    }
                }((function() {
                    var o = i,
                        n = Ee(r),
                        s = [];
                    e: {
                        var a = Pt.get(e);
                        if (void 0 !== a) {
                            var l = dr,
                                c = e;
                            switch (e) {
                                case "keypress":
                                    if (0 === or(r)) break e;
                                case "keydown":
                                case "keyup":
                                    l = xr;
                                    break;
                                case "focusin":
                                    c = "focus", l = _r;
                                    break;
                                case "focusout":
                                    c = "blur", l = _r;
                                    break;
                                case "beforeblur":
                                case "afterblur":
                                    l = _r;
                                    break;
                                case "click":
                                    if (2 === r.button) break e;
                                case "auxclick":
                                case "dblclick":
                                case "mousedown":
                                case "mousemove":
                                case "mouseup":
                                case "mouseout":
                                case "mouseover":
                                case "contextmenu":
                                    l = gr;
                                    break;
                                case "drag":
                                case "dragend":
                                case "dragenter":
                                case "dragexit":
                                case "dragleave":
                                case "dragover":
                                case "dragstart":
                                case "drop":
                                    l = mr;
                                    break;
                                case "touchcancel":
                                case "touchend":
                                case "touchmove":
                                case "touchstart":
                                    l = Ar;
                                    break;
                                case Tt:
                                case At:
                                case Mt:
                                    l = vr;
                                    break;
                                case Lt:
                                    l = Mr;
                                    break;
                                case "scroll":
                                    l = pr;
                                    break;
                                case "wheel":
                                    l = Lr;
                                    break;
                                case "copy":
                                case "cut":
                                case "paste":
                                    l = br;
                                    break;
                                case "gotpointercapture":
                                case "lostpointercapture":
                                case "pointercancel":
                                case "pointerdown":
                                case "pointermove":
                                case "pointerout":
                                case "pointerover":
                                case "pointerup":
                                    l = Tr
                            }
                            var u = 0 != (4 & t),
                                d = !u && "scroll" === e,
                                h = u ? null !== a ? a + "Capture" : null : a;
                            u = [];
                            for (var p, f = o; null !== f;) {
                                var g = (p = f).stateNode;
                                if (5 === p.tag && null !== g && (p = g, null !== h && (null != (g = $e(f, h)) && u.push(Po(f, g, p)))), d) break;
                                f = f.return
                            }
                            0 < u.length && (a = new l(a, c, null, r, n), s.push({
                                event: a,
                                listeners: u
                            }))
                        }
                    }
                    if (0 == (7 & t)) {
                        if (l = "mouseout" === e || "pointerout" === e, (!(a = "mouseover" === e || "pointerover" === e) || 0 != (16 & t) || !(c = r.relatedTarget || r.fromElement) || !Qo(c) && !c[Xo]) && (l || a) && (a = n.window === n ? n : (a = n.ownerDocument) ? a.defaultView || a.parentWindow : window, l ? (l = o, null !== (c = (c = r.relatedTarget || r.toElement) ? Qo(c) : null) && (c !== (d = Xe(c)) || 5 !== c.tag && 6 !== c.tag) && (c = null)) : (l = null, c = o), l !== c)) {
                            if (u = gr, g = "onMouseLeave", h = "onMouseEnter", f = "mouse", "pointerout" !== e && "pointerover" !== e || (u = Tr, g = "onPointerLeave", h = "onPointerEnter", f = "pointer"), d = null == l ? a : Zo(l), p = null == c ? a : Zo(c), (a = new u(g, f + "leave", l, r, n)).target = d, a.relatedTarget = p, g = null, Qo(n) === o && ((u = new u(h, f + "enter", c, r, n)).target = p, u.relatedTarget = d, g = u), d = g, l && c) e: {
                                for (h = c, f = 0,
                                    p = u = l; p; p = Io(p)) f++;
                                for (p = 0, g = h; g; g = Io(g)) p++;
                                for (; 0 < f - p;) u = Io(u),
                                f--;
                                for (; 0 < p - f;) h = Io(h),
                                p--;
                                for (; f--;) {
                                    if (u === h || null !== h && u === h.alternate) break e;
                                    u = Io(u), h = Io(h)
                                }
                                u = null
                            }
                            else u = null;
                            null !== l && Do(s, a, l, u, !1), null !== c && null !== d && Do(s, d, c, u, !0)
                        }
                        if ("select" === (l = (a = o ? Zo(o) : window).nodeName && a.nodeName.toLowerCase()) || "input" === l && "file" === a.type) var m = Kr;
                        else if (Vr(a))
                            if (Xr) m = no;
                            else {
                                m = ro;
                                var _ = to
                            }
                        else(l = a.nodeName) && "input" === l.toLowerCase() && ("checkbox" === a.type || "radio" === a.type) && (m = oo);
                        switch (m && (m = m(e, o)) ? Ur(s, m, r, n) : (_ && _(e, a, o), "focusout" === e && (_ = a._wrapperState) && _.controlled && "number" === a.type && ne(a, "number", a.value)), _ = o ? Zo(o) : window, e) {
                            case "focusin":
                                (Vr(_) || "true" === _.contentEditable) && (fo = _, go = o, mo = null);
                                break;
                            case "focusout":
                                mo = go = fo = null;
                                break;
                            case "mousedown":
                                _o = !0;
                                break;
                            case "contextmenu":
                            case "mouseup":
                            case "dragend":
                                _o = !1, vo(s, r, n);
                                break;
                            case "selectionchange":
                                if (po) break;
                            case "keydown":
                            case "keyup":
                                vo(s, r, n)
                        }
                        var v;
                        if (Fr) e: {
                            switch (e) {
                                case "compositionstart":
                                    var b = "onCompositionStart";
                                    break e;
                                case "compositionend":
                                    b = "onCompositionEnd";
                                    break e;
                                case "compositionupdate":
                                    b = "onCompositionUpdate";
                                    break e
                            }
                            b = void 0
                        }
                        else jr ? Nr(e, r) && (b = "onCompositionEnd") : "keydown" === e && 229 === r.keyCode && (b = "onCompositionStart");
                        b && (Or && "ko" !== r.locale && (jr || "onCompositionStart" !== b ? "onCompositionEnd" === b && jr && (v = rr()) : (er = "value" in (Zt = n) ? Zt.value : Zt.textContent, jr = !0)), 0 < (_ = Fo(o, b)).length && (b = new yr(b, e, null, r, n), s.push({
                            event: b,
                            listeners: _
                        }), v ? b.data = v : null !== (v = $r(r)) && (b.data = v))), (v = Dr ? function(e, t) {
                            switch (e) {
                                case "compositionend":
                                    return $r(t);
                                case "keypress":
                                    return 32 !== t.which ? null : (Br = !0, Rr);
                                case "textInput":
                                    return (e = t.data) === Rr && Br ? null : e;
                                default:
                                    return null
                            }
                        }(e, r) : function(e, t) {
                            if (jr) return "compositionend" === e || !Fr && Nr(e, t) ? (e = rr(), tr = er = Zt = null, jr = !1, e) : null;
                            switch (e) {
                                case "paste":
                                    return null;
                                case "keypress":
                                    if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) {
                                        if (t.char && 1 < t.char.length) return t.char;
                                        if (t.which) return String.fromCharCode(t.which)
                                    }
                                    return null;
                                case "compositionend":
                                    return Or && "ko" !== t.locale ? null : t.data;
                                default:
                                    return null
                            }
                        }(e, r)) && (0 < (o = Fo(o, "onBeforeInput")).length && (n = new yr("onBeforeInput", "beforeinput", null, r, n), s.push({
                            event: n,
                            listeners: o
                        }), n.data = v))
                    }
                    ko(s, t)
                }))
            }

            function Po(e, t, r) {
                return {
                    instance: e,
                    listener: t,
                    currentTarget: r
                }
            }

            function Fo(e, t) {
                for (var r = t + "Capture", o = []; null !== e;) {
                    var n = e,
                        i = n.stateNode;
                    5 === n.tag && null !== i && (n = i, null != (i = $e(e, r)) && o.unshift(Po(e, i, n)), null != (i = $e(e, t)) && o.push(Po(e, i, n))), e = e.return
                }
                return o
            }

            function Io(e) {
                if (null === e) return null;
                do {
                    e = e.return
                } while (e && 5 !== e.tag);
                return e || null
            }

            function Do(e, t, r, o, n) {
                for (var i = t._reactName, s = []; null !== r && r !== o;) {
                    var a = r,
                        l = a.alternate,
                        c = a.stateNode;
                    if (null !== l && l === o) break;
                    5 === a.tag && null !== c && (a = c, n ? null != (l = $e(r, i)) && s.unshift(Po(r, l, a)) : n || null != (l = $e(r, i)) && s.push(Po(r, l, a))), r = r.return
                }
                0 !== s.length && e.push({
                    event: t,
                    listeners: s
                })
            }

            function Oo() {}
            var Ro = null,
                Bo = null;

            function No(e, t) {
                switch (e) {
                    case "button":
                    case "input":
                    case "select":
                    case "textarea":
                        return !!t.autoFocus
                }
                return !1
            }

            function $o(e, t) {
                return "textarea" === e || "option" === e || "noscript" === e || "string" == typeof t.children || "number" == typeof t.children || "object" == typeof t.dangerouslySetInnerHTML && null !== t.dangerouslySetInnerHTML && null != t.dangerouslySetInnerHTML.__html
            }
            var jo = "function" == typeof setTimeout ? setTimeout : void 0,
                Wo = "function" == typeof clearTimeout ? clearTimeout : void 0;

            function Vo(e) {
                1 === e.nodeType ? e.textContent = "" : 9 === e.nodeType && (null != (e = e.body) && (e.textContent = ""))
            }

            function Uo(e) {
                for (; null != e; e = e.nextSibling) {
                    var t = e.nodeType;
                    if (1 === t || 3 === t) break
                }
                return e
            }

            function qo(e) {
                e = e.previousSibling;
                for (var t = 0; e;) {
                    if (8 === e.nodeType) {
                        var r = e.data;
                        if ("$" === r || "$!" === r || "$?" === r) {
                            if (0 === t) return e;
                            t--
                        } else "/$" === r && t++
                    }
                    e = e.previousSibling
                }
                return null
            }
            var zo = 0;
            var Ho = Math.random().toString(36).slice(2),
                Yo = "__reactFiber$" + Ho,
                Ko = "__reactProps$" + Ho,
                Xo = "__reactContainer$" + Ho,
                Go = "__reactEvents$" + Ho;

            function Qo(e) {
                var t = e[Yo];
                if (t) return t;
                for (var r = e.parentNode; r;) {
                    if (t = r[Xo] || r[Yo]) {
                        if (r = t.alternate, null !== t.child || null !== r && null !== r.child)
                            for (e = qo(e); null !== e;) {
                                if (r = e[Yo]) return r;
                                e = qo(e)
                            }
                        return t
                    }
                    r = (e = r).parentNode
                }
                return null
            }

            function Jo(e) {
                return !(e = e[Yo] || e[Xo]) || 5 !== e.tag && 6 !== e.tag && 13 !== e.tag && 3 !== e.tag ? null : e
            }

            function Zo(e) {
                if (5 === e.tag || 6 === e.tag) return e.stateNode;
                throw Error(s(33))
            }

            function en(e) {
                return e[Ko] || null
            }

            function tn(e) {
                var t = e[Go];
                return void 0 === t && (t = e[Go] = new Set), t
            }
            var rn = [],
                on = -1;

            function nn(e) {
                return {
                    current: e
                }
            }

            function sn(e) {
                0 > on || (e.current = rn[on], rn[on] = null, on--)
            }

            function an(e, t) {
                on++, rn[on] = e.current, e.current = t
            }
            var ln = {},
                cn = nn(ln),
                un = nn(!1),
                dn = ln;

            function hn(e, t) {
                var r = e.type.contextTypes;
                if (!r) return ln;
                var o = e.stateNode;
                if (o && o.__reactInternalMemoizedUnmaskedChildContext === t) return o.__reactInternalMemoizedMaskedChildContext;
                var n, i = {};
                for (n in r) i[n] = t[n];
                return o && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = i), i
            }

            function pn(e) {
                return null != (e = e.childContextTypes)
            }

            function fn() {
                sn(un), sn(cn)
            }

            function gn(e, t, r) {
                if (cn.current !== ln) throw Error(s(168));
                an(cn, t), an(un, r)
            }

            function mn(e, t, r) {
                var o = e.stateNode;
                if (e = t.childContextTypes, "function" != typeof o.getChildContext) return r;
                for (var i in o = o.getChildContext())
                    if (!(i in e)) throw Error(s(108, Y(t) || "Unknown", i));
                return n({}, r, o)
            }

            function _n(e) {
                return e = (e = e.stateNode) && e.__reactInternalMemoizedMergedChildContext || ln, dn = cn.current, an(cn, e), an(un, un.current), !0
            }

            function vn(e, t, r) {
                var o = e.stateNode;
                if (!o) throw Error(s(169));
                r ? (e = mn(e, t, dn), o.__reactInternalMemoizedMergedChildContext = e, sn(un), sn(cn), an(cn, e)) : sn(un), an(un, r)
            }
            var bn = null,
                yn = null,
                wn = i.unstable_runWithPriority,
                Sn = i.unstable_scheduleCallback,
                Cn = i.unstable_cancelCallback,
                kn = i.unstable_shouldYield,
                En = i.unstable_requestPaint,
                xn = i.unstable_now,
                Tn = i.unstable_getCurrentPriorityLevel,
                An = i.unstable_ImmediatePriority,
                Mn = i.unstable_UserBlockingPriority,
                Ln = i.unstable_NormalPriority,
                Pn = i.unstable_LowPriority,
                Fn = i.unstable_IdlePriority,
                In = {},
                Dn = void 0 !== En ? En : function() {},
                On = null,
                Rn = null,
                Bn = !1,
                Nn = xn(),
                $n = 1e4 > Nn ? xn : function() {
                    return xn() - Nn
                };

            function jn() {
                switch (Tn()) {
                    case An:
                        return 99;
                    case Mn:
                        return 98;
                    case Ln:
                        return 97;
                    case Pn:
                        return 96;
                    case Fn:
                        return 95;
                    default:
                        throw Error(s(332))
                }
            }

            function Wn(e) {
                switch (e) {
                    case 99:
                        return An;
                    case 98:
                        return Mn;
                    case 97:
                        return Ln;
                    case 96:
                        return Pn;
                    case 95:
                        return Fn;
                    default:
                        throw Error(s(332))
                }
            }

            function Vn(e, t) {
                return e = Wn(e), wn(e, t)
            }

            function Un(e, t, r) {
                return e = Wn(e), Sn(e, t, r)
            }

            function qn() {
                if (null !== Rn) {
                    var e = Rn;
                    Rn = null, Cn(e)
                }
                zn()
            }

            function zn() {
                if (!Bn && null !== On) {
                    Bn = !0;
                    var e = 0;
                    try {
                        var t = On;
                        Vn(99, (function() {
                            for (; e < t.length; e++) {
                                var r = t[e];
                                do {
                                    r = r(!0)
                                } while (null !== r)
                            }
                        })), On = null
                    } catch (t) {
                        throw null !== On && (On = On.slice(e + 1)), Sn(An, qn), t
                    } finally {
                        Bn = !1
                    }
                }
            }
            var Hn = w.ReactCurrentBatchConfig;

            function Yn(e, t) {
                if (e && e.defaultProps) {
                    for (var r in t = n({}, t), e = e.defaultProps) void 0 === t[r] && (t[r] = e[r]);
                    return t
                }
                return t
            }
            var Kn = nn(null),
                Xn = null,
                Gn = null,
                Qn = null;

            function Jn() {
                Qn = Gn = Xn = null
            }

            function Zn(e) {
                var t = Kn.current;
                sn(Kn), e.type._context._currentValue = t
            }

            function ei(e, t) {
                for (; null !== e;) {
                    var r = e.alternate;
                    if ((e.childLanes & t) === t) {
                        if (null === r || (r.childLanes & t) === t) break;
                        r.childLanes |= t
                    } else e.childLanes |= t, null !== r && (r.childLanes |= t);
                    e = e.return
                }
            }

            function ti(e, t) {
                Xn = e, Qn = Gn = null, null !== (e = e.dependencies) && null !== e.firstContext && (0 != (e.lanes & t) && (Fs = !0), e.firstContext = null)
            }

            function ri(e, t) {
                if (Qn !== e && !1 !== t && 0 !== t)
                    if ("number" == typeof t && 1073741823 !== t || (Qn = e, t = 1073741823), t = {
                            context: e,
                            observedBits: t,
                            next: null
                        }, null === Gn) {
                        if (null === Xn) throw Error(s(308));
                        Gn = t, Xn.dependencies = {
                            lanes: 0,
                            firstContext: t,
                            responders: null
                        }
                    } else Gn = Gn.next = t;
                return e._currentValue
            }
            var oi = !1;

            function ni(e) {
                e.updateQueue = {
                    baseState: e.memoizedState,
                    firstBaseUpdate: null,
                    lastBaseUpdate: null,
                    shared: {
                        pending: null
                    },
                    effects: null
                }
            }

            function ii(e, t) {
                e = e.updateQueue, t.updateQueue === e && (t.updateQueue = {
                    baseState: e.baseState,
                    firstBaseUpdate: e.firstBaseUpdate,
                    lastBaseUpdate: e.lastBaseUpdate,
                    shared: e.shared,
                    effects: e.effects
                })
            }

            function si(e, t) {
                return {
                    eventTime: e,
                    lane: t,
                    tag: 0,
                    payload: null,
                    callback: null,
                    next: null
                }
            }

            function ai(e, t) {
                if (null !== (e = e.updateQueue)) {
                    var r = (e = e.shared).pending;
                    null === r ? t.next = t : (t.next = r.next, r.next = t), e.pending = t
                }
            }

            function li(e, t) {
                var r = e.updateQueue,
                    o = e.alternate;
                if (null !== o && r === (o = o.updateQueue)) {
                    var n = null,
                        i = null;
                    if (null !== (r = r.firstBaseUpdate)) {
                        do {
                            var s = {
                                eventTime: r.eventTime,
                                lane: r.lane,
                                tag: r.tag,
                                payload: r.payload,
                                callback: r.callback,
                                next: null
                            };
                            null === i ? n = i = s : i = i.next = s, r = r.next
                        } while (null !== r);
                        null === i ? n = i = t : i = i.next = t
                    } else n = i = t;
                    return r = {
                        baseState: o.baseState,
                        firstBaseUpdate: n,
                        lastBaseUpdate: i,
                        shared: o.shared,
                        effects: o.effects
                    }, void(e.updateQueue = r)
                }
                null === (e = r.lastBaseUpdate) ? r.firstBaseUpdate = t : e.next = t, r.lastBaseUpdate = t
            }

            function ci(e, t, r, o) {
                var i = e.updateQueue;
                oi = !1;
                var s = i.firstBaseUpdate,
                    a = i.lastBaseUpdate,
                    l = i.shared.pending;
                if (null !== l) {
                    i.shared.pending = null;
                    var c = l,
                        u = c.next;
                    c.next = null, null === a ? s = u : a.next = u, a = c;
                    var d = e.alternate;
                    if (null !== d) {
                        var h = (d = d.updateQueue).lastBaseUpdate;
                        h !== a && (null === h ? d.firstBaseUpdate = u : h.next = u, d.lastBaseUpdate = c)
                    }
                }
                if (null !== s) {
                    for (h = i.baseState, a = 0, d = u = c = null;;) {
                        l = s.lane;
                        var p = s.eventTime;
                        if ((o & l) === l) {
                            null !== d && (d = d.next = {
                                eventTime: p,
                                lane: 0,
                                tag: s.tag,
                                payload: s.payload,
                                callback: s.callback,
                                next: null
                            });
                            e: {
                                var f = e,
                                    g = s;
                                switch (l = t, p = r, g.tag) {
                                    case 1:
                                        if ("function" == typeof(f = g.payload)) {
                                            h = f.call(p, h, l);
                                            break e
                                        }
                                        h = f;
                                        break e;
                                    case 3:
                                        f.flags = -4097 & f.flags | 64;
                                    case 0:
                                        if (null == (l = "function" == typeof(f = g.payload) ? f.call(p, h, l) : f)) break e;
                                        h = n({}, h, l);
                                        break e;
                                    case 2:
                                        oi = !0
                                }
                            }
                            null !== s.callback && (e.flags |= 32, null === (l = i.effects) ? i.effects = [s] : l.push(s))
                        } else p = {
                            eventTime: p,
                            lane: l,
                            tag: s.tag,
                            payload: s.payload,
                            callback: s.callback,
                            next: null
                        }, null === d ? (u = d = p, c = h) : d = d.next = p, a |= l;
                        if (null === (s = s.next)) {
                            if (null === (l = i.shared.pending)) break;
                            s = l.next, l.next = null, i.lastBaseUpdate = l, i.shared.pending = null
                        }
                    }
                    null === d && (c = h), i.baseState = c, i.firstBaseUpdate = u, i.lastBaseUpdate = d, Da |= a, e.lanes = a, e.memoizedState = h
                }
            }

            function ui(e, t, r) {
                if (e = t.effects, t.effects = null, null !== e)
                    for (t = 0; t < e.length; t++) {
                        var o = e[t],
                            n = o.callback;
                        if (null !== n) {
                            if (o.callback = null, o = r, "function" != typeof n) throw Error(s(191, n));
                            n.call(o)
                        }
                    }
            }
            var di = (new o.Component).refs;

            function hi(e, t, r, o) {
                r = null == (r = r(o, t = e.memoizedState)) ? t : n({}, t, r), e.memoizedState = r, 0 === e.lanes && (e.updateQueue.baseState = r)
            }
            var pi = {
                isMounted: function(e) {
                    return !!(e = e._reactInternals) && Xe(e) === e
                },
                enqueueSetState: function(e, t, r) {
                    e = e._reactInternals;
                    var o = il(),
                        n = sl(e),
                        i = si(o, n);
                    i.payload = t, null != r && (i.callback = r), ai(e, i), al(e, n, o)
                },
                enqueueReplaceState: function(e, t, r) {
                    e = e._reactInternals;
                    var o = il(),
                        n = sl(e),
                        i = si(o, n);
                    i.tag = 1, i.payload = t, null != r && (i.callback = r), ai(e, i), al(e, n, o)
                },
                enqueueForceUpdate: function(e, t) {
                    e = e._reactInternals;
                    var r = il(),
                        o = sl(e),
                        n = si(r, o);
                    n.tag = 2, null != t && (n.callback = t), ai(e, n), al(e, o, r)
                }
            };

            function fi(e, t, r, o, n, i, s) {
                return "function" == typeof(e = e.stateNode).shouldComponentUpdate ? e.shouldComponentUpdate(o, i, s) : !t.prototype || !t.prototype.isPureReactComponent || (!ao(r, o) || !ao(n, i))
            }

            function gi(e, t, r) {
                var o = !1,
                    n = ln,
                    i = t.contextType;
                return "object" == typeof i && null !== i ? i = ri(i) : (n = pn(t) ? dn : cn.current, i = (o = null != (o = t.contextTypes)) ? hn(e, n) : ln), t = new t(r, i), e.memoizedState = null !== t.state && void 0 !== t.state ? t.state : null, t.updater = pi, e.stateNode = t, t._reactInternals = e, o && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = n, e.__reactInternalMemoizedMaskedChildContext = i), t
            }

            function mi(e, t, r, o) {
                e = t.state, "function" == typeof t.componentWillReceiveProps && t.componentWillReceiveProps(r, o), "function" == typeof t.UNSAFE_componentWillReceiveProps && t.UNSAFE_componentWillReceiveProps(r, o), t.state !== e && pi.enqueueReplaceState(t, t.state, null)
            }

            function _i(e, t, r, o) {
                var n = e.stateNode;
                n.props = r, n.state = e.memoizedState, n.refs = di, ni(e);
                var i = t.contextType;
                "object" == typeof i && null !== i ? n.context = ri(i) : (i = pn(t) ? dn : cn.current, n.context = hn(e, i)), ci(e, r, n, o), n.state = e.memoizedState, "function" == typeof(i = t.getDerivedStateFromProps) && (hi(e, t, i, r), n.state = e.memoizedState), "function" == typeof t.getDerivedStateFromProps || "function" == typeof n.getSnapshotBeforeUpdate || "function" != typeof n.UNSAFE_componentWillMount && "function" != typeof n.componentWillMount || (t = n.state, "function" == typeof n.componentWillMount && n.componentWillMount(),
                    "function" == typeof n.UNSAFE_componentWillMount && n.UNSAFE_componentWillMount(), t !== n.state && pi.enqueueReplaceState(n, n.state, null), ci(e, r, n, o), n.state = e.memoizedState), "function" == typeof n.componentDidMount && (e.flags |= 4)
            }
            var vi = Array.isArray;

            function bi(e, t, r) {
                if (null !== (e = r.ref) && "function" != typeof e && "object" != typeof e) {
                    if (r._owner) {
                        if (r = r._owner) {
                            if (1 !== r.tag) throw Error(s(309));
                            var o = r.stateNode
                        }
                        if (!o) throw Error(s(147, e));
                        var n = "" + e;
                        return null !== t && null !== t.ref && "function" == typeof t.ref && t.ref._stringRef === n ? t.ref : ((t = function(e) {
                            var t = o.refs;
                            t === di && (t = o.refs = {}), null === e ? delete t[n] : t[n] = e
                        })._stringRef = n, t)
                    }
                    if ("string" != typeof e) throw Error(s(284));
                    if (!r._owner) throw Error(s(290, e))
                }
                return e
            }

            function yi(e, t) {
                if ("textarea" !== e.type) throw Error(s(31, "[object Object]" === Object.prototype.toString.call(t) ? "object with keys {" + Object.keys(t).join(", ") + "}" : t))
            }

            function wi(e) {
                function t(t, r) {
                    if (e) {
                        var o = t.lastEffect;
                        null !== o ? (o.nextEffect = r, t.lastEffect = r) : t.firstEffect = t.lastEffect = r, r.nextEffect = null, r.flags = 8
                    }
                }

                function r(r, o) {
                    if (!e) return null;
                    for (; null !== o;) t(r, o), o = o.sibling;
                    return null
                }

                function o(e, t) {
                    for (e = new Map; null !== t;) null !== t.key ? e.set(t.key, t) : e.set(t.index, t), t = t.sibling;
                    return e
                }

                function n(e, t) {
                    return (e = $l(e, t)).index = 0, e.sibling = null, e
                }

                function i(t, r, o) {
                    return t.index = o, e ? null !== (o = t.alternate) ? (o = o.index) < r ? (t.flags = 2, r) : o : (t.flags = 2, r) : r
                }

                function a(t) {
                    return e && null === t.alternate && (t.flags = 2), t
                }

                function l(e, t, r, o) {
                    return null === t || 6 !== t.tag ? ((t = Ul(r, e.mode, o)).return = e, t) : ((t = n(t, r)).return = e, t)
                }

                function c(e, t, r, o) {
                    return null !== t && t.elementType === r.type ? ((o = n(t, r.props)).ref = bi(e, t, r), o.return = e, o) : ((o = jl(r.type, r.key, r.props, null, e.mode, o)).ref = bi(e, t, r), o.return = e, o)
                }

                function u(e, t, r, o) {
                    return null === t || 4 !== t.tag || t.stateNode.containerInfo !== r.containerInfo || t.stateNode.implementation !== r.implementation ? ((t = ql(r, e.mode, o)).return = e, t) : ((t = n(t, r.children || [])).return = e, t)
                }

                function d(e, t, r, o, i) {
                    return null === t || 7 !== t.tag ? ((t = Wl(r, e.mode, o, i)).return = e, t) : ((t = n(t, r)).return = e, t)
                }

                function h(e, t, r) {
                    if ("string" == typeof t || "number" == typeof t) return (t = Ul("" + t, e.mode, r)).return = e, t;
                    if ("object" == typeof t && null !== t) {
                        switch (t.$$typeof) {
                            case S:
                                return (r = jl(t.type, t.key, t.props, null, e.mode, r)).ref = bi(e, null, t), r.return = e, r;
                            case C:
                                return (t = ql(t, e.mode, r)).return = e, t
                        }
                        if (vi(t) || V(t)) return (t = Wl(t, e.mode, r, null)).return = e, t;
                        yi(e, t)
                    }
                    return null
                }

                function p(e, t, r, o) {
                    var n = null !== t ? t.key : null;
                    if ("string" == typeof r || "number" == typeof r) return null !== n ? null : l(e, t, "" + r, o);
                    if ("object" == typeof r && null !== r) {
                        switch (r.$$typeof) {
                            case S:
                                return r.key === n ? r.type === k ? d(e, t, r.props.children, o, n) : c(e, t, r, o) : null;
                            case C:
                                return r.key === n ? u(e, t, r, o) : null
                        }
                        if (vi(r) || V(r)) return null !== n ? null : d(e, t, r, o, null);
                        yi(e, r)
                    }
                    return null
                }

                function f(e, t, r, o, n) {
                    if ("string" == typeof o || "number" == typeof o) return l(t, e = e.get(r) || null, "" + o, n);
                    if ("object" == typeof o && null !== o) {
                        switch (o.$$typeof) {
                            case S:
                                return e = e.get(null === o.key ? r : o.key) || null, o.type === k ? d(t, e, o.props.children, n, o.key) : c(t, e, o, n);
                            case C:
                                return u(t, e = e.get(null === o.key ? r : o.key) || null, o, n)
                        }
                        if (vi(o) || V(o)) return d(t, e = e.get(r) || null, o, n, null);
                        yi(t, o)
                    }
                    return null
                }

                function g(n, s, a, l) {
                    for (var c = null, u = null, d = s, g = s = 0, m = null; null !== d && g < a.length; g++) {
                        d.index > g ? (m = d, d = null) : m = d.sibling;
                        var _ = p(n, d, a[g], l);
                        if (null === _) {
                            null === d && (d = m);
                            break
                        }
                        e && d && null === _.alternate && t(n, d), s = i(_, s, g), null === u ? c = _ : u.sibling = _, u = _, d = m
                    }
                    if (g === a.length) return r(n, d), c;
                    if (null === d) {
                        for (; g < a.length; g++) null !== (d = h(n, a[g], l)) && (s = i(d, s, g), null === u ? c = d : u.sibling = d, u = d);
                        return c
                    }
                    for (d = o(n, d); g < a.length; g++) null !== (m = f(d, n, g, a[g], l)) && (e && null !== m.alternate && d.delete(null === m.key ? g : m.key), s = i(m, s, g), null === u ? c = m : u.sibling = m, u = m);
                    return e && d.forEach((function(e) {
                        return t(n, e)
                    })), c
                }

                function m(n, a, l, c) {
                    var u = V(l);
                    if ("function" != typeof u) throw Error(s(150));
                    if (null == (l = u.call(l))) throw Error(s(151));
                    for (var d = u = null, g = a, m = a = 0, _ = null, v = l.next(); null !== g && !v.done; m++, v = l.next()) {
                        g.index > m ? (_ = g, g = null) : _ = g.sibling;
                        var b = p(n, g, v.value, c);
                        if (null === b) {
                            null === g && (g = _);
                            break
                        }
                        e && g && null === b.alternate && t(n, g), a = i(b, a, m), null === d ? u = b : d.sibling = b, d = b, g = _
                    }
                    if (v.done) return r(n, g), u;
                    if (null === g) {
                        for (; !v.done; m++, v = l.next()) null !== (v = h(n, v.value, c)) && (a = i(v, a, m), null === d ? u = v : d.sibling = v, d = v);
                        return u
                    }
                    for (g = o(n, g); !v.done; m++, v = l.next()) null !== (v = f(g, n, m, v.value, c)) && (e && null !== v.alternate && g.delete(null === v.key ? m : v.key), a = i(v, a, m), null === d ? u = v : d.sibling = v, d = v);
                    return e && g.forEach((function(e) {
                        return t(n, e)
                    })), u
                }
                return function(e, o, i, l) {
                    var c = "object" == typeof i && null !== i && i.type === k && null === i.key;
                    c && (i = i.props.children);
                    var u = "object" == typeof i && null !== i;
                    if (u) switch (i.$$typeof) {
                        case S:
                            e: {
                                for (u = i.key, c = o; null !== c;) {
                                    if (c.key === u) {
                                        switch (c.tag) {
                                            case 7:
                                                if (i.type === k) {
                                                    r(e, c.sibling), (o = n(c, i.props.children)).return = e, e = o;
                                                    break e
                                                }
                                                break;
                                            default:
                                                if (c.elementType === i.type) {
                                                    r(e, c.sibling), (o = n(c, i.props)).ref = bi(e, c, i), o.return = e, e = o;
                                                    break e
                                                }
                                        }
                                        r(e, c);
                                        break
                                    }
                                    t(e, c), c = c.sibling
                                }
                                i.type === k ? ((o = Wl(i.props.children, e.mode, l, i.key)).return = e, e = o) : ((l = jl(i.type, i.key, i.props, null, e.mode, l)).ref = bi(e, o, i), l.return = e, e = l)
                            }
                            return a(e);
                        case C:
                            e: {
                                for (c = i.key; null !== o;) {
                                    if (o.key === c) {
                                        if (4 === o.tag && o.stateNode.containerInfo === i.containerInfo && o.stateNode.implementation === i.implementation) {
                                            r(e, o.sibling), (o = n(o, i.children || [])).return = e, e = o;
                                            break e
                                        }
                                        r(e, o);
                                        break
                                    }
                                    t(e, o), o = o.sibling
                                }(o = ql(i, e.mode, l)).return = e,
                                e = o
                            }
                            return a(e)
                    }
                    if ("string" == typeof i || "number" == typeof i) return i = "" + i, null !== o && 6 === o.tag ? (r(e, o.sibling), (o = n(o, i)).return = e, e = o) : (r(e, o), (o = Ul(i, e.mode, l)).return = e, e = o), a(e);
                    if (vi(i)) return g(e, o, i, l);
                    if (V(i)) return m(e, o, i, l);
                    if (u && yi(e, i), void 0 === i && !c) switch (e.tag) {
                        case 1:
                        case 22:
                        case 0:
                        case 11:
                        case 15:
                            throw Error(s(152, Y(e.type) || "Component"))
                    }
                    return r(e, o)
                }
            }
            var Si = wi(!0),
                Ci = wi(!1),
                ki = {},
                Ei = nn(ki),
                xi = nn(ki),
                Ti = nn(ki);

            function Ai(e) {
                if (e === ki) throw Error(s(174));
                return e
            }

            function Mi(e, t) {
                switch (an(Ti, t), an(xi, e), an(Ei, ki), e = t.nodeType) {
                    case 9:
                    case 11:
                        t = (t = t.documentElement) ? t.namespaceURI : fe(null, "");
                        break;
                    default:
                        t = fe(t = (e = 8 === e ? t.parentNode : t).namespaceURI || null, e = e.tagName)
                }
                sn(Ei), an(Ei, t)
            }

            function Li() {
                sn(Ei), sn(xi), sn(Ti)
            }

            function Pi(e) {
                Ai(Ti.current);
                var t = Ai(Ei.current),
                    r = fe(t, e.type);
                t !== r && (an(xi, e), an(Ei, r))
            }

            function Fi(e) {
                xi.current === e && (sn(Ei), sn(xi))
            }
            var Ii = nn(0);

            function Di(e) {
                for (var t = e; null !== t;) {
                    if (13 === t.tag) {
                        var r = t.memoizedState;
                        if (null !== r && (null === (r = r.dehydrated) || "$?" === r.data || "$!" === r.data)) return t
                    } else if (19 === t.tag && void 0 !== t.memoizedProps.revealOrder) {
                        if (0 != (64 & t.flags)) return t
                    } else if (null !== t.child) {
                        t.child.return = t, t = t.child;
                        continue
                    }
                    if (t === e) break;
                    for (; null === t.sibling;) {
                        if (null === t.return || t.return === e) return null;
                        t = t.return
                    }
                    t.sibling.return = t.return, t = t.sibling
                }
                return null
            }
            var Oi = null,
                Ri = null,
                Bi = !1;

            function Ni(e, t) {
                var r = Bl(5, null, null, 0);
                r.elementType = "DELETED", r.type = "DELETED", r.stateNode = t, r.return = e, r.flags = 8, null !== e.lastEffect ? (e.lastEffect.nextEffect = r, e.lastEffect = r) : e.firstEffect = e.lastEffect = r
            }

            function $i(e, t) {
                switch (e.tag) {
                    case 5:
                        var r = e.type;
                        return null !== (t = 1 !== t.nodeType || r.toLowerCase() !== t.nodeName.toLowerCase() ? null : t) && (e.stateNode = t, !0);
                    case 6:
                        return null !== (t = "" === e.pendingProps || 3 !== t.nodeType ? null : t) && (e.stateNode = t, !0);
                    case 13:
                    default:
                        return !1
                }
            }

            function ji(e) {
                if (Bi) {
                    var t = Ri;
                    if (t) {
                        var r = t;
                        if (!$i(e, t)) {
                            if (!(t = Uo(r.nextSibling)) || !$i(e, t)) return e.flags = -1025 & e.flags | 2, Bi = !1, void(Oi = e);
                            Ni(Oi, r)
                        }
                        Oi = e, Ri = Uo(t.firstChild)
                    } else e.flags = -1025 & e.flags | 2, Bi = !1, Oi = e
                }
            }

            function Wi(e) {
                for (e = e.return; null !== e && 5 !== e.tag && 3 !== e.tag && 13 !== e.tag;) e = e.return;
                Oi = e
            }

            function Vi(e) {
                if (e !== Oi) return !1;
                if (!Bi) return Wi(e), Bi = !0, !1;
                var t = e.type;
                if (5 !== e.tag || "head" !== t && "body" !== t && !$o(t, e.memoizedProps))
                    for (t = Ri; t;) Ni(e, t), t = Uo(t.nextSibling);
                if (Wi(e), 13 === e.tag) {
                    if (!(e = null !== (e = e.memoizedState) ? e.dehydrated : null)) throw Error(s(317));
                    e: {
                        for (e = e.nextSibling, t = 0; e;) {
                            if (8 === e.nodeType) {
                                var r = e.data;
                                if ("/$" === r) {
                                    if (0 === t) {
                                        Ri = Uo(e.nextSibling);
                                        break e
                                    }
                                    t--
                                } else "$" !== r && "$!" !== r && "$?" !== r || t++
                            }
                            e = e.nextSibling
                        }
                        Ri = null
                    }
                } else Ri = Oi ? Uo(e.stateNode.nextSibling) : null;
                return !0
            }

            function Ui() {
                Ri = Oi = null, Bi = !1
            }
            var qi = [];

            function zi() {
                for (var e = 0; e < qi.length; e++) qi[e]._workInProgressVersionPrimary = null;
                qi.length = 0
            }
            var Hi = w.ReactCurrentDispatcher,
                Yi = w.ReactCurrentBatchConfig,
                Ki = 0,
                Xi = null,
                Gi = null,
                Qi = null,
                Ji = !1,
                Zi = !1;

            function es() {
                throw Error(s(321))
            }

            function ts(e, t) {
                if (null === t) return !1;
                for (var r = 0; r < t.length && r < e.length; r++)
                    if (!io(e[r], t[r])) return !1;
                return !0
            }

            function rs(e, t, r, o, n, i) {
                if (Ki = i, Xi = t, t.memoizedState = null, t.updateQueue = null, t.lanes = 0, Hi.current = null === e || null === e.memoizedState ? As : Ms, e = r(o, n), Zi) {
                    i = 0;
                    do {
                        if (Zi = !1, !(25 > i)) throw Error(s(301));
                        i += 1, Qi = Gi = null, t.updateQueue = null, Hi.current = Ls, e = r(o, n)
                    } while (Zi)
                }
                if (Hi.current = Ts, t = null !== Gi && null !== Gi.next, Ki = 0, Qi = Gi = Xi = null, Ji = !1, t) throw Error(s(300));
                return e
            }

            function os() {
                var e = {
                    memoizedState: null,
                    baseState: null,
                    baseQueue: null,
                    queue: null,
                    next: null
                };
                return null === Qi ? Xi.memoizedState = Qi = e : Qi = Qi.next = e, Qi
            }

            function ns() {
                if (null === Gi) {
                    var e = Xi.alternate;
                    e = null !== e ? e.memoizedState : null
                } else e = Gi.next;
                var t = null === Qi ? Xi.memoizedState : Qi.next;
                if (null !== t) Qi = t, Gi = e;
                else {
                    if (null === e) throw Error(s(310));
                    e = {
                        memoizedState: (Gi = e).memoizedState,
                        baseState: Gi.baseState,
                        baseQueue: Gi.baseQueue,
                        queue: Gi.queue,
                        next: null
                    }, null === Qi ? Xi.memoizedState = Qi = e : Qi = Qi.next = e
                }
                return Qi
            }

            function is(e, t) {
                return "function" == typeof t ? t(e) : t
            }

            function ss(e) {
                var t = ns(),
                    r = t.queue;
                if (null === r) throw Error(s(311));
                r.lastRenderedReducer = e;
                var o = Gi,
                    n = o.baseQueue,
                    i = r.pending;
                if (null !== i) {
                    if (null !== n) {
                        var a = n.next;
                        n.next = i.next, i.next = a
                    }
                    o.baseQueue = n = i, r.pending = null
                }
                if (null !== n) {
                    n = n.next, o = o.baseState;
                    var l = a = i = null,
                        c = n;
                    do {
                        var u = c.lane;
                        if ((Ki & u) === u) null !== l && (l = l.next = {
                            lane: 0,
                            action: c.action,
                            eagerReducer: c.eagerReducer,
                            eagerState: c.eagerState,
                            next: null
                        }), o = c.eagerReducer === e ? c.eagerState : e(o, c.action);
                        else {
                            var d = {
                                lane: u,
                                action: c.action,
                                eagerReducer: c.eagerReducer,
                                eagerState: c.eagerState,
                                next: null
                            };
                            null === l ? (a = l = d, i = o) : l = l.next = d, Xi.lanes |= u, Da |= u
                        }
                        c = c.next
                    } while (null !== c && c !== n);
                    null === l ? i = o : l.next = a, io(o, t.memoizedState) || (Fs = !0), t.memoizedState = o, t.baseState = i, t.baseQueue = l, r.lastRenderedState = o
                }
                return [t.memoizedState, r.dispatch]
            }

            function as(e) {
                var t = ns(),
                    r = t.queue;
                if (null === r) throw Error(s(311));
                r.lastRenderedReducer = e;
                var o = r.dispatch,
                    n = r.pending,
                    i = t.memoizedState;
                if (null !== n) {
                    r.pending = null;
                    var a = n = n.next;
                    do {
                        i = e(i, a.action), a = a.next
                    } while (a !== n);
                    io(i, t.memoizedState) || (Fs = !0), t.memoizedState = i, null === t.baseQueue && (t.baseState = i), r.lastRenderedState = i
                }
                return [i, o]
            }

            function ls(e, t, r) {
                var o = t._getVersion;
                o = o(t._source);
                var n = t._workInProgressVersionPrimary;
                if (null !== n ? e = n === o : (e = e.mutableReadLanes, (e = (Ki & e) === e) && (t._workInProgressVersionPrimary = o, qi.push(t))), e) return r(t._source);
                throw qi.push(t), Error(s(350))
            }

            function cs(e, t, r, o) {
                var n = xa;
                if (null === n) throw Error(s(349));
                var i = t._getVersion,
                    a = i(t._source),
                    l = Hi.current,
                    c = l.useState((function() {
                        return ls(n, t, r)
                    })),
                    u = c[1],
                    d = c[0];
                c = Qi;
                var h = e.memoizedState,
                    p = h.refs,
                    f = p.getSnapshot,
                    g = h.source;
                h = h.subscribe;
                var m = Xi;
                return e.memoizedState = {
                    refs: p,
                    source: t,
                    subscribe: o
                }, l.useEffect((function() {
                    p.getSnapshot = r, p.setSnapshot = u;
                    var e = i(t._source);
                    if (!io(a, e)) {
                        e = r(t._source), io(d, e) || (u(e), e = sl(m), n.mutableReadLanes |= e & n.pendingLanes), e = n.mutableReadLanes, n.entangledLanes |= e;
                        for (var o = n.entanglements, s = e; 0 < s;) {
                            var l = 31 - Ut(s),
                                c = 1 << l;
                            o[l] |= e, s &= ~c
                        }
                    }
                }), [r, t, o]), l.useEffect((function() {
                    return o(t._source, (function() {
                        var e = p.getSnapshot,
                            r = p.setSnapshot;
                        try {
                            r(e(t._source));
                            var o = sl(m);
                            n.mutableReadLanes |= o & n.pendingLanes
                        } catch (e) {
                            r((function() {
                                throw e
                            }))
                        }
                    }))
                }), [t, o]), io(f, r) && io(g, t) && io(h, o) || ((e = {
                    pending: null,
                    dispatch: null,
                    lastRenderedReducer: is,
                    lastRenderedState: d
                }).dispatch = u = xs.bind(null, Xi, e), c.queue = e, c.baseQueue = null, d = ls(n, t, r), c.memoizedState = c.baseState = d), d
            }

            function us(e, t, r) {
                return cs(ns(), e, t, r)
            }

            function ds(e) {
                var t = os();
                return "function" == typeof e && (e = e()), t.memoizedState = t.baseState = e, e = (e = t.queue = {
                    pending: null,
                    dispatch: null,
                    lastRenderedReducer: is,
                    lastRenderedState: e
                }).dispatch = xs.bind(null, Xi, e), [t.memoizedState, e]
            }

            function hs(e, t, r, o) {
                return e = {
                    tag: e,
                    create: t,
                    destroy: r,
                    deps: o,
                    next: null
                }, null === (t = Xi.updateQueue) ? (t = {
                    lastEffect: null
                }, Xi.updateQueue = t, t.lastEffect = e.next = e) : null === (r = t.lastEffect) ? t.lastEffect = e.next = e : (o = r.next, r.next = e, e.next = o, t.lastEffect = e), e
            }

            function ps(e) {
                return e = {
                    current: e
                }, os().memoizedState = e
            }

            function fs() {
                return ns().memoizedState
            }

            function gs(e, t, r, o) {
                var n = os();
                Xi.flags |= e, n.memoizedState = hs(1 | t, r, void 0, void 0 === o ? null : o)
            }

            function ms(e, t, r, o) {
                var n = ns();
                o = void 0 === o ? null : o;
                var i = void 0;
                if (null !== Gi) {
                    var s = Gi.memoizedState;
                    if (i = s.destroy, null !== o && ts(o, s.deps)) return void hs(t, r, i, o)
                }
                Xi.flags |= e, n.memoizedState = hs(1 | t, r, i, o)
            }

            function _s(e, t) {
                return gs(516, 4, e, t)
            }

            function vs(e, t) {
                return ms(516, 4, e, t)
            }

            function bs(e, t) {
                return ms(4, 2, e, t)
            }

            function ys(e, t) {
                return "function" == typeof t ? (e = e(), t(e), function() {
                    t(null)
                }) : null != t ? (e = e(), t.current = e, function() {
                    t.current = null
                }) : void 0
            }

            function ws(e, t, r) {
                return r = null != r ? r.concat([e]) : null, ms(4, 2, ys.bind(null, t, e), r)
            }

            function Ss() {}

            function Cs(e, t) {
                var r = ns();
                t = void 0 === t ? null : t;
                var o = r.memoizedState;
                return null !== o && null !== t && ts(t, o[1]) ? o[0] : (r.memoizedState = [e, t], e)
            }

            function ks(e, t) {
                var r = ns();
                t = void 0 === t ? null : t;
                var o = r.memoizedState;
                return null !== o && null !== t && ts(t, o[1]) ? o[0] : (e = e(), r.memoizedState = [e, t], e)
            }

            function Es(e, t) {
                var r = jn();
                Vn(98 > r ? 98 : r, (function() {
                    e(!0)
                })), Vn(97 < r ? 97 : r, (function() {
                    var r = Yi.transition;
                    Yi.transition = 1;
                    try {
                        e(!1), t()
                    } finally {
                        Yi.transition = r
                    }
                }))
            }

            function xs(e, t, r) {
                var o = il(),
                    n = sl(e),
                    i = {
                        lane: n,
                        action: r,
                        eagerReducer: null,
                        eagerState: null,
                        next: null
                    },
                    s = t.pending;
                if (null === s ? i.next = i : (i.next = s.next, s.next = i), t.pending = i, s = e.alternate, e === Xi || null !== s && s === Xi) Zi = Ji = !0;
                else {
                    if (0 === e.lanes && (null === s || 0 === s.lanes) && null !== (s = t.lastRenderedReducer)) try {
                        var a = t.lastRenderedState,
                            l = s(a, r);
                        if (i.eagerReducer = s, i.eagerState = l, io(l, a)) return
                    } catch (e) {}
                    al(e, n, o)
                }
            }
            var Ts = {
                    readContext: ri,
                    useCallback: es,
                    useContext: es,
                    useEffect: es,
                    useImperativeHandle: es,
                    useLayoutEffect: es,
                    useMemo: es,
                    useReducer: es,
                    useRef: es,
                    useState: es,
                    useDebugValue: es,
                    useDeferredValue: es,
                    useTransition: es,
                    useMutableSource: es,
                    useOpaqueIdentifier: es,
                    unstable_isNewReconciler: !1
                },
                As = {
                    readContext: ri,
                    useCallback: function(e, t) {
                        return os().memoizedState = [e, void 0 === t ? null : t], e
                    },
                    useContext: ri,
                    useEffect: _s,
                    useImperativeHandle: function(e, t, r) {
                        return r = null != r ? r.concat([e]) : null, gs(4, 2, ys.bind(null, t, e), r)
                    },
                    useLayoutEffect: function(e, t) {
                        return gs(4, 2, e, t)
                    },
                    useMemo: function(e, t) {
                        var r = os();
                        return t = void 0 === t ? null : t, e = e(), r.memoizedState = [e, t], e
                    },
                    useReducer: function(e, t, r) {
                        var o = os();
                        return t = void 0 !== r ? r(t) : t, o.memoizedState = o.baseState = t, e = (e = o.queue = {
                            pending: null,
                            dispatch: null,
                            lastRenderedReducer: e,
                            lastRenderedState: t
                        }).dispatch = xs.bind(null, Xi, e), [o.memoizedState, e]
                    },
                    useRef: ps,
                    useState: ds,
                    useDebugValue: Ss,
                    useDeferredValue: function(e) {
                        var t = ds(e),
                            r = t[0],
                            o = t[1];
                        return _s((function() {
                            var t = Yi.transition;
                            Yi.transition = 1;
                            try {
                                o(e)
                            } finally {
                                Yi.transition = t
                            }
                        }), [e]), r
                    },
                    useTransition: function() {
                        var e = ds(!1),
                            t = e[0];
                        return ps(e = Es.bind(null, e[1])), [e, t]
                    },
                    useMutableSource: function(e, t, r) {
                        var o = os();
                        return o.memoizedState = {
                            refs: {
                                getSnapshot: t,
                                setSnapshot: null
                            },
                            source: e,
                            subscribe: r
                        }, cs(o, e, t, r)
                    },
                    useOpaqueIdentifier: function() {
                        if (Bi) {
                            var e = !1,
                                t = function(e) {
                                    return {
                                        $$typeof: O,
                                        toString: e,
                                        valueOf: e
                                    }
                                }((function() {
                                    throw e || (e = !0, r("r:" + (zo++).toString(36))), Error(s(355))
                                })),
                                r = ds(t)[1];
                            return 0 == (2 & Xi.mode) && (Xi.flags |= 516, hs(5, (function() {
                                r("r:" + (zo++).toString(36))
                            }), void 0, null)), t
                        }
                        return ds(t = "r:" + (zo++).toString(36)), t
                    },
                    unstable_isNewReconciler: !1
                },
                Ms = {
                    readContext: ri,
                    useCallback: Cs,
                    useContext: ri,
                    useEffect: vs,
                    useImperativeHandle: ws,
                    useLayoutEffect: bs,
                    useMemo: ks,
                    useReducer: ss,
                    useRef: fs,
                    useState: function() {
                        return ss(is)
                    },
                    useDebugValue: Ss,
                    useDeferredValue: function(e) {
                        var t = ss(is),
                            r = t[0],
                            o = t[1];
                        return vs((function() {
                            var t = Yi.transition;
                            Yi.transition = 1;
                            try {
                                o(e)
                            } finally {
                                Yi.transition = t
                            }
                        }), [e]), r
                    },
                    useTransition: function() {
                        var e = ss(is)[0];
                        return [fs().current, e]
                    },
                    useMutableSource: us,
                    useOpaqueIdentifier: function() {
                        return ss(is)[0]
                    },
                    unstable_isNewReconciler: !1
                },
                Ls = {
                    readContext: ri,
                    useCallback: Cs,
                    useContext: ri,
                    useEffect: vs,
                    useImperativeHandle: ws,
                    useLayoutEffect: bs,
                    useMemo: ks,
                    useReducer: as,
                    useRef: fs,
                    useState: function() {
                        return as(is)
                    },
                    useDebugValue: Ss,
                    useDeferredValue: function(e) {
                        var t = as(is),
                            r = t[0],
                            o = t[1];
                        return vs((function() {
                            var t = Yi.transition;
                            Yi.transition = 1;
                            try {
                                o(e)
                            } finally {
                                Yi.transition = t
                            }
                        }), [e]), r
                    },
                    useTransition: function() {
                        var e = as(is)[0];
                        return [fs().current, e]
                    },
                    useMutableSource: us,
                    useOpaqueIdentifier: function() {
                        return as(is)[0]
                    },
                    unstable_isNewReconciler: !1
                },
                Ps = w.ReactCurrentOwner,
                Fs = !1;

            function Is(e, t, r, o) {
                t.child = null === e ? Ci(t, null, r, o) : Si(t, e.child, r, o)
            }

            function Ds(e, t, r, o, n) {
                r = r.render;
                var i = t.ref;
                return ti(t, n), o = rs(e, t, r, o, i, n), null === e || Fs ? (t.flags |= 1, Is(e, t, o, n), t.child) : (t.updateQueue = e.updateQueue, t.flags &= -517, e.lanes &= ~n, ea(e, t, n))
            }

            function Os(e, t, r, o, n, i) {
                if (null === e) {
                    var s = r.type;
                    return "function" != typeof s || Nl(s) || void 0 !== s.defaultProps || null !== r.compare || void 0 !== r.defaultProps ? ((e = jl(r.type, null, o, t, t.mode, i)).ref = t.ref, e.return = t, t.child = e) : (t.tag = 15, t.type = s, Rs(e, t, s, o, n, i))
                }
                return s = e.child, 0 == (n & i) && (n = s.memoizedProps, (r = null !== (r = r.compare) ? r : ao)(n, o) && e.ref === t.ref) ? ea(e, t, i) : (t.flags |= 1, (e = $l(s, o)).ref = t.ref, e.return = t, t.child = e)
            }

            function Rs(e, t, r, o, n, i) {
                if (null !== e && ao(e.memoizedProps, o) && e.ref === t.ref) {
                    if (Fs = !1, 0 == (i & n)) return t.lanes = e.lanes, ea(e, t, i);
                    0 != (16384 & e.flags) && (Fs = !0)
                }
                return $s(e, t, r, o, i)
            }

            function Bs(e, t, r) {
                var o = t.pendingProps,
                    n = o.children,
                    i = null !== e ? e.memoizedState : null;
                if ("hidden" === o.mode || "unstable-defer-without-hiding" === o.mode)
                    if (0 == (4 & t.mode)) t.memoizedState = {
                        baseLanes: 0
                    }, gl(t, r);
                    else {
                        if (0 == (1073741824 & r)) return e = null !== i ? i.baseLanes | r : r, t.lanes = t.childLanes = 1073741824, t.memoizedState = {
                            baseLanes: e
                        }, gl(t, e), null;
                        t.memoizedState = {
                            baseLanes: 0
                        }, gl(t, null !== i ? i.baseLanes : r)
                    }
                else null !== i ? (o = i.baseLanes | r, t.memoizedState = null) : o = r, gl(t, o);
                return Is(e, t, n, r), t.child
            }

            function Ns(e, t) {
                var r = t.ref;
                (null === e && null !== r || null !== e && e.ref !== r) && (t.flags |= 128)
            }

            function $s(e, t, r, o, n) {
                var i = pn(r) ? dn : cn.current;
                return i = hn(t, i), ti(t, n), r = rs(e, t, r, o, i, n), null === e || Fs ? (t.flags |= 1, Is(e, t, r, n), t.child) : (t.updateQueue = e.updateQueue, t.flags &= -517, e.lanes &= ~n, ea(e, t, n))
            }

            function js(e, t, r, o, n) {
                if (pn(r)) {
                    var i = !0;
                    _n(t)
                } else i = !1;
                if (ti(t, n), null === t.stateNode) null !== e && (e.alternate = null, t.alternate = null, t.flags |= 2), gi(t, r, o), _i(t, r, o, n), o = !0;
                else if (null === e) {
                    var s = t.stateNode,
                        a = t.memoizedProps;
                    s.props = a;
                    var l = s.context,
                        c = r.contextType;
                    "object" == typeof c && null !== c ? c = ri(c) : c = hn(t, c = pn(r) ? dn : cn.current);
                    var u = r.getDerivedStateFromProps,
                        d = "function" == typeof u || "function" == typeof s.getSnapshotBeforeUpdate;
                    d || "function" != typeof s.UNSAFE_componentWillReceiveProps && "function" != typeof s.componentWillReceiveProps || (a !== o || l !== c) && mi(t, s, o, c), oi = !1;
                    var h = t.memoizedState;
                    s.state = h, ci(t, o, s, n), l = t.memoizedState, a !== o || h !== l || un.current || oi ? ("function" == typeof u && (hi(t, r, u, o), l = t.memoizedState), (a = oi || fi(t, r, a, o, h, l, c)) ? (d || "function" != typeof s.UNSAFE_componentWillMount && "function" != typeof s.componentWillMount || ("function" == typeof s.componentWillMount && s.componentWillMount(), "function" == typeof s.UNSAFE_componentWillMount && s.UNSAFE_componentWillMount()), "function" == typeof s.componentDidMount && (t.flags |= 4)) : ("function" == typeof s.componentDidMount && (t.flags |= 4), t.memoizedProps = o, t.memoizedState = l), s.props = o, s.state = l, s.context = c, o = a) : ("function" == typeof s.componentDidMount && (t.flags |= 4), o = !1)
                } else {
                    s = t.stateNode, ii(e, t), a = t.memoizedProps, c = t.type === t.elementType ? a : Yn(t.type, a), s.props = c, d = t.pendingProps, h = s.context, "object" == typeof(l = r.contextType) && null !== l ? l = ri(l) : l = hn(t, l = pn(r) ? dn : cn.current);
                    var p = r.getDerivedStateFromProps;
                    (u = "function" == typeof p || "function" == typeof s.getSnapshotBeforeUpdate) || "function" != typeof s.UNSAFE_componentWillReceiveProps && "function" != typeof s.componentWillReceiveProps || (a !== d || h !== l) && mi(t, s, o, l), oi = !1, h = t.memoizedState, s.state = h, ci(t, o, s, n);
                    var f = t.memoizedState;
                    a !== d || h !== f || un.current || oi ? ("function" == typeof p && (hi(t, r, p, o), f = t.memoizedState), (c = oi || fi(t, r, c, o, h, f, l)) ? (u || "function" != typeof s.UNSAFE_componentWillUpdate && "function" != typeof s.componentWillUpdate || ("function" == typeof s.componentWillUpdate && s.componentWillUpdate(o, f, l), "function" == typeof s.UNSAFE_componentWillUpdate && s.UNSAFE_componentWillUpdate(o, f, l)), "function" == typeof s.componentDidUpdate && (t.flags |= 4), "function" == typeof s.getSnapshotBeforeUpdate && (t.flags |= 256)) : ("function" != typeof s.componentDidUpdate || a === e.memoizedProps && h === e.memoizedState || (t.flags |= 4), "function" != typeof s.getSnapshotBeforeUpdate || a === e.memoizedProps && h === e.memoizedState || (t.flags |= 256), t.memoizedProps = o, t.memoizedState = f), s.props = o, s.state = f, s.context = l, o = c) : ("function" != typeof s.componentDidUpdate || a === e.memoizedProps && h === e.memoizedState || (t.flags |= 4), "function" != typeof s.getSnapshotBeforeUpdate || a === e.memoizedProps && h === e.memoizedState || (t.flags |= 256), o = !1)
                }
                return Ws(e, t, r, o, i, n)
            }

            function Ws(e, t, r, o, n, i) {
                Ns(e, t);
                var s = 0 != (64 & t.flags);
                if (!o && !s) return n && vn(t, r, !1), ea(e, t, i);
                o = t.stateNode, Ps.current = t;
                var a = s && "function" != typeof r.getDerivedStateFromError ? null : o.render();
                return t.flags |= 1, null !== e && s ? (t.child = Si(t, e.child, null, i), t.child = Si(t, null, a, i)) : Is(e, t, a, i), t.memoizedState = o.state, n && vn(t, r, !0), t.child
            }

            function Vs(e) {
                var t = e.stateNode;
                t.pendingContext ? gn(0, t.pendingContext, t.pendingContext !== t.context) : t.context && gn(0, t.context, !1), Mi(e, t.containerInfo)
            }
            var Us, qs, zs, Hs = {
                dehydrated: null,
                retryLane: 0
            };

            function Ys(e, t, r) {
                var o, n = t.pendingProps,
                    i = Ii.current,
                    s = !1;
                return (o = 0 != (64 & t.flags)) || (o = (null === e || null !== e.memoizedState) && 0 != (2 & i)), o ? (s = !0, t.flags &= -65) : null !== e && null === e.memoizedState || void 0 === n.fallback || !0 === n.unstable_avoidThisFallback || (i |= 1), an(Ii, 1 & i), null === e ? (void 0 !== n.fallback && ji(t), e = n.children, i = n.fallback, s ? (e = Ks(t, e, i, r), t.child.memoizedState = {
                    baseLanes: r
                }, t.memoizedState = Hs, e) : "number" == typeof n.unstable_expectedLoadTime ? (e = Ks(t, e, i, r), t.child.memoizedState = {
                    baseLanes: r
                }, t.memoizedState = Hs, t.lanes = 33554432, e) : ((r = Vl({
                    mode: "visible",
                    children: e
                }, t.mode, r, null)).return = t, t.child = r)) : (e.memoizedState, s ? (n = Gs(e, t, n.children, n.fallback, r), s = t.child, i = e.child.memoizedState, s.memoizedState = null === i ? {
                    baseLanes: r
                } : {
                    baseLanes: i.baseLanes | r
                }, s.childLanes = e.childLanes & ~r, t.memoizedState = Hs, n) : (r = Xs(e, t, n.children, r), t.memoizedState = null, r))
            }

            function Ks(e, t, r, o) {
                var n = e.mode,
                    i = e.child;
                return t = {
                    mode: "hidden",
                    children: t
                }, 0 == (2 & n) && null !== i ? (i.childLanes = 0, i.pendingProps = t) : i = Vl(t, n, 0, null), r = Wl(r, n, o, null), i.return = e, r.return = e, i.sibling = r, e.child = i, r
            }

            function Xs(e, t, r, o) {
                var n = e.child;
                return e = n.sibling, r = $l(n, {
                    mode: "visible",
                    children: r
                }), 0 == (2 & t.mode) && (r.lanes = o), r.return = t, r.sibling = null, null !== e && (e.nextEffect = null, e.flags = 8, t.firstEffect = t.lastEffect = e), t.child = r
            }

            function Gs(e, t, r, o, n) {
                var i = t.mode,
                    s = e.child;
                e = s.sibling;
                var a = {
                    mode: "hidden",
                    children: r
                };
                return 0 == (2 & i) && t.child !== s ? ((r = t.child).childLanes = 0, r.pendingProps = a, null !== (s = r.lastEffect) ? (t.firstEffect = r.firstEffect, t.lastEffect = s, s.nextEffect = null) : t.firstEffect = t.lastEffect = null) : r = $l(s, a), null !== e ? o = $l(e, o) : (o = Wl(o, i, n, null)).flags |= 2, o.return = t, r.return = t, r.sibling = o, t.child = r, o
            }

            function Qs(e, t) {
                e.lanes |= t;
                var r = e.alternate;
                null !== r && (r.lanes |= t), ei(e.return, t)
            }

            function Js(e, t, r, o, n, i) {
                var s = e.memoizedState;
                null === s ? e.memoizedState = {
                    isBackwards: t,
                    rendering: null,
                    renderingStartTime: 0,
                    last: o,
                    tail: r,
                    tailMode: n,
                    lastEffect: i
                } : (s.isBackwards = t, s.rendering = null, s.renderingStartTime = 0, s.last = o, s.tail = r, s.tailMode = n, s.lastEffect = i)
            }

            function Zs(e, t, r) {
                var o = t.pendingProps,
                    n = o.revealOrder,
                    i = o.tail;
                if (Is(e, t, o.children, r), 0 != (2 & (o = Ii.current))) o = 1 & o | 2, t.flags |= 64;
                else {
                    if (null !== e && 0 != (64 & e.flags)) e: for (e = t.child; null !== e;) {
                        if (13 === e.tag) null !== e.memoizedState && Qs(e, r);
                        else if (19 === e.tag) Qs(e, r);
                        else if (null !== e.child) {
                            e.child.return = e, e = e.child;
                            continue
                        }
                        if (e === t) break e;
                        for (; null === e.sibling;) {
                            if (null === e.return || e.return === t) break e;
                            e = e.return
                        }
                        e.sibling.return = e.return, e = e.sibling
                    }
                    o &= 1
                }
                if (an(Ii, o), 0 == (2 & t.mode)) t.memoizedState = null;
                else switch (n) {
                    case "forwards":
                        for (r = t.child, n = null; null !== r;) null !== (e = r.alternate) && null === Di(e) && (n = r), r = r.sibling;
                        null === (r = n) ? (n = t.child, t.child = null) : (n = r.sibling, r.sibling = null), Js(t, !1, n, r, i, t.lastEffect);
                        break;
                    case "backwards":
                        for (r = null, n = t.child, t.child = null; null !== n;) {
                            if (null !== (e = n.alternate) && null === Di(e)) {
                                t.child = n;
                                break
                            }
                            e = n.sibling, n.sibling = r, r = n, n = e
                        }
                        Js(t, !0, r, null, i, t.lastEffect);
                        break;
                    case "together":
                        Js(t, !1, null, null, void 0, t.lastEffect);
                        break;
                    default:
                        t.memoizedState = null
                }
                return t.child
            }

            function ea(e, t, r) {
                if (null !== e && (t.dependencies = e.dependencies), Da |= t.lanes, 0 != (r & t.childLanes)) {
                    if (null !== e && t.child !== e.child) throw Error(s(153));
                    if (null !== t.child) {
                        for (r = $l(e = t.child, e.pendingProps), t.child = r, r.return = t; null !== e.sibling;) e = e.sibling, (r = r.sibling = $l(e, e.pendingProps)).return = t;
                        r.sibling = null
                    }
                    return t.child
                }
                return null
            }

            function ta(e, t) {
                if (!Bi) switch (e.tailMode) {
                    case "hidden":
                        t = e.tail;
                        for (var r = null; null !== t;) null !== t.alternate && (r = t), t = t.sibling;
                        null === r ? e.tail = null : r.sibling = null;
                        break;
                    case "collapsed":
                        r = e.tail;
                        for (var o = null; null !== r;) null !== r.alternate && (o = r), r = r.sibling;
                        null === o ? t || null === e.tail ? e.tail = null : e.tail.sibling = null : o.sibling = null
                }
            }

            function ra(e, t, r) {
                var o = t.pendingProps;
                switch (t.tag) {
                    case 2:
                    case 16:
                    case 15:
                    case 0:
                    case 11:
                    case 7:
                    case 8:
                    case 12:
                    case 9:
                    case 14:
                        return null;
                    case 1:
                        return pn(t.type) && fn(), null;
                    case 3:
                        return Li(), sn(un), sn(cn), zi(), (o = t.stateNode).pendingContext && (o.context = o.pendingContext, o.pendingContext = null), null !== e && null !== e.child || (Vi(t) ? t.flags |= 4 : o.hydrate || (t.flags |= 256)), null;
                    case 5:
                        Fi(t);
                        var i = Ai(Ti.current);
                        if (r = t.type, null !== e && null != t.stateNode) qs(e, t, r, o), e.ref !== t.ref && (t.flags |= 128);
                        else {
                            if (!o) {
                                if (null === t.stateNode) throw Error(s(166));
                                return null
                            }
                            if (e = Ai(Ei.current), Vi(t)) {
                                o = t.stateNode, r = t.type;
                                var a = t.memoizedProps;
                                switch (o[Yo] = t, o[Ko] = a, r) {
                                    case "dialog":
                                        Eo("cancel", o), Eo("close", o);
                                        break;
                                    case "iframe":
                                    case "object":
                                    case "embed":
                                        Eo("load", o);
                                        break;
                                    case "video":
                                    case "audio":
                                        for (e = 0; e < wo.length; e++) Eo(wo[e], o);
                                        break;
                                    case "source":
                                        Eo("error", o);
                                        break;
                                    case "img":
                                    case "image":
                                    case "link":
                                        Eo("error", o), Eo("load", o);
                                        break;
                                    case "details":
                                        Eo("toggle", o);
                                        break;
                                    case "input":
                                        ee(o, a), Eo("invalid", o);
                                        break;
                                    case "select":
                                        o._wrapperState = {
                                            wasMultiple: !!a.multiple
                                        }, Eo("invalid", o);
                                        break;
                                    case "textarea":
                                        le(o, a), Eo("invalid", o)
                                }
                                for (var c in Ce(r, a), e = null, a) a.hasOwnProperty(c) && (i = a[c], "children" === c ? "string" == typeof i ? o.textContent !== i && (e = ["children", i]) : "number" == typeof i && o.textContent !== "" + i && (e = ["children", "" + i]) : l.hasOwnProperty(c) && null != i && "onScroll" === c && Eo("scroll", o));
                                switch (r) {
                                    case "input":
                                        G(o), oe(o, a, !0);
                                        break;
                                    case "textarea":
                                        G(o), ue(o);
                                        break;
                                    case "select":
                                    case "option":
                                        break;
                                    default:
                                        "function" == typeof a.onClick && (o.onclick = Oo)
                                }
                                o = e, t.updateQueue = o, null !== o && (t.flags |= 4)
                            } else {
                                switch (c = 9 === i.nodeType ? i : i.ownerDocument, e === de && (e = pe(r)), e === de ? "script" === r ? ((e = c.createElement("div")).innerHTML = "<script><\/script>", e = e.removeChild(e.firstChild)) : "string" == typeof o.is ? e = c.createElement(r, {
                                    is: o.is
                                }) : (e = c.createElement(r), "select" === r && (c = e, o.multiple ? c.multiple = !0 : o.size && (c.size = o.size))) : e = c.createElementNS(e, r), e[Yo] = t, e[Ko] = o, Us(e, t), t.stateNode = e, c = ke(r, o), r) {
                                    case "dialog":
                                        Eo("cancel", e), Eo("close", e), i = o;
                                        break;
                                    case "iframe":
                                    case "object":
                                    case "embed":
                                        Eo("load", e), i = o;
                                        break;
                                    case "video":
                                    case "audio":
                                        for (i = 0; i < wo.length; i++) Eo(wo[i], e);
                                        i = o;
                                        break;
                                    case "source":
                                        Eo("error", e), i = o;
                                        break;
                                    case "img":
                                    case "image":
                                    case "link":
                                        Eo("error", e), Eo("load", e), i = o;
                                        break;
                                    case "details":
                                        Eo("toggle", e), i = o;
                                        break;
                                    case "input":
                                        ee(e, o), i = Z(e, o), Eo("invalid", e);
                                        break;
                                    case "option":
                                        i = ie(e, o);
                                        break;
                                    case "select":
                                        e._wrapperState = {
                                            wasMultiple: !!o.multiple
                                        }, i = n({}, o, {
                                            value: void 0
                                        }), Eo("invalid", e);
                                        break;
                                    case "textarea":
                                        le(e, o), i = ae(e, o), Eo("invalid", e);
                                        break;
                                    default:
                                        i = o
                                }
                                Ce(r, i);
                                var u = i;
                                for (a in u)
                                    if (u.hasOwnProperty(a)) {
                                        var d = u[a];
                                        "style" === a ? we(e, d) : "dangerouslySetInnerHTML" === a ? null != (d = d ? d.__html : void 0) && me(e, d) : "children" === a ? "string" == typeof d ? ("textarea" !== r || "" !== d) && _e(e, d) : "number" == typeof d && _e(e, "" + d) : "suppressContentEditableWarning" !== a && "suppressHydrationWarning" !== a && "autoFocus" !== a && (l.hasOwnProperty(a) ? null != d && "onScroll" === a && Eo("scroll", e) : null != d && y(e, a, d, c))
                                    }
                                switch (r) {
                                    case "input":
                                        G(e), oe(e, o, !1);
                                        break;
                                    case "textarea":
                                        G(e), ue(e);
                                        break;
                                    case "option":
                                        null != o.value && e.setAttribute("value", "" + K(o.value));
                                        break;
                                    case "select":
                                        e.multiple = !!o.multiple, null != (a = o.value) ? se(e, !!o.multiple, a, !1) : null != o.defaultValue && se(e, !!o.multiple, o.defaultValue, !0);
                                        break;
                                    default:
                                        "function" == typeof i.onClick && (e.onclick = Oo)
                                }
                                No(r, o) && (t.flags |= 4)
                            }
                            null !== t.ref && (t.flags |= 128)
                        }
                        return null;
                    case 6:
                        if (e && null != t.stateNode) zs(0, t, e.memoizedProps, o);
                        else {
                            if ("string" != typeof o && null === t.stateNode) throw Error(s(166));
                            r = Ai(Ti.current), Ai(Ei.current), Vi(t) ? (o = t.stateNode, r = t.memoizedProps, o[Yo] = t, o.nodeValue !== r && (t.flags |= 4)) : ((o = (9 === r.nodeType ? r : r.ownerDocument).createTextNode(o))[Yo] = t, t.stateNode = o)
                        }
                        return null;
                    case 13:
                        return sn(Ii), o = t.memoizedState, 0 != (64 & t.flags) ? (t.lanes = r, t) : (o = null !== o, r = !1, null === e ? void 0 !== t.memoizedProps.fallback && Vi(t) : r = null !== e.memoizedState, o && !r && 0 != (2 & t.mode) && (null === e && !0 !== t.memoizedProps.unstable_avoidThisFallback || 0 != (1 & Ii.current) ? 0 === Pa && (Pa = 3) : (0 !== Pa && 3 !== Pa || (Pa = 4), null === xa || 0 == (134217727 & Da) && 0 == (134217727 & Oa) || dl(xa, Aa))), (o || r) && (t.flags |= 4), null);
                    case 4:
                        return Li(), null === e && To(t.stateNode.containerInfo), null;
                    case 10:
                        return Zn(t), null;
                    case 17:
                        return pn(t.type) && fn(), null;
                    case 19:
                        if (sn(Ii), null === (o = t.memoizedState)) return null;
                        if (a = 0 != (64 & t.flags), null === (c = o.rendering))
                            if (a) ta(o, !1);
                            else {
                                if (0 !== Pa || null !== e && 0 != (64 & e.flags))
                                    for (e = t.child; null !== e;) {
                                        if (null !== (c = Di(e))) {
                                            for (t.flags |= 64, ta(o, !1), null !== (a = c.updateQueue) && (t.updateQueue = a, t.flags |= 4), null === o.lastEffect && (t.firstEffect = null), t.lastEffect = o.lastEffect, o = r, r = t.child; null !== r;) e = o, (a = r).flags &= 2, a.nextEffect = null, a.firstEffect = null, a.lastEffect = null, null === (c = a.alternate) ? (a.childLanes = 0, a.lanes = e, a.child = null, a.memoizedProps = null, a.memoizedState = null, a.updateQueue = null, a.dependencies = null, a.stateNode = null) : (a.childLanes = c.childLanes, a.lanes = c.lanes, a.child = c.child, a.memoizedProps = c.memoizedProps, a.memoizedState = c.memoizedState, a.updateQueue = c.updateQueue, a.type = c.type, e = c.dependencies, a.dependencies = null === e ? null : {
                                                lanes: e.lanes,
                                                firstContext: e.firstContext
                                            }), r = r.sibling;
                                            return an(Ii, 1 & Ii.current | 2), t.child
                                        }
                                        e = e.sibling
                                    }
                                null !== o.tail && $n() > $a && (t.flags |= 64, a = !0, ta(o, !1), t.lanes = 33554432)
                            }
                        else {
                            if (!a)
                                if (null !== (e = Di(c))) {
                                    if (t.flags |= 64, a = !0, null !== (r = e.updateQueue) && (t.updateQueue = r, t.flags |= 4), ta(o, !0), null === o.tail && "hidden" === o.tailMode && !c.alternate && !Bi) return null !== (t = t.lastEffect = o.lastEffect) && (t.nextEffect = null), null
                                } else 2 * $n() - o.renderingStartTime > $a && 1073741824 !== r && (t.flags |= 64, a = !0, ta(o, !1), t.lanes = 33554432);
                            o.isBackwards ? (c.sibling = t.child, t.child = c) : (null !== (r = o.last) ? r.sibling = c : t.child = c, o.last = c)
                        }
                        return null !== o.tail ? (r = o.tail, o.rendering = r, o.tail = r.sibling, o.lastEffect = t.lastEffect, o.renderingStartTime = $n(), r.sibling = null, t = Ii.current, an(Ii, a ? 1 & t | 2 : 1 & t), r) : null;
                    case 23:
                    case 24:
                        return ml(), null !== e && null !== e.memoizedState != (null !== t.memoizedState) && "unstable-defer-without-hiding" !== o.mode && (t.flags |= 4), null
                }
                throw Error(s(156, t.tag))
            }

            function oa(e) {
                switch (e.tag) {
                    case 1:
                        pn(e.type) && fn();
                        var t = e.flags;
                        return 4096 & t ? (e.flags = -4097 & t | 64, e) : null;
                    case 3:
                        if (Li(), sn(un), sn(cn), zi(), 0 != (64 & (t = e.flags))) throw Error(s(285));
                        return e.flags = -4097 & t | 64, e;
                    case 5:
                        return Fi(e), null;
                    case 13:
                        return sn(Ii), 4096 & (t = e.flags) ? (e.flags = -4097 & t | 64, e) : null;
                    case 19:
                        return sn(Ii), null;
                    case 4:
                        return Li(), null;
                    case 10:
                        return Zn(e), null;
                    case 23:
                    case 24:
                        return ml(), null;
                    default:
                        return null
                }
            }

            function na(e, t) {
                try {
                    var r = "",
                        o = t;
                    do {
                        r += H(o), o = o.return
                    } while (o);
                    var n = r
                } catch (e) {
                    n = "\nError generating stack: " + e.message + "\n" + e.stack
                }
                return {
                    value: e,
                    source: t,
                    stack: n
                }
            }

            function ia(e, t) {
                try {
                    console.error(t.value)
                } catch (e) {
                    setTimeout((function() {
                        throw e
                    }))
                }
            }
            Us = function(e, t) {
                    for (var r = t.child; null !== r;) {
                        if (5 === r.tag || 6 === r.tag) e.appendChild(r.stateNode);
                        else if (4 !== r.tag && null !== r.child) {
                            r.child.return = r, r = r.child;
                            continue
                        }
                        if (r === t) break;
                        for (; null === r.sibling;) {
                            if (null === r.return || r.return === t) return;
                            r = r.return
                        }
                        r.sibling.return = r.return, r = r.sibling
                    }
                }, qs = function(e, t, r, o) {
                    var i = e.memoizedProps;
                    if (i !== o) {
                        e = t.stateNode, Ai(Ei.current);
                        var s, a = null;
                        switch (r) {
                            case "input":
                                i = Z(e, i), o = Z(e, o), a = [];
                                break;
                            case "option":
                                i = ie(e, i), o = ie(e, o), a = [];
                                break;
                            case "select":
                                i = n({}, i, {
                                    value: void 0
                                }), o = n({}, o, {
                                    value: void 0
                                }), a = [];
                                break;
                            case "textarea":
                                i = ae(e, i), o = ae(e, o), a = [];
                                break;
                            default:
                                "function" != typeof i.onClick && "function" == typeof o.onClick && (e.onclick = Oo)
                        }
                        for (d in Ce(r, o), r = null, i)
                            if (!o.hasOwnProperty(d) && i.hasOwnProperty(d) && null != i[d])
                                if ("style" === d) {
                                    var c = i[d];
                                    for (s in c) c.hasOwnProperty(s) && (r || (r = {}), r[s] = "")
                                } else "dangerouslySetInnerHTML" !== d && "children" !== d && "suppressContentEditableWarning" !== d && "suppressHydrationWarning" !== d && "autoFocus" !== d && (l.hasOwnProperty(d) ? a || (a = []) : (a = a || []).push(d, null));
                        for (d in o) {
                            var u = o[d];
                            if (c = null != i ? i[d] : void 0, o.hasOwnProperty(d) && u !== c && (null != u || null != c))
                                if ("style" === d)
                                    if (c) {
                                        for (s in c) !c.hasOwnProperty(s) || u && u.hasOwnProperty(s) || (r || (r = {}), r[s] = "");
                                        for (s in u) u.hasOwnProperty(s) && c[s] !== u[s] && (r || (r = {}), r[s] = u[s])
                                    } else r || (a || (a = []), a.push(d, r)), r = u;
                            else "dangerouslySetInnerHTML" === d ? (u = u ? u.__html : void 0, c = c ? c.__html : void 0, null != u && c !== u && (a = a || []).push(d, u)) : "children" === d ? "string" != typeof u && "number" != typeof u || (a = a || []).push(d, "" + u) : "suppressContentEditableWarning" !== d && "suppressHydrationWarning" !== d && (l.hasOwnProperty(d) ? (null != u && "onScroll" === d && Eo("scroll", e), a || c === u || (a = [])) : "object" == typeof u && null !== u && u.$$typeof === O ? u.toString() : (a = a || []).push(d, u))
                        }
                        r && (a = a || []).push("style", r);
                        var d = a;
                        (t.updateQueue = d) && (t.flags |= 4)
                    }
                },
                zs = function(e, t, r, o) {
                    r !== o && (t.flags |= 4)
                };
            var sa = "function" == typeof WeakMap ? WeakMap : Map;

            function aa(e, t, r) {
                (r = si(-1, r)).tag = 3, r.payload = {
                    element: null
                };
                var o = t.value;
                return r.callback = function() {
                    Ua || (Ua = !0, qa = o), ia(0, t)
                }, r
            }

            function la(e, t, r) {
                (r = si(-1, r)).tag = 3;
                var o = e.type.getDerivedStateFromError;
                if ("function" == typeof o) {
                    var n = t.value;
                    r.payload = function() {
                        return ia(0, t), o(n)
                    }
                }
                var i = e.stateNode;
                return null !== i && "function" == typeof i.componentDidCatch && (r.callback = function() {
                    "function" != typeof o && (null === za ? za = new Set([this]) : za.add(this), ia(0, t));
                    var e = t.stack;
                    this.componentDidCatch(t.value, {
                        componentStack: null !== e ? e : ""
                    })
                }), r
            }
            var ca = "function" == typeof WeakSet ? WeakSet : Set;

            function ua(e) {
                var t = e.ref;
                if (null !== t)
                    if ("function" == typeof t) try {
                        t(null)
                    } catch (t) {
                        Il(e, t)
                    } else t.current = null
            }

            function da(e, t) {
                switch (t.tag) {
                    case 0:
                    case 11:
                    case 15:
                    case 22:
                        return;
                    case 1:
                        if (256 & t.flags && null !== e) {
                            var r = e.memoizedProps,
                                o = e.memoizedState;
                            t = (e = t.stateNode).getSnapshotBeforeUpdate(t.elementType === t.type ? r : Yn(t.type, r), o), e.__reactInternalSnapshotBeforeUpdate = t
                        }
                        return;
                    case 3:
                        return void(256 & t.flags && Vo(t.stateNode.containerInfo));
                    case 5:
                    case 6:
                    case 4:
                    case 17:
                        return
                }
                throw Error(s(163))
            }

            function ha(e, t, r) {
                switch (r.tag) {
                    case 0:
                    case 11:
                    case 15:
                    case 22:
                        if (null !== (t = null !== (t = r.updateQueue) ? t.lastEffect : null)) {
                            e = t = t.next;
                            do {
                                if (3 == (3 & e.tag)) {
                                    var o = e.create;
                                    e.destroy = o()
                                }
                                e = e.next
                            } while (e !== t)
                        }
                        if (null !== (t = null !== (t = r.updateQueue) ? t.lastEffect : null)) {
                            e = t = t.next;
                            do {
                                var n = e;
                                o = n.next, 0 != (4 & (n = n.tag)) && 0 != (1 & n) && (Ll(r, e), Ml(r, e)), e = o
                            } while (e !== t)
                        }
                        return;
                    case 1:
                        return e = r.stateNode, 4 & r.flags && (null === t ? e.componentDidMount() : (o = r.elementType === r.type ? t.memoizedProps : Yn(r.type, t.memoizedProps), e.componentDidUpdate(o, t.memoizedState, e.__reactInternalSnapshotBeforeUpdate))), void(null !== (t = r.updateQueue) && ui(r, t, e));
                    case 3:
                        if (null !== (t = r.updateQueue)) {
                            if (e = null, null !== r.child) switch (r.child.tag) {
                                case 5:
                                    e = r.child.stateNode;
                                    break;
                                case 1:
                                    e = r.child.stateNode
                            }
                            ui(r, t, e)
                        }
                        return;
                    case 5:
                        return e = r.stateNode, void(null === t && 4 & r.flags && No(r.type, r.memoizedProps) && e.focus());
                    case 6:
                    case 4:
                    case 12:
                        return;
                    case 13:
                        return void(null === r.memoizedState && (r = r.alternate, null !== r && (r = r.memoizedState, null !== r && (r = r.dehydrated, null !== r && wt(r)))));
                    case 19:
                    case 17:
                    case 20:
                    case 21:
                    case 23:
                    case 24:
                        return
                }
                throw Error(s(163))
            }

            function pa(e, t) {
                for (var r = e;;) {
                    if (5 === r.tag) {
                        var o = r.stateNode;
                        if (t) "function" == typeof(o = o.style).setProperty ? o.setProperty("display", "none", "important") : o.display = "none";
                        else {
                            o = r.stateNode;
                            var n = r.memoizedProps.style;
                            n = null != n && n.hasOwnProperty("display") ? n.display : null, o.style.display = ye("display", n)
                        }
                    } else if (6 === r.tag) r.stateNode.nodeValue = t ? "" : r.memoizedProps;
                    else if ((23 !== r.tag && 24 !== r.tag || null === r.memoizedState || r === e) && null !== r.child) {
                        r.child.return = r, r = r.child;
                        continue
                    }
                    if (r === e) break;
                    for (; null === r.sibling;) {
                        if (null === r.return || r.return === e) return;
                        r = r.return
                    }
                    r.sibling.return = r.return, r = r.sibling
                }
            }

            function fa(e, t) {
                if (yn && "function" == typeof yn.onCommitFiberUnmount) try {
                    yn.onCommitFiberUnmount(bn, t)
                } catch (e) {}
                switch (t.tag) {
                    case 0:
                    case 11:
                    case 14:
                    case 15:
                    case 22:
                        if (null !== (e = t.updateQueue) && null !== (e = e.lastEffect)) {
                            var r = e = e.next;
                            do {
                                var o = r,
                                    n = o.destroy;
                                if (o = o.tag, void 0 !== n)
                                    if (0 != (4 & o)) Ll(t, r);
                                    else {
                                        o = t;
                                        try {
                                            n()
                                        } catch (e) {
                                            Il(o, e)
                                        }
                                    }
                                r = r.next
                            } while (r !== e)
                        }
                        break;
                    case 1:
                        if (ua(t), "function" == typeof(e = t.stateNode).componentWillUnmount) try {
                            e.props = t.memoizedProps, e.state = t.memoizedState, e.componentWillUnmount()
                        } catch (e) {
                            Il(t, e)
                        }
                        break;
                    case 5:
                        ua(t);
                        break;
                    case 4:
                        va(e, t)
                }
            }

            function ga(e) {
                e.alternate = null, e.child = null, e.dependencies = null, e.firstEffect = null, e.lastEffect = null, e.memoizedProps = null, e.memoizedState = null, e.pendingProps = null, e.return = null, e.updateQueue = null
            }

            function ma(e) {
                return 5 === e.tag || 3 === e.tag || 4 === e.tag
            }

            function _a(e) {
                e: {
                    for (var t = e.return; null !== t;) {
                        if (ma(t)) break e;
                        t = t.return
                    }
                    throw Error(s(160))
                }
                var r = t;
                switch (t = r.stateNode, r.tag) {
                    case 5:
                        var o = !1;
                        break;
                    case 3:
                    case 4:
                        t = t.containerInfo, o = !0;
                        break;
                    default:
                        throw Error(s(161))
                }
                16 & r.flags && (_e(t, ""), r.flags &= -17);e: t: for (r = e;;) {
                    for (; null === r.sibling;) {
                        if (null === r.return || ma(r.return)) {
                            r = null;
                            break e
                        }
                        r = r.return
                    }
                    for (r.sibling.return = r.return, r = r.sibling; 5 !== r.tag && 6 !== r.tag && 18 !== r.tag;) {
                        if (2 & r.flags) continue t;
                        if (null === r.child || 4 === r.tag) continue t;
                        r.child.return = r, r = r.child
                    }
                    if (!(2 & r.flags)) {
                        r = r.stateNode;
                        break e
                    }
                }
                o ? function e(t, r, o) {
                    var n = t.tag,
                        i = 5 === n || 6 === n;
                    if (i) t = i ? t.stateNode : t.stateNode.instance, r ? 8 === o.nodeType ? o.parentNode.insertBefore(t, r) : o.insertBefore(t, r) : (8 === o.nodeType ? (r = o.parentNode).insertBefore(t, o) : (r = o).appendChild(t), null !== (o = o._reactRootContainer) && void 0 !== o || null !== r.onclick || (r.onclick = Oo));
                    else if (4 !== n && null !== (t = t.child))
                        for (e(t, r, o), t = t.sibling; null !== t;) e(t, r, o), t = t.sibling
                }(e, r, t) : function e(t, r, o) {
                    var n = t.tag,
                        i = 5 === n || 6 === n;
                    if (i) t = i ? t.stateNode : t.stateNode.instance, r ? o.insertBefore(t, r) : o.appendChild(t);
                    else if (4 !== n && null !== (t = t.child))
                        for (e(t, r, o), t = t.sibling; null !== t;) e(t, r, o), t = t.sibling
                }(e, r, t)
            }

            function va(e, t) {
                for (var r, o, n = t, i = !1;;) {
                    if (!i) {
                        i = n.return;
                        e: for (;;) {
                            if (null === i) throw Error(s(160));
                            switch (r = i.stateNode, i.tag) {
                                case 5:
                                    o = !1;
                                    break e;
                                case 3:
                                case 4:
                                    r = r.containerInfo, o = !0;
                                    break e
                            }
                            i = i.return
                        }
                        i = !0
                    }
                    if (5 === n.tag || 6 === n.tag) {
                        e: for (var a = e, l = n, c = l;;)
                            if (fa(a, c), null !== c.child && 4 !== c.tag) c.child.return = c, c = c.child;
                            else {
                                if (c === l) break e;
                                for (; null === c.sibling;) {
                                    if (null === c.return || c.return === l) break e;
                                    c = c.return
                                }
                                c.sibling.return = c.return, c = c.sibling
                            }o ? (a = r, l = n.stateNode, 8 === a.nodeType ? a.parentNode.removeChild(l) : a.removeChild(l)) : r.removeChild(n.stateNode)
                    }
                    else if (4 === n.tag) {
                        if (null !== n.child) {
                            r = n.stateNode.containerInfo, o = !0, n.child.return = n, n = n.child;
                            continue
                        }
                    } else if (fa(e, n), null !== n.child) {
                        n.child.return = n, n = n.child;
                        continue
                    }
                    if (n === t) break;
                    for (; null === n.sibling;) {
                        if (null === n.return || n.return === t) return;
                        4 === (n = n.return).tag && (i = !1)
                    }
                    n.sibling.return = n.return, n = n.sibling
                }
            }

            function ba(e, t) {
                switch (t.tag) {
                    case 0:
                    case 11:
                    case 14:
                    case 15:
                    case 22:
                        var r = t.updateQueue;
                        if (null !== (r = null !== r ? r.lastEffect : null)) {
                            var o = r = r.next;
                            do {
                                3 == (3 & o.tag) && (e = o.destroy, o.destroy = void 0, void 0 !== e && e()), o = o.next
                            } while (o !== r)
                        }
                        return;
                    case 1:
                        return;
                    case 5:
                        if (null != (r = t.stateNode)) {
                            o = t.memoizedProps;
                            var n = null !== e ? e.memoizedProps : o;
                            e = t.type;
                            var i = t.updateQueue;
                            if (t.updateQueue = null, null !== i) {
                                for (r[Ko] = o, "input" === e && "radio" === o.type && null != o.name && te(r, o), ke(e, n), t = ke(e, o), n = 0; n < i.length; n += 2) {
                                    var a = i[n],
                                        l = i[n + 1];
                                    "style" === a ? we(r, l) : "dangerouslySetInnerHTML" === a ? me(r, l) : "children" === a ? _e(r, l) : y(r, a, l, t)
                                }
                                switch (e) {
                                    case "input":
                                        re(r, o);
                                        break;
                                    case "textarea":
                                        ce(r, o);
                                        break;
                                    case "select":
                                        e = r._wrapperState.wasMultiple, r._wrapperState.wasMultiple = !!o.multiple, null != (i = o.value) ? se(r, !!o.multiple, i, !1) : e !== !!o.multiple && (null != o.defaultValue ? se(r, !!o.multiple, o.defaultValue, !0) : se(r, !!o.multiple, o.multiple ? [] : "", !1))
                                }
                            }
                        }
                        return;
                    case 6:
                        if (null === t.stateNode) throw Error(s(162));
                        return void(t.stateNode.nodeValue = t.memoizedProps);
                    case 3:
                        return void((r = t.stateNode).hydrate && (r.hydrate = !1, wt(r.containerInfo)));
                    case 12:
                        return;
                    case 13:
                        return null !== t.memoizedState && (Na = $n(), pa(t.child, !0)), void ya(t);
                    case 19:
                        return void ya(t);
                    case 17:
                        return;
                    case 23:
                    case 24:
                        return void pa(t, null !== t.memoizedState)
                }
                throw Error(s(163))
            }

            function ya(e) {
                var t = e.updateQueue;
                if (null !== t) {
                    e.updateQueue = null;
                    var r = e.stateNode;
                    null === r && (r = e.stateNode = new ca), t.forEach((function(t) {
                        var o = Ol.bind(null, e, t);
                        r.has(t) || (r.add(t), t.then(o, o))
                    }))
                }
            }

            function wa(e, t) {
                return null !== e && (null === (e = e.memoizedState) || null !== e.dehydrated) && (null !== (t = t.memoizedState) && null === t.dehydrated)
            }
            var Sa = Math.ceil,
                Ca = w.ReactCurrentDispatcher,
                ka = w.ReactCurrentOwner,
                Ea = 0,
                xa = null,
                Ta = null,
                Aa = 0,
                Ma = 0,
                La = nn(0),
                Pa = 0,
                Fa = null,
                Ia = 0,
                Da = 0,
                Oa = 0,
                Ra = 0,
                Ba = null,
                Na = 0,
                $a = 1 / 0;

            function ja() {
                $a = $n() + 500
            }
            var Wa, Va = null,
                Ua = !1,
                qa = null,
                za = null,
                Ha = !1,
                Ya = null,
                Ka = 90,
                Xa = [],
                Ga = [],
                Qa = null,
                Ja = 0,
                Za = null,
                el = -1,
                tl = 0,
                rl = 0,
                ol = null,
                nl = !1;

            function il() {
                return 0 != (48 & Ea) ? $n() : -1 !== el ? el : el = $n()
            }

            function sl(e) {
                if (0 == (2 & (e = e.mode))) return 1;
                if (0 == (4 & e)) return 99 === jn() ? 1 : 2;
                if (0 === tl && (tl = Ia), 0 !== Hn.transition) {
                    0 !== rl && (rl = null !== Ba ? Ba.pendingLanes : 0), e = tl;
                    var t = 4186112 & ~rl;
                    return 0 === (t &= -t) && (0 === (t = (e = 4186112 & ~e) & -e) && (t = 8192)), t
                }
                return e = jn(), 0 != (4 & Ea) && 98 === e ? e = $t(12, tl) : e = $t(e = function(e) {
                    switch (e) {
                        case 99:
                            return 15;
                        case 98:
                            return 10;
                        case 97:
                        case 96:
                            return 8;
                        case 95:
                            return 2;
                        default:
                            return 0
                    }
                }(e), tl), e
            }

            function al(e, t, r) {
                if (50 < Ja) throw Ja = 0, Za = null, Error(s(185));
                if (null === (e = ll(e, t))) return null;
                Vt(e, t, r), e === xa && (Oa |= t, 4 === Pa && dl(e, Aa));
                var o = jn();
                1 === t ? 0 != (8 & Ea) && 0 == (48 & Ea) ? hl(e) : (cl(e, r), 0 === Ea && (ja(), qn())) : (0 == (4 & Ea) || 98 !== o && 99 !== o || (null === Qa ? Qa = new Set([e]) : Qa.add(e)), cl(e, r)), Ba = e
            }

            function ll(e, t) {
                e.lanes |= t;
                var r = e.alternate;
                for (null !== r && (r.lanes |= t), r = e, e = e.return; null !== e;) e.childLanes |= t, null !== (r = e.alternate) && (r.childLanes |= t), r = e, e = e.return;
                return 3 === r.tag ? r.stateNode : null
            }

            function cl(e, t) {
                for (var r = e.callbackNode, o = e.suspendedLanes, n = e.pingedLanes, i = e.expirationTimes, a = e.pendingLanes; 0 < a;) {
                    var l = 31 - Ut(a),
                        c = 1 << l,
                        u = i[l];
                    if (-1 === u) {
                        if (0 == (c & o) || 0 != (c & n)) {
                            u = t, Rt(c);
                            var d = Ot;
                            i[l] = 10 <= d ? u + 250 : 6 <= d ? u + 5e3 : -1
                        }
                    } else u <= t && (e.expiredLanes |= c);
                    a &= ~c
                }
                if (o = Bt(e, e === xa ? Aa : 0), t = Ot, 0 === o) null !== r && (r !== In && Cn(r), e.callbackNode = null, e.callbackPriority = 0);
                else {
                    if (null !== r) {
                        if (e.callbackPriority === t) return;
                        r !== In && Cn(r)
                    }
                    15 === t ? (r = hl.bind(null, e), null === On ? (On = [r], Rn = Sn(An, zn)) : On.push(r), r = In) : 14 === t ? r = Un(99, hl.bind(null, e)) : r = Un(r = function(e) {
                        switch (e) {
                            case 15:
                            case 14:
                                return 99;
                            case 13:
                            case 12:
                            case 11:
                            case 10:
                                return 98;
                            case 9:
                            case 8:
                            case 7:
                            case 6:
                            case 4:
                            case 5:
                                return 97;
                            case 3:
                            case 2:
                            case 1:
                                return 95;
                            case 0:
                                return 90;
                            default:
                                throw Error(s(358, e))
                        }
                    }(t), ul.bind(null, e)), e.callbackPriority = t, e.callbackNode = r
                }
            }

            function ul(e) {
                if (el = -1, rl = tl = 0, 0 != (48 & Ea)) throw Error(s(327));
                var t = e.callbackNode;
                if (Al() && e.callbackNode !== t) return null;
                var r = Bt(e, e === xa ? Aa : 0);
                if (0 === r) return null;
                var o = r,
                    n = Ea;
                Ea |= 16;
                var i = bl();
                for (xa === e && Aa === o || (ja(), _l(e, o));;) try {
                    Sl();
                    break
                } catch (t) {
                    vl(e, t)
                }
                if (Jn(), Ca.current = i, Ea = n, null !== Ta ? o = 0 : (xa = null, Aa = 0, o = Pa), 0 != (Ia & Oa)) _l(e, 0);
                else if (0 !== o) {
                    if (2 === o && (Ea |= 64, e.hydrate && (e.hydrate = !1, Vo(e.containerInfo)), 0 !== (r = Nt(e)) && (o = yl(e, r))), 1 === o) throw t = Fa, _l(e, 0), dl(e, r), cl(e, $n()), t;
                    switch (e.finishedWork = e.current.alternate, e.finishedLanes = r, o) {
                        case 0:
                        case 1:
                            throw Error(s(345));
                        case 2:
                            El(e);
                            break;
                        case 3:
                            if (dl(e, r), (62914560 & r) === r && 10 < (o = Na + 500 - $n())) {
                                if (0 !== Bt(e, 0)) break;
                                if (((n = e.suspendedLanes) & r) !== r) {
                                    il(), e.pingedLanes |= e.suspendedLanes & n;
                                    break
                                }
                                e.timeoutHandle = jo(El.bind(null, e), o);
                                break
                            }
                            El(e);
                            break;
                        case 4:
                            if (dl(e, r), (4186112 & r) === r) break;
                            for (o = e.eventTimes, n = -1; 0 < r;) {
                                var a = 31 - Ut(r);
                                i = 1 << a, (a = o[a]) > n && (n = a), r &= ~i
                            }
                            if (r = n, 10 < (r = (120 > (r = $n() - r) ? 120 : 480 > r ? 480 : 1080 > r ? 1080 : 1920 > r ? 1920 : 3e3 > r ? 3e3 : 4320 > r ? 4320 : 1960 * Sa(r / 1960)) - r)) {
                                e.timeoutHandle = jo(El.bind(null, e), r);
                                break
                            }
                            El(e);
                            break;
                        case 5:
                            El(e);
                            break;
                        default:
                            throw Error(s(329))
                    }
                }
                return cl(e, $n()), e.callbackNode === t ? ul.bind(null, e) : null
            }

            function dl(e, t) {
                for (t &= ~Ra, t &= ~Oa, e.suspendedLanes |= t, e.pingedLanes &= ~t, e = e.expirationTimes; 0 < t;) {
                    var r = 31 - Ut(t),
                        o = 1 << r;
                    e[r] = -1, t &= ~o
                }
            }

            function hl(e) {
                if (0 != (48 & Ea)) throw Error(s(327));
                if (Al(), e === xa && 0 != (e.expiredLanes & Aa)) {
                    var t = Aa,
                        r = yl(e, t);
                    0 != (Ia & Oa) && (r = yl(e, t = Bt(e, t)))
                } else r = yl(e, t = Bt(e, 0));
                if (0 !== e.tag && 2 === r && (Ea |= 64, e.hydrate && (e.hydrate = !1, Vo(e.containerInfo)), 0 !== (t = Nt(e)) && (r = yl(e, t))), 1 === r) throw r = Fa, _l(e, 0), dl(e, t), cl(e, $n()), r;
                return e.finishedWork = e.current.alternate, e.finishedLanes = t, El(e), cl(e, $n()), null
            }

            function pl(e, t) {
                var r = Ea;
                Ea |= 1;
                try {
                    return e(t)
                } finally {
                    0 === (Ea = r) && (ja(), qn())
                }
            }

            function fl(e, t) {
                var r = Ea;
                Ea &= -2, Ea |= 8;
                try {
                    return e(t)
                } finally {
                    0 === (Ea = r) && (ja(), qn())
                }
            }

            function gl(e, t) {
                an(La, Ma), Ma |= t, Ia |= t
            }

            function ml() {
                Ma = La.current, sn(La)
            }

            function _l(e, t) {
                e.finishedWork = null, e.finishedLanes = 0;
                var r = e.timeoutHandle;
                if (-1 !== r && (e.timeoutHandle = -1, Wo(r)), null !== Ta)
                    for (r = Ta.return; null !== r;) {
                        var o = r;
                        switch (o.tag) {
                            case 1:
                                null != (o = o.type.childContextTypes) && fn();
                                break;
                            case 3:
                                Li(), sn(un), sn(cn), zi();
                                break;
                            case 5:
                                Fi(o);
                                break;
                            case 4:
                                Li();
                                break;
                            case 13:
                            case 19:
                                sn(Ii);
                                break;
                            case 10:
                                Zn(o);
                                break;
                            case 23:
                            case 24:
                                ml()
                        }
                        r = r.return
                    }
                xa = e, Ta = $l(e.current, null), Aa = Ma = Ia = t, Pa = 0, Fa = null, Ra = Oa = Da = 0
            }

            function vl(e, t) {
                for (;;) {
                    var r = Ta;
                    try {
                        if (Jn(), Hi.current = Ts, Ji) {
                            for (var o = Xi.memoizedState; null !== o;) {
                                var n = o.queue;
                                null !== n && (n.pending = null), o = o.next
                            }
                            Ji = !1
                        }
                        if (Ki = 0, Qi = Gi = Xi = null, Zi = !1, ka.current = null, null === r || null === r.return) {
                            Pa = 1, Fa = t,
                                Ta = null;
                            break
                        }
                        e: {
                            var i = e,
                                s = r.return,
                                a = r,
                                l = t;
                            if (t = Aa, a.flags |= 2048, a.firstEffect = a.lastEffect = null, null !== l && "object" == typeof l && "function" == typeof l.then) {
                                var c = l;
                                if (0 == (2 & a.mode)) {
                                    var u = a.alternate;
                                    u ? (a.updateQueue = u.updateQueue, a.memoizedState = u.memoizedState, a.lanes = u.lanes) : (a.updateQueue = null, a.memoizedState = null)
                                }
                                var d = 0 != (1 & Ii.current),
                                    h = s;
                                do {
                                    var p;
                                    if (p = 13 === h.tag) {
                                        var f = h.memoizedState;
                                        if (null !== f) p = null !== f.dehydrated;
                                        else {
                                            var g = h.memoizedProps;
                                            p = void 0 !== g.fallback && (!0 !== g.unstable_avoidThisFallback || !d)
                                        }
                                    }
                                    if (p) {
                                        var m = h.updateQueue;
                                        if (null === m) {
                                            var _ = new Set;
                                            _.add(c), h.updateQueue = _
                                        } else m.add(c);
                                        if (0 == (2 & h.mode)) {
                                            if (h.flags |= 64, a.flags |= 16384, a.flags &= -2981, 1 === a.tag)
                                                if (null === a.alternate) a.tag = 17;
                                                else {
                                                    var v = si(-1, 1);
                                                    v.tag = 2, ai(a, v)
                                                }
                                            a.lanes |= 1;
                                            break e
                                        }
                                        l = void 0, a = t;
                                        var b = i.pingCache;
                                        if (null === b ? (b = i.pingCache = new sa, l = new Set, b.set(c, l)) : void 0 === (l = b.get(c)) && (l = new Set, b.set(c, l)), !l.has(a)) {
                                            l.add(a);
                                            var y = Dl.bind(null, i, c, a);
                                            c.then(y, y)
                                        }
                                        h.flags |= 4096, h.lanes = t;
                                        break e
                                    }
                                    h = h.return
                                } while (null !== h);
                                l = Error((Y(a.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")
                            }
                            5 !== Pa && (Pa = 2),
                            l = na(l, a),
                            h = s;do {
                                switch (h.tag) {
                                    case 3:
                                        i = l, h.flags |= 4096, t &= -t, h.lanes |= t, li(h, aa(0, i, t));
                                        break e;
                                    case 1:
                                        i = l;
                                        var w = h.type,
                                            S = h.stateNode;
                                        if (0 == (64 & h.flags) && ("function" == typeof w.getDerivedStateFromError || null !== S && "function" == typeof S.componentDidCatch && (null === za || !za.has(S)))) {
                                            h.flags |= 4096, t &= -t, h.lanes |= t, li(h, la(h, i, t));
                                            break e
                                        }
                                }
                                h = h.return
                            } while (null !== h)
                        }
                        kl(r)
                    } catch (e) {
                        t = e, Ta === r && null !== r && (Ta = r = r.return);
                        continue
                    }
                    break
                }
            }

            function bl() {
                var e = Ca.current;
                return Ca.current = Ts, null === e ? Ts : e
            }

            function yl(e, t) {
                var r = Ea;
                Ea |= 16;
                var o = bl();
                for (xa === e && Aa === t || _l(e, t);;) try {
                    wl();
                    break
                } catch (t) {
                    vl(e, t)
                }
                if (Jn(), Ea = r, Ca.current = o, null !== Ta) throw Error(s(261));
                return xa = null, Aa = 0, Pa
            }

            function wl() {
                for (; null !== Ta;) Cl(Ta)
            }

            function Sl() {
                for (; null !== Ta && !kn();) Cl(Ta)
            }

            function Cl(e) {
                var t = Wa(e.alternate, e, Ma);
                e.memoizedProps = e.pendingProps, null === t ? kl(e) : Ta = t, ka.current = null
            }

            function kl(e) {
                var t = e;
                do {
                    var r = t.alternate;
                    if (e = t.return, 0 == (2048 & t.flags)) {
                        if (null !== (r = ra(r, t, Ma))) return void(Ta = r);
                        if (24 !== (r = t).tag && 23 !== r.tag || null === r.memoizedState || 0 != (1073741824 & Ma) || 0 == (4 & r.mode)) {
                            for (var o = 0, n = r.child; null !== n;) o |= n.lanes | n.childLanes, n = n.sibling;
                            r.childLanes = o
                        }
                        null !== e && 0 == (2048 & e.flags) && (null === e.firstEffect && (e.firstEffect = t.firstEffect), null !== t.lastEffect && (null !== e.lastEffect && (e.lastEffect.nextEffect = t.firstEffect), e.lastEffect = t.lastEffect), 1 < t.flags && (null !== e.lastEffect ? e.lastEffect.nextEffect = t : e.firstEffect = t, e.lastEffect = t))
                    } else {
                        if (null !== (r = oa(t))) return r.flags &= 2047, void(Ta = r);
                        null !== e && (e.firstEffect = e.lastEffect = null, e.flags |= 2048)
                    }
                    if (null !== (t = t.sibling)) return void(Ta = t);
                    Ta = t = e
                } while (null !== t);
                0 === Pa && (Pa = 5)
            }

            function El(e) {
                var t = jn();
                return Vn(99, xl.bind(null, e, t)), null
            }

            function xl(e, t) {
                do {
                    Al()
                } while (null !== Ya);
                if (0 != (48 & Ea)) throw Error(s(327));
                var r = e.finishedWork;
                if (null === r) return null;
                if (e.finishedWork = null, e.finishedLanes = 0, r === e.current) throw Error(s(177));
                e.callbackNode = null;
                var o = r.lanes | r.childLanes,
                    n = o,
                    i = e.pendingLanes & ~n;
                e.pendingLanes = n, e.suspendedLanes = 0, e.pingedLanes = 0, e.expiredLanes &= n, e.mutableReadLanes &= n, e.entangledLanes &= n, n = e.entanglements;
                for (var a = e.eventTimes, l = e.expirationTimes; 0 < i;) {
                    var c = 31 - Ut(i),
                        u = 1 << c;
                    n[c] = 0, a[c] = -1, l[c] = -1, i &= ~u
                }
                if (null !== Qa && 0 == (24 & o) && Qa.has(e) && Qa.delete(e), e === xa && (Ta = xa = null, Aa = 0), 1 < r.flags ? null !== r.lastEffect ? (r.lastEffect.nextEffect = r, o = r.firstEffect) : o = r : o = r.firstEffect, null !== o) {
                    if (n = Ea, Ea |= 32, ka.current = null, Ro = Kt, ho(a = uo())) {
                        if ("selectionStart" in a) l = {
                            start: a.selectionStart,
                            end: a.selectionEnd
                        };
                        else e: if (l = (l = a.ownerDocument) && l.defaultView || window, (u = l.getSelection && l.getSelection()) && 0 !== u.rangeCount) {
                            l = u.anchorNode, i = u.anchorOffset, c = u.focusNode, u = u.focusOffset;
                            try {
                                l.nodeType, c.nodeType
                            } catch (e) {
                                l = null;
                                break e
                            }
                            var d = 0,
                                h = -1,
                                p = -1,
                                f = 0,
                                g = 0,
                                m = a,
                                _ = null;
                            t: for (;;) {
                                for (var v; m !== l || 0 !== i && 3 !== m.nodeType || (h = d + i), m !== c || 0 !== u && 3 !== m.nodeType || (p = d + u), 3 === m.nodeType && (d += m.nodeValue.length), null !== (v = m.firstChild);) _ = m, m = v;
                                for (;;) {
                                    if (m === a) break t;
                                    if (_ === l && ++f === i && (h = d), _ === c && ++g === u && (p = d), null !== (v = m.nextSibling)) break;
                                    _ = (m = _).parentNode
                                }
                                m = v
                            }
                            l = -1 === h || -1 === p ? null : {
                                start: h,
                                end: p
                            }
                        } else l = null;
                        l = l || {
                            start: 0,
                            end: 0
                        }
                    } else l = null;
                    Bo = {
                        focusedElem: a,
                        selectionRange: l
                    }, Kt = !1, ol = null, nl = !1, Va = o;
                    do {
                        try {
                            Tl()
                        } catch (e) {
                            if (null === Va) throw Error(s(330));
                            Il(Va, e), Va = Va.nextEffect
                        }
                    } while (null !== Va);
                    ol = null, Va = o;
                    do {
                        try {
                            for (a = e; null !== Va;) {
                                var b = Va.flags;
                                if (16 & b && _e(Va.stateNode, ""), 128 & b) {
                                    var y = Va.alternate;
                                    if (null !== y) {
                                        var w = y.ref;
                                        null !== w && ("function" == typeof w ? w(null) : w.current = null)
                                    }
                                }
                                switch (1038 & b) {
                                    case 2:
                                        _a(Va), Va.flags &= -3;
                                        break;
                                    case 6:
                                        _a(Va), Va.flags &= -3, ba(Va.alternate, Va);
                                        break;
                                    case 1024:
                                        Va.flags &= -1025;
                                        break;
                                    case 1028:
                                        Va.flags &= -1025, ba(Va.alternate, Va);
                                        break;
                                    case 4:
                                        ba(Va.alternate, Va);
                                        break;
                                    case 8:
                                        va(a, l = Va);
                                        var S = l.alternate;
                                        ga(l), null !== S && ga(S)
                                }
                                Va = Va.nextEffect
                            }
                        } catch (e) {
                            if (null === Va) throw Error(s(330));
                            Il(Va, e), Va = Va.nextEffect
                        }
                    } while (null !== Va);
                    if (w = Bo, y = uo(), b = w.focusedElem, a = w.selectionRange, y !== b && b && b.ownerDocument && function e(t, r) {
                            return !(!t || !r) && (t === r || (!t || 3 !== t.nodeType) && (r && 3 === r.nodeType ? e(t, r.parentNode) : "contains" in t ? t.contains(r) : !!t.compareDocumentPosition && !!(16 & t.compareDocumentPosition(r))))
                        }(b.ownerDocument.documentElement, b)) {
                        null !== a && ho(b) && (y = a.start, void 0 === (w = a.end) && (w = y), "selectionStart" in b ? (b.selectionStart = y, b.selectionEnd = Math.min(w, b.value.length)) : (w = (y = b.ownerDocument || document) && y.defaultView || window).getSelection && (w = w.getSelection(), l = b.textContent.length, S = Math.min(a.start, l), a = void 0 === a.end ? S : Math.min(a.end, l), !w.extend && S > a && (l = a, a = S, S = l), l = co(b, S), i = co(b, a), l && i && (1 !== w.rangeCount || w.anchorNode !== l.node || w.anchorOffset !== l.offset || w.focusNode !== i.node || w.focusOffset !== i.offset) && ((y = y.createRange()).setStart(l.node, l.offset), w.removeAllRanges(), S > a ? (w.addRange(y), w.extend(i.node, i.offset)) : (y.setEnd(i.node, i.offset), w.addRange(y))))), y = [];
                        for (w = b; w = w.parentNode;) 1 === w.nodeType && y.push({
                            element: w,
                            left: w.scrollLeft,
                            top: w.scrollTop
                        });
                        for ("function" == typeof b.focus && b.focus(), b = 0; b < y.length; b++)(w = y[b]).element.scrollLeft = w.left, w.element.scrollTop = w.top
                    }
                    Kt = !!Ro, Bo = Ro = null, e.current = r, Va = o;
                    do {
                        try {
                            for (b = e; null !== Va;) {
                                var C = Va.flags;
                                if (36 & C && ha(b, Va.alternate, Va), 128 & C) {
                                    y = void 0;
                                    var k = Va.ref;
                                    if (null !== k) {
                                        var E = Va.stateNode;
                                        switch (Va.tag) {
                                            case 5:
                                                y = E;
                                                break;
                                            default:
                                                y = E
                                        }
                                        "function" == typeof k ? k(y) : k.current = y
                                    }
                                }
                                Va = Va.nextEffect
                            }
                        } catch (e) {
                            if (null === Va) throw Error(s(330));
                            Il(Va, e), Va = Va.nextEffect
                        }
                    } while (null !== Va);
                    Va = null, Dn(), Ea = n
                } else e.current = r;
                if (Ha) Ha = !1, Ya = e, Ka = t;
                else
                    for (Va = o; null !== Va;) t = Va.nextEffect, Va.nextEffect = null, 8 & Va.flags && ((C = Va).sibling = null, C.stateNode = null), Va = t;
                if (0 === (o = e.pendingLanes) && (za = null), 1 === o ? e === Za ? Ja++ : (Ja = 0, Za = e) : Ja = 0, r = r.stateNode, yn && "function" == typeof yn.onCommitFiberRoot) try {
                    yn.onCommitFiberRoot(bn, r, void 0, 64 == (64 & r.current.flags))
                } catch (e) {}
                if (cl(e, $n()), Ua) throw Ua = !1, e = qa, qa = null, e;
                return 0 != (8 & Ea) || qn(), null
            }

            function Tl() {
                for (; null !== Va;) {
                    var e = Va.alternate;
                    nl || null === ol || (0 != (8 & Va.flags) ? Ze(Va, ol) && (nl = !0) : 13 === Va.tag && wa(e, Va) && Ze(Va, ol) && (nl = !0));
                    var t = Va.flags;
                    0 != (256 & t) && da(e, Va), 0 == (512 & t) || Ha || (Ha = !0, Un(97, (function() {
                        return Al(), null
                    }))), Va = Va.nextEffect
                }
            }

            function Al() {
                if (90 !== Ka) {
                    var e = 97 < Ka ? 97 : Ka;
                    return Ka = 90, Vn(e, Pl)
                }
                return !1
            }

            function Ml(e, t) {
                Xa.push(t, e), Ha || (Ha = !0, Un(97, (function() {
                    return Al(), null
                })))
            }

            function Ll(e, t) {
                Ga.push(t, e), Ha || (Ha = !0, Un(97, (function() {
                    return Al(), null
                })))
            }

            function Pl() {
                if (null === Ya) return !1;
                var e = Ya;
                if (Ya = null, 0 != (48 & Ea)) throw Error(s(331));
                var t = Ea;
                Ea |= 32;
                var r = Ga;
                Ga = [];
                for (var o = 0; o < r.length; o += 2) {
                    var n = r[o],
                        i = r[o + 1],
                        a = n.destroy;
                    if (n.destroy = void 0, "function" == typeof a) try {
                        a()
                    } catch (e) {
                        if (null === i) throw Error(s(330));
                        Il(i, e)
                    }
                }
                for (r = Xa, Xa = [], o = 0; o < r.length; o += 2) {
                    n = r[o], i = r[o + 1];
                    try {
                        var l = n.create;
                        n.destroy = l()
                    } catch (e) {
                        if (null === i) throw Error(s(330));
                        Il(i, e)
                    }
                }
                for (l = e.current.firstEffect; null !== l;) e = l.nextEffect, l.nextEffect = null, 8 & l.flags && (l.sibling = null, l.stateNode = null), l = e;
                return Ea = t, qn(), !0
            }

            function Fl(e, t, r) {
                ai(e, t = aa(0, t = na(r, t), 1)), t = il(), null !== (e = ll(e, 1)) && (Vt(e, 1, t), cl(e, t))
            }

            function Il(e, t) {
                if (3 === e.tag) Fl(e, e, t);
                else
                    for (var r = e.return; null !== r;) {
                        if (3 === r.tag) {
                            Fl(r, e, t);
                            break
                        }
                        if (1 === r.tag) {
                            var o = r.stateNode;
                            if ("function" == typeof r.type.getDerivedStateFromError || "function" == typeof o.componentDidCatch && (null === za || !za.has(o))) {
                                var n = la(r, e = na(t, e), 1);
                                if (ai(r, n), n = il(), null !== (r = ll(r, 1))) Vt(r, 1, n), cl(r, n);
                                else if ("function" == typeof o.componentDidCatch && (null === za || !za.has(o))) try {
                                    o.componentDidCatch(t, e)
                                } catch (e) {}
                                break
                            }
                        }
                        r = r.return
                    }
            }

            function Dl(e, t, r) {
                var o = e.pingCache;
                null !== o && o.delete(t), t = il(), e.pingedLanes |= e.suspendedLanes & r, xa === e && (Aa & r) === r && (4 === Pa || 3 === Pa && (62914560 & Aa) === Aa && 500 > $n() - Na ? _l(e, 0) : Ra |= r), cl(e, t)
            }

            function Ol(e, t) {
                var r = e.stateNode;
                null !== r && r.delete(t), 0 === (t = 0) && (0 == (2 & (t = e.mode)) ? t = 1 : 0 == (4 & t) ? t = 99 === jn() ? 1 : 2 : (0 === tl && (tl = Ia), 0 === (t = jt(62914560 & ~tl)) && (t = 4194304))), r = il(), null !== (e = ll(e, t)) && (Vt(e, t, r), cl(e, r))
            }

            function Rl(e, t, r, o) {
                this.tag = e,
                    this.key = r, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = t, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = o, this.flags = 0, this.lastEffect = this.firstEffect = this.nextEffect = null, this.childLanes = this.lanes = 0, this.alternate = null
            }

            function Bl(e, t, r, o) {
                return new Rl(e, t, r, o)
            }

            function Nl(e) {
                return !(!(e = e.prototype) || !e.isReactComponent)
            }

            function $l(e, t) {
                var r = e.alternate;
                return null === r ? ((r = Bl(e.tag, t, e.key, e.mode)).elementType = e.elementType, r.type = e.type, r.stateNode = e.stateNode, r.alternate = e, e.alternate = r) : (r.pendingProps = t, r.type = e.type, r.flags = 0, r.nextEffect = null, r.firstEffect = null, r.lastEffect = null), r.childLanes = e.childLanes, r.lanes = e.lanes, r.child = e.child, r.memoizedProps = e.memoizedProps, r.memoizedState = e.memoizedState, r.updateQueue = e.updateQueue, t = e.dependencies, r.dependencies = null === t ? null : {
                    lanes: t.lanes,
                    firstContext: t.firstContext
                }, r.sibling = e.sibling, r.index = e.index, r.ref = e.ref, r
            }

            function jl(e, t, r, o, n, i) {
                var a = 2;
                if (o = e, "function" == typeof e) Nl(e) && (a = 1);
                else if ("string" == typeof e) a = 5;
                else e: switch (e) {
                    case k:
                        return Wl(r.children, n, i, t);
                    case R:
                        a = 8, n |= 16;
                        break;
                    case E:
                        a = 8, n |= 1;
                        break;
                    case x:
                        return (e = Bl(12, r, t, 8 | n)).elementType = x, e.type = x, e.lanes = i, e;
                    case L:
                        return (e = Bl(13, r, t, n)).type = L, e.elementType = L, e.lanes = i, e;
                    case P:
                        return (e = Bl(19, r, t, n)).elementType = P, e.lanes = i, e;
                    case B:
                        return Vl(r, n, i, t);
                    case N:
                        return (e = Bl(24, r, t, n)).elementType = N, e.lanes = i, e;
                    default:
                        if ("object" == typeof e && null !== e) switch (e.$$typeof) {
                            case T:
                                a = 10;
                                break e;
                            case A:
                                a = 9;
                                break e;
                            case M:
                                a = 11;
                                break e;
                            case F:
                                a = 14;
                                break e;
                            case I:
                                a = 16, o = null;
                                break e;
                            case D:
                                a = 22;
                                break e
                        }
                        throw Error(s(130, null == e ? e : typeof e, ""))
                }
                return (t = Bl(a, r, t, n)).elementType = e, t.type = o, t.lanes = i, t
            }

            function Wl(e, t, r, o) {
                return (e = Bl(7, e, o, t)).lanes = r, e
            }

            function Vl(e, t, r, o) {
                return (e = Bl(23, e, o, t)).elementType = B, e.lanes = r, e
            }

            function Ul(e, t, r) {
                return (e = Bl(6, e, null, t)).lanes = r, e
            }

            function ql(e, t, r) {
                return (t = Bl(4, null !== e.children ? e.children : [], e.key, t)).lanes = r, t.stateNode = {
                    containerInfo: e.containerInfo,
                    pendingChildren: null,
                    implementation: e.implementation
                }, t
            }

            function zl(e, t, r) {
                this.tag = t, this.containerInfo = e, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = -1, this.pendingContext = this.context = null, this.hydrate = r, this.callbackNode = null, this.callbackPriority = 0, this.eventTimes = Wt(0), this.expirationTimes = Wt(-1), this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = Wt(0), this.mutableSourceEagerHydrationData = null
            }

            function Hl(e, t, r) {
                var o = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
                return {
                    $$typeof: C,
                    key: null == o ? null : "" + o,
                    children: e,
                    containerInfo: t,
                    implementation: r
                }
            }

            function Yl(e, t, r, o) {
                var n = t.current,
                    i = il(),
                    a = sl(n);
                e: if (r) {
                    t: {
                        if (Xe(r = r._reactInternals) !== r || 1 !== r.tag) throw Error(s(170));
                        var l = r;do {
                            switch (l.tag) {
                                case 3:
                                    l = l.stateNode.context;
                                    break t;
                                case 1:
                                    if (pn(l.type)) {
                                        l = l.stateNode.__reactInternalMemoizedMergedChildContext;
                                        break t
                                    }
                            }
                            l = l.return
                        } while (null !== l);
                        throw Error(s(171))
                    }
                    if (1 === r.tag) {
                        var c = r.type;
                        if (pn(c)) {
                            r = mn(r, c, l);
                            break e
                        }
                    }
                    r = l
                }
                else r = ln;
                return null === t.context ? t.context = r : t.pendingContext = r, (t = si(i, a)).payload = {
                    element: e
                }, null !== (o = void 0 === o ? null : o) && (t.callback = o), ai(n, t), al(n, a, i), a
            }

            function Kl(e) {
                if (!(e = e.current).child) return null;
                switch (e.child.tag) {
                    case 5:
                    default:
                        return e.child.stateNode
                }
            }

            function Xl(e, t) {
                if (null !== (e = e.memoizedState) && null !== e.dehydrated) {
                    var r = e.retryLane;
                    e.retryLane = 0 !== r && r < t ? r : t
                }
            }

            function Gl(e, t) {
                Xl(e, t), (e = e.alternate) && Xl(e, t)
            }

            function Ql(e, t, r) {
                var o = null != r && null != r.hydrationOptions && r.hydrationOptions.mutableSources || null;
                if (r = new zl(e, t, null != r && !0 === r.hydrate), t = Bl(3, null, null, 2 === t ? 7 : 1 === t ? 3 : 0), r.current = t, t.stateNode = r, ni(t), e[Xo] = r.current, To(8 === e.nodeType ? e.parentNode : e), o)
                    for (e = 0; e < o.length; e++) {
                        var n = (t = o[e])._getVersion;
                        n = n(t._source), null == r.mutableSourceEagerHydrationData ? r.mutableSourceEagerHydrationData = [t, n] : r.mutableSourceEagerHydrationData.push(t, n)
                    }
                this._internalRoot = r
            }

            function Jl(e) {
                return !(!e || 1 !== e.nodeType && 9 !== e.nodeType && 11 !== e.nodeType && (8 !== e.nodeType || " react-mount-point-unstable " !== e.nodeValue))
            }

            function Zl(e, t, r, o, n) {
                var i = r._reactRootContainer;
                if (i) {
                    var s = i._internalRoot;
                    if ("function" == typeof n) {
                        var a = n;
                        n = function() {
                            var e = Kl(s);
                            a.call(e)
                        }
                    }
                    Yl(t, s, e, n)
                } else {
                    if (i = r._reactRootContainer = function(e, t) {
                            if (t || (t = !(!(t = e ? 9 === e.nodeType ? e.documentElement : e.firstChild : null) || 1 !== t.nodeType || !t.hasAttribute("data-reactroot"))), !t)
                                for (var r; r = e.lastChild;) e.removeChild(r);
                            return new Ql(e, 0, t ? {
                                hydrate: !0
                            } : void 0)
                        }(r, o), s = i._internalRoot, "function" == typeof n) {
                        var l = n;
                        n = function() {
                            var e = Kl(s);
                            l.call(e)
                        }
                    }
                    fl((function() {
                        Yl(t, s, e, n)
                    }))
                }
                return Kl(s)
            }

            function ec(e, t) {
                var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
                if (!Jl(t)) throw Error(s(200));
                return Hl(e, t, null, r)
            }
            Wa = function(e, t, r) {
                var o = t.lanes;
                if (null !== e)
                    if (e.memoizedProps !== t.pendingProps || un.current) Fs = !0;
                    else {
                        if (0 == (r & o)) {
                            switch (Fs = !1, t.tag) {
                                case 3:
                                    Vs(t), Ui();
                                    break;
                                case 5:
                                    Pi(t);
                                    break;
                                case 1:
                                    pn(t.type) && _n(t);
                                    break;
                                case 4:
                                    Mi(t, t.stateNode.containerInfo);
                                    break;
                                case 10:
                                    o = t.memoizedProps.value;
                                    var n = t.type._context;
                                    an(Kn, n._currentValue), n._currentValue = o;
                                    break;
                                case 13:
                                    if (null !== t.memoizedState) return 0 != (r & t.child.childLanes) ? Ys(e, t, r) : (an(Ii, 1 & Ii.current), null !== (t = ea(e, t, r)) ? t.sibling : null);
                                    an(Ii, 1 & Ii.current);
                                    break;
                                case 19:
                                    if (o = 0 != (r & t.childLanes), 0 != (64 & e.flags)) {
                                        if (o) return Zs(e, t, r);
                                        t.flags |= 64
                                    }
                                    if (null !== (n = t.memoizedState) && (n.rendering = null, n.tail = null, n.lastEffect = null), an(Ii, Ii.current), o) break;
                                    return null;
                                case 23:
                                case 24:
                                    return t.lanes = 0, Bs(e, t, r)
                            }
                            return ea(e, t, r)
                        }
                        Fs = 0 != (16384 & e.flags)
                    }
                else Fs = !1;
                switch (t.lanes = 0, t.tag) {
                    case 2:
                        if (o = t.type, null !== e && (e.alternate = null, t.alternate = null, t.flags |= 2), e = t.pendingProps, n = hn(t, cn.current), ti(t, r), n = rs(null, t, o, e, n, r), t.flags |= 1, "object" == typeof n && null !== n && "function" == typeof n.render && void 0 === n.$$typeof) {
                            if (t.tag = 1, t.memoizedState = null, t.updateQueue = null, pn(o)) {
                                var i = !0;
                                _n(t)
                            } else i = !1;
                            t.memoizedState = null !== n.state && void 0 !== n.state ? n.state : null, ni(t);
                            var a = o.getDerivedStateFromProps;
                            "function" == typeof a && hi(t, o, a, e), n.updater = pi, t.stateNode = n, n._reactInternals = t, _i(t, o, e, r), t = Ws(null, t, o, !0, i, r)
                        } else t.tag = 0, Is(null, t, n, r), t = t.child;
                        return t;
                    case 16:
                        n = t.elementType;
                        e: {
                            switch (null !== e && (e.alternate = null, t.alternate = null, t.flags |= 2), e = t.pendingProps, n = (i = n._init)(n._payload), t.type = n, i = t.tag = function(e) {
                                if ("function" == typeof e) return Nl(e) ? 1 : 0;
                                if (null != e) {
                                    if ((e = e.$$typeof) === M) return 11;
                                    if (e === F) return 14
                                }
                                return 2
                            }(n), e = Yn(n, e), i) {
                                case 0:
                                    t = $s(null, t, n, e, r);
                                    break e;
                                case 1:
                                    t = js(null, t, n, e, r);
                                    break e;
                                case 11:
                                    t = Ds(null, t, n, e, r);
                                    break e;
                                case 14:
                                    t = Os(null, t, n, Yn(n.type, e), o, r);
                                    break e
                            }
                            throw Error(s(306, n, ""))
                        }
                        return t;
                    case 0:
                        return o = t.type, n = t.pendingProps, $s(e, t, o, n = t.elementType === o ? n : Yn(o, n), r);
                    case 1:
                        return o = t.type, n = t.pendingProps, js(e, t, o, n = t.elementType === o ? n : Yn(o, n), r);
                    case 3:
                        if (Vs(t), o = t.updateQueue, null === e || null === o) throw Error(s(282));
                        if (o = t.pendingProps, n = null !== (n = t.memoizedState) ? n.element : null, ii(e, t), ci(t, o, null, r), (o = t.memoizedState.element) === n) Ui(), t = ea(e, t, r);
                        else {
                            if ((i = (n = t.stateNode).hydrate) && (Ri = Uo(t.stateNode.containerInfo.firstChild), Oi = t, i = Bi = !0), i) {
                                if (null != (e = n.mutableSourceEagerHydrationData))
                                    for (n = 0; n < e.length; n += 2)(i = e[n])._workInProgressVersionPrimary = e[n + 1], qi.push(i);
                                for (r = Ci(t, null, o, r), t.child = r; r;) r.flags = -3 & r.flags | 1024, r = r.sibling
                            } else Is(e, t, o, r), Ui();
                            t = t.child
                        }
                        return t;
                    case 5:
                        return Pi(t), null === e && ji(t), o = t.type, n = t.pendingProps, i = null !== e ? e.memoizedProps : null, a = n.children, $o(o, n) ? a = null : null !== i && $o(o, i) && (t.flags |= 16), Ns(e, t), Is(e, t, a, r), t.child;
                    case 6:
                        return null === e && ji(t), null;
                    case 13:
                        return Ys(e, t, r);
                    case 4:
                        return Mi(t, t.stateNode.containerInfo), o = t.pendingProps, null === e ? t.child = Si(t, null, o, r) : Is(e, t, o, r), t.child;
                    case 11:
                        return o = t.type, n = t.pendingProps, Ds(e, t, o, n = t.elementType === o ? n : Yn(o, n), r);
                    case 7:
                        return Is(e, t, t.pendingProps, r), t.child;
                    case 8:
                    case 12:
                        return Is(e, t, t.pendingProps.children, r), t.child;
                    case 10:
                        e: {
                            o = t.type._context,
                            n = t.pendingProps,
                            a = t.memoizedProps,
                            i = n.value;
                            var l = t.type._context;
                            if (an(Kn, l._currentValue), l._currentValue = i, null !== a)
                                if (l = a.value, 0 === (i = io(l, i) ? 0 : 0 | ("function" == typeof o._calculateChangedBits ? o._calculateChangedBits(l, i) : 1073741823))) {
                                    if (a.children === n.children && !un.current) {
                                        t = ea(e, t, r);
                                        break e
                                    }
                                } else
                                    for (null !== (l = t.child) && (l.return = t); null !== l;) {
                                        var c = l.dependencies;
                                        if (null !== c) {
                                            a = l.child;
                                            for (var u = c.firstContext; null !== u;) {
                                                if (u.context === o && 0 != (u.observedBits & i)) {
                                                    1 === l.tag && ((u = si(-1, r & -r)).tag = 2, ai(l, u)), l.lanes |= r, null !== (u = l.alternate) && (u.lanes |= r), ei(l.return, r), c.lanes |= r;
                                                    break
                                                }
                                                u = u.next
                                            }
                                        } else a = 10 === l.tag && l.type === t.type ? null : l.child;
                                        if (null !== a) a.return = l;
                                        else
                                            for (a = l; null !== a;) {
                                                if (a === t) {
                                                    a = null;
                                                    break
                                                }
                                                if (null !== (l = a.sibling)) {
                                                    l.return = a.return, a = l;
                                                    break
                                                }
                                                a = a.return
                                            }
                                        l = a
                                    }
                            Is(e, t, n.children, r),
                            t = t.child
                        }
                        return t;
                    case 9:
                        return n = t.type, o = (i = t.pendingProps).children, ti(t, r), o = o(n = ri(n, i.unstable_observedBits)), t.flags |= 1, Is(e, t, o, r), t.child;
                    case 14:
                        return i = Yn(n = t.type, t.pendingProps), Os(e, t, n, i = Yn(n.type, i), o, r);
                    case 15:
                        return Rs(e, t, t.type, t.pendingProps, o, r);
                    case 17:
                        return o = t.type, n = t.pendingProps, n = t.elementType === o ? n : Yn(o, n), null !== e && (e.alternate = null, t.alternate = null, t.flags |= 2), t.tag = 1, pn(o) ? (e = !0, _n(t)) : e = !1, ti(t, r), gi(t, o, n), _i(t, o, n, r), Ws(null, t, o, !0, e, r);
                    case 19:
                        return Zs(e, t, r);
                    case 23:
                    case 24:
                        return Bs(e, t, r)
                }
                throw Error(s(156, t.tag))
            }, Ql.prototype.render = function(e) {
                Yl(e, this._internalRoot, null, null)
            }, Ql.prototype.unmount = function() {
                var e = this._internalRoot,
                    t = e.containerInfo;
                Yl(null, e, null, (function() {
                    t[Xo] = null
                }))
            }, et = function(e) {
                13 === e.tag && (al(e, 4, il()), Gl(e, 4))
            }, tt = function(e) {
                13 === e.tag && (al(e, 67108864, il()), Gl(e, 67108864))
            }, rt = function(e) {
                if (13 === e.tag) {
                    var t = il(),
                        r = sl(e);
                    al(e, r, t), Gl(e, r)
                }
            }, ot = function(e, t) {
                return t()
            }, xe = function(e, t, r) {
                switch (t) {
                    case "input":
                        if (re(e, r), t = r.name, "radio" === r.type && null != t) {
                            for (r = e; r.parentNode;) r = r.parentNode;
                            for (r = r.querySelectorAll("input[name=" + JSON.stringify("" + t) + '][type="radio"]'), t = 0; t < r.length; t++) {
                                var o = r[t];
                                if (o !== e && o.form === e.form) {
                                    var n = en(o);
                                    if (!n) throw Error(s(90));
                                    Q(o), re(o, n)
                                }
                            }
                        }
                        break;
                    case "textarea":
                        ce(e, r);
                        break;
                    case "select":
                        null != (t = r.value) && se(e, !!r.multiple, t, !1)
                }
            }, Fe = pl, Ie = function(e, t, r, o, n) {
                var i = Ea;
                Ea |= 4;
                try {
                    return Vn(98, e.bind(null, t, r, o, n))
                } finally {
                    0 === (Ea = i) && (ja(), qn())
                }
            }, De = function() {
                0 == (49 & Ea) && (function() {
                    if (null !== Qa) {
                        var e = Qa;
                        Qa = null, e.forEach((function(e) {
                            e.expiredLanes |= 24 & e.pendingLanes, cl(e, $n())
                        }))
                    }
                    qn()
                }(), Al())
            }, Oe = function(e, t) {
                var r = Ea;
                Ea |= 2;
                try {
                    return e(t)
                } finally {
                    0 === (Ea = r) && (ja(), qn())
                }
            };
            var tc = {
                    Events: [Jo, Zo, en, Le, Pe, Al, {
                        current: !1
                    }]
                },
                rc = {
                    findFiberByHostInstance: Qo,
                    bundleType: 0,
                    version: "17.0.2",
                    rendererPackageName: "react-dom"
                },
                oc = {
                    bundleType: rc.bundleType,
                    version: rc.version,
                    rendererPackageName: rc.rendererPackageName,
                    rendererConfig: rc.rendererConfig,
                    overrideHookState: null,
                    overrideHookStateDeletePath: null,
                    overrideHookStateRenamePath: null,
                    overrideProps: null,
                    overridePropsDeletePath: null,
                    overridePropsRenamePath: null,
                    setSuspenseHandler: null,
                    scheduleUpdate: null,
                    currentDispatcherRef: w.ReactCurrentDispatcher,
                    findHostInstanceByFiber: function(e) {
                        return null === (e = Je(e)) ? null : e.stateNode
                    },
                    findFiberByHostInstance: rc.findFiberByHostInstance || function() {
                        return null
                    },
                    findHostInstancesForRefresh: null,
                    scheduleRefresh: null,
                    scheduleRoot: null,
                    setRefreshHandler: null,
                    getCurrentFiber: null
                };
            if ("undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
                var nc = __REACT_DEVTOOLS_GLOBAL_HOOK__;
                if (!nc.isDisabled && nc.supportsFiber) try {
                    bn = nc.inject(oc), yn = nc
                } catch (e) {}
            }
            t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = tc, t.createPortal = ec, t.findDOMNode = function(e) {
                if (null == e) return null;
                if (1 === e.nodeType) return e;
                var t = e._reactInternals;
                if (void 0 === t) {
                    if ("function" == typeof e.render) throw Error(s(188));
                    throw Error(s(268, Object.keys(e)))
                }
                return e = null === (e = Je(t)) ? null : e.stateNode
            }, t.flushSync = function(e, t) {
                var r = Ea;
                if (0 != (48 & r)) return e(t);
                Ea |= 1;
                try {
                    if (e) return Vn(99, e.bind(null, t))
                } finally {
                    Ea = r, qn()
                }
            }, t.hydrate = function(e, t, r) {
                if (!Jl(t)) throw Error(s(200));
                return Zl(null, e, t, !0, r)
            }, t.render = function(e, t, r) {
                if (!Jl(t)) throw Error(s(200));
                return Zl(null, e, t, !1, r)
            }, t.unmountComponentAtNode = function(e) {
                if (!Jl(e)) throw Error(s(40));
                return !!e._reactRootContainer && (fl((function() {
                    Zl(null, null, e, !1, (function() {
                        e._reactRootContainer = null, e[Xo] = null
                    }))
                })), !0)
            }, t.unstable_batchedUpdates = pl, t.unstable_createPortal = function(e, t) {
                return ec(e, t, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null)
            }, t.unstable_renderSubtreeIntoContainer = function(e, t, r, o) {
                if (!Jl(r)) throw Error(s(200));
                if (null == e || void 0 === e._reactInternals) throw Error(s(38));
                return Zl(e, t, r, !1, o)
            }, t.version = "17.0.2"
        },
        73935: (e, t, r) => {
            "use strict";
            ! function e() {
                if ("undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE) {
                    0;
                    try {
                        __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)
                    } catch (e) {
                        console.error(e)
                    }
                }
            }(), e.exports = r(64448)
        },
        72408: (e, t, r) => {
            "use strict";
            var o = r(27418),
                n = 60103,
                i = 60106;
            t.Fragment = 60107, t.StrictMode = 60108, t.Profiler = 60114;
            var s = 60109,
                a = 60110,
                l = 60112;
            t.Suspense = 60113;
            var c = 60115,
                u = 60116;
            if ("function" == typeof Symbol && Symbol.for) {
                var d = Symbol.for;
                n = d("react.element"), i = d("react.portal"), t.Fragment = d("react.fragment"), t.StrictMode = d("react.strict_mode"), t.Profiler = d("react.profiler"), s = d("react.provider"), a = d("react.context"), l = d("react.forward_ref"), t.Suspense = d("react.suspense"), c = d("react.memo"), u = d("react.lazy")
            }
            var h = "function" == typeof Symbol && Symbol.iterator;

            function p(e) {
                for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, r = 1; r < arguments.length; r++) t += "&args[]=" + encodeURIComponent(arguments[r]);
                return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
            }
            var f = {
                    isMounted: function() {
                        return !1
                    },
                    enqueueForceUpdate: function() {},
                    enqueueReplaceState: function() {},
                    enqueueSetState: function() {}
                },
                g = {};

            function m(e, t, r) {
                this.props = e, this.context = t, this.refs = g, this.updater = r || f
            }

            function _() {}

            function v(e, t, r) {
                this.props = e, this.context = t, this.refs = g, this.updater = r || f
            }
            m.prototype.isReactComponent = {}, m.prototype.setState = function(e, t) {
                if ("object" != typeof e && "function" != typeof e && null != e) throw Error(p(85));
                this.updater.enqueueSetState(this, e, t, "setState")
            }, m.prototype.forceUpdate = function(e) {
                this.updater.enqueueForceUpdate(this, e, "forceUpdate")
            }, _.prototype = m.prototype;
            var b = v.prototype = new _;
            b.constructor = v, o(b, m.prototype), b.isPureReactComponent = !0;
            var y = {
                    current: null
                },
                w = Object.prototype.hasOwnProperty,
                S = {
                    key: !0,
                    ref: !0,
                    __self: !0,
                    __source: !0
                };

            function C(e, t, r) {
                var o, i = {},
                    s = null,
                    a = null;
                if (null != t)
                    for (o in void 0 !== t.ref && (a = t.ref), void 0 !== t.key && (s = "" + t.key), t) w.call(t, o) && !S.hasOwnProperty(o) && (i[o] = t[o]);
                var l = arguments.length - 2;
                if (1 === l) i.children = r;
                else if (1 < l) {
                    for (var c = Array(l), u = 0; u < l; u++) c[u] = arguments[u + 2];
                    i.children = c
                }
                if (e && e.defaultProps)
                    for (o in l = e.defaultProps) void 0 === i[o] && (i[o] = l[o]);
                return {
                    $$typeof: n,
                    type: e,
                    key: s,
                    ref: a,
                    props: i,
                    _owner: y.current
                }
            }

            function k(e) {
                return "object" == typeof e && null !== e && e.$$typeof === n
            }
            var E = /\/+/g;

            function x(e, t) {
                return "object" == typeof e && null !== e && null != e.key ? function(e) {
                    var t = {
                        "=": "=0",
                        ":": "=2"
                    };
                    return "$" + e.replace(/[=:]/g, (function(e) {
                        return t[e]
                    }))
                }("" + e.key) : t.toString(36)
            }

            function T(e, t, r, o, s) {
                var a = typeof e;
                "undefined" !== a && "boolean" !== a || (e = null);
                var l = !1;
                if (null === e) l = !0;
                else switch (a) {
                    case "string":
                    case "number":
                        l = !0;
                        break;
                    case "object":
                        switch (e.$$typeof) {
                            case n:
                            case i:
                                l = !0
                        }
                }
                if (l) return s = s(l = e), e = "" === o ? "." + x(l, 0) : o, Array.isArray(s) ? (r = "", null != e && (r = e.replace(E, "$&/") + "/"), T(s, t, r, "", (function(e) {
                    return e
                }))) : null != s && (k(s) && (s = function(e, t) {
                    return {
                        $$typeof: n,
                        type: e.type,
                        key: t,
                        ref: e.ref,
                        props: e.props,
                        _owner: e._owner
                    }
                }(s, r + (!s.key || l && l.key === s.key ? "" : ("" + s.key).replace(E, "$&/") + "/") + e)), t.push(s)), 1;
                if (l = 0, o = "" === o ? "." : o + ":", Array.isArray(e))
                    for (var c = 0; c < e.length; c++) {
                        var u = o + x(a = e[c], c);
                        l += T(a, t, r, u, s)
                    } else if ("function" == typeof(u = function(e) {
                            return null === e || "object" != typeof e ? null : "function" == typeof(e = h && e[h] || e["@@iterator"]) ? e : null
                        }(e)))
                        for (e = u.call(e), c = 0; !(a = e.next()).done;) l += T(a = a.value, t, r, u = o + x(a, c++), s);
                    else if ("object" === a) throw t = "" + e, Error(p(31, "[object Object]" === t ? "object with keys {" + Object.keys(e).join(", ") + "}" : t));
                return l
            }

            function A(e, t, r) {
                if (null == e) return e;
                var o = [],
                    n = 0;
                return T(e, o, "", "", (function(e) {
                    return t.call(r, e, n++)
                })), o
            }

            function M(e) {
                if (-1 === e._status) {
                    var t = e._result;
                    t = t(), e._status = 0, e._result = t, t.then((function(t) {
                        0 === e._status && (t = t.default, e._status = 1, e._result = t)
                    }), (function(t) {
                        0 === e._status && (e._status = 2, e._result = t)
                    }))
                }
                if (1 === e._status) return e._result;
                throw e._result
            }
            var L = {
                current: null
            };

            function P() {
                var e = L.current;
                if (null === e) throw Error(p(321));
                return e
            }
            var F = {
                ReactCurrentDispatcher: L,
                ReactCurrentBatchConfig: {
                    transition: 0
                },
                ReactCurrentOwner: y,
                IsSomeRendererActing: {
                    current: !1
                },
                assign: o
            };
            t.Children = {
                    map: A,
                    forEach: function(e, t, r) {
                        A(e, (function() {
                            t.apply(this, arguments)
                        }), r)
                    },
                    count: function(e) {
                        var t = 0;
                        return A(e, (function() {
                            t++
                        })), t
                    },
                    toArray: function(e) {
                        return A(e, (function(e) {
                            return e
                        })) || []
                    },
                    only: function(e) {
                        if (!k(e)) throw Error(p(143));
                        return e
                    }
                }, t.Component = m, t.PureComponent = v, t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = F, t.cloneElement = function(e, t, r) {
                    if (null == e) throw Error(p(267, e));
                    var i = o({}, e.props),
                        s = e.key,
                        a = e.ref,
                        l = e._owner;
                    if (null != t) {
                        if (void 0 !== t.ref && (a = t.ref, l = y.current), void 0 !== t.key && (s = "" + t.key), e.type && e.type.defaultProps) var c = e.type.defaultProps;
                        for (u in t) w.call(t, u) && !S.hasOwnProperty(u) && (i[u] = void 0 === t[u] && void 0 !== c ? c[u] : t[u])
                    }
                    var u = arguments.length - 2;
                    if (1 === u) i.children = r;
                    else if (1 < u) {
                        c = Array(u);
                        for (var d = 0; d < u; d++) c[d] = arguments[d + 2];
                        i.children = c
                    }
                    return {
                        $$typeof: n,
                        type: e.type,
                        key: s,
                        ref: a,
                        props: i,
                        _owner: l
                    }
                }, t.createContext = function(e, t) {
                    return void 0 === t && (t = null), (e = {
                        $$typeof: a,
                        _calculateChangedBits: t,
                        _currentValue: e,
                        _currentValue2: e,
                        _threadCount: 0,
                        Provider: null,
                        Consumer: null
                    }).Provider = {
                        $$typeof: s,
                        _context: e
                    }, e.Consumer = e
                }, t.createElement = C, t.createFactory = function(e) {
                    var t = C.bind(null, e);
                    return t.type = e, t
                }, t.createRef = function() {
                    return {
                        current: null
                    }
                }, t.forwardRef = function(e) {
                    return {
                        $$typeof: l,
                        render: e
                    }
                }, t.isValidElement = k, t.lazy = function(e) {
                    return {
                        $$typeof: u,
                        _payload: {
                            _status: -1,
                            _result: e
                        },
                        _init: M
                    }
                }, t.memo = function(e, t) {
                    return {
                        $$typeof: c,
                        type: e,
                        compare: void 0 === t ? null : t
                    }
                },
                t.useCallback = function(e, t) {
                    return P().useCallback(e, t)
                }, t.useContext = function(e, t) {
                    return P().useContext(e, t)
                }, t.useDebugValue = function() {}, t.useEffect = function(e, t) {
                    return P().useEffect(e, t)
                }, t.useImperativeHandle = function(e, t, r) {
                    return P().useImperativeHandle(e, t, r)
                }, t.useLayoutEffect = function(e, t) {
                    return P().useLayoutEffect(e, t)
                }, t.useMemo = function(e, t) {
                    return P().useMemo(e, t)
                }, t.useReducer = function(e, t, r) {
                    return P().useReducer(e, t, r)
                }, t.useRef = function(e) {
                    return P().useRef(e)
                }, t.useState = function(e) {
                    return P().useState(e)
                }, t.version = "17.0.2"
        },
        67294: (e, t, r) => {
            "use strict";
            e.exports = r(72408)
        },
        15857: (e, t, r) => {
            "use strict";

            function o(e, t, r) {
                return t in e ? Object.defineProperty(e, t, {
                    value: r,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = r, e
            }

            function n(e, t) {
                var r = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var o = Object.getOwnPropertySymbols(e);
                    t && (o = o.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), r.push.apply(r, o)
                }
                return r
            }

            function i(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var r = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? n(Object(r), !0).forEach((function(t) {
                        o(e, t, r[t])
                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
                    }))
                }
                return e
            }

            function s(e) {
                return "Minified Redux error #" + e + "; visit https://redux.js.org/Errors?code=" + e + " for the full message or use the non-minified dev environment for full errors. "
            }
            r.d(t, {
                applyMiddleware: () => m,
                bindActionCreators: () => f,
                combineReducers: () => h,
                compose: () => g,
                createStore: () => d
            });
            var a = "function" == typeof Symbol && Symbol.observable || "@@observable",
                l = function() {
                    return Math.random().toString(36).substring(7).split("").join(".")
                },
                c = {
                    INIT: "@@redux/INIT" + l(),
                    REPLACE: "@@redux/REPLACE" + l(),
                    PROBE_UNKNOWN_ACTION: function() {
                        return "@@redux/PROBE_UNKNOWN_ACTION" + l()
                    }
                };

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

            function d(e, t, r) {
                var o;
                if ("function" == typeof t && "function" == typeof r || "function" == typeof r && "function" == typeof arguments[3]) throw new Error(s(0));
                if ("function" == typeof t && void 0 === r && (r = t, t = void 0), void 0 !== r) {
                    if ("function" != typeof r) throw new Error(s(1));
                    return r(d)(e, t)
                }
                if ("function" != typeof e) throw new Error(s(2));
                var n = e,
                    i = t,
                    l = [],
                    h = l,
                    p = !1;

                function f() {
                    h === l && (h = l.slice())
                }

                function g() {
                    if (p) throw new Error(s(3));
                    return i
                }

                function m(e) {
                    if ("function" != typeof e) throw new Error(s(4));
                    if (p) throw new Error(s(5));
                    var t = !0;
                    return f(), h.push(e),
                        function() {
                            if (t) {
                                if (p) throw new Error(s(6));
                                t = !1, f();
                                var r = h.indexOf(e);
                                h.splice(r, 1), l = null
                            }
                        }
                }

                function _(e) {
                    if (!u(e)) throw new Error(s(7));
                    if (void 0 === e.type) throw new Error(s(8));
                    if (p) throw new Error(s(9));
                    try {
                        p = !0, i = n(i, e)
                    } finally {
                        p = !1
                    }
                    for (var t = l = h, r = 0; r < t.length; r++) {
                        (0, t[r])()
                    }
                    return e
                }

                function v(e) {
                    if ("function" != typeof e) throw new Error(s(10));
                    n = e, _({
                        type: c.REPLACE
                    })
                }

                function b() {
                    var e, t = m;
                    return (e = {
                        subscribe: function(e) {
                            if ("object" != typeof e || null === e) throw new Error(s(11));

                            function r() {
                                e.next && e.next(g())
                            }
                            return r(), {
                                unsubscribe: t(r)
                            }
                        }
                    })[a] = function() {
                        return this
                    }, e
                }
                return _({
                    type: c.INIT
                }), (o = {
                    dispatch: _,
                    subscribe: m,
                    getState: g,
                    replaceReducer: v
                })[a] = b, o
            }

            function h(e) {
                for (var t = Object.keys(e), r = {}, o = 0; o < t.length; o++) {
                    var n = t[o];
                    0, "function" == typeof e[n] && (r[n] = e[n])
                }
                var i, a = Object.keys(r);
                try {
                    ! function(e) {
                        Object.keys(e).forEach((function(t) {
                            var r = e[t];
                            if (void 0 === r(void 0, {
                                    type: c.INIT
                                })) throw new Error(s(12));
                            if (void 0 === r(void 0, {
                                    type: c.PROBE_UNKNOWN_ACTION()
                                })) throw new Error(s(13))
                        }))
                    }(r)
                } catch (e) {
                    i = e
                }
                return function(e, t) {
                    if (void 0 === e && (e = {}), i) throw i;
                    for (var o = !1, n = {}, l = 0; l < a.length; l++) {
                        var c = a[l],
                            u = r[c],
                            d = e[c],
                            h = u(d, t);
                        if (void 0 === h) {
                            t && t.type;
                            throw new Error(s(14))
                        }
                        n[c] = h, o = o || h !== d
                    }
                    return (o = o || a.length !== Object.keys(e).length) ? n : e
                }
            }

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

            function f(e, t) {
                if ("function" == typeof e) return p(e, t);
                if ("object" != typeof e || null === e) throw new Error(s(16));
                var r = {};
                for (var o in e) {
                    var n = e[o];
                    "function" == typeof n && (r[o] = p(n, t))
                }
                return r
            }

            function g() {
                for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
                return 0 === t.length ? function(e) {
                    return e
                } : 1 === t.length ? t[0] : t.reduce((function(e, t) {
                    return function() {
                        return e(t.apply(void 0, arguments))
                    }
                }))
            }

            function m() {
                for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
                return function(e) {
                    return function() {
                        var r = e.apply(void 0, arguments),
                            o = function() {
                                throw new Error(s(15))
                            },
                            n = {
                                getState: r.getState,
                                dispatch: function() {
                                    return o.apply(void 0, arguments)
                                }
                            },
                            a = t.map((function(e) {
                                return e(n)
                            }));
                        return o = g.apply(void 0, a)(r.dispatch), i(i({}, r), {}, {
                            dispatch: o
                        })
                    }
                }
            }
        },
        22222: (e, t, r) => {
            "use strict";

            function o(e, t) {
                return e === t
            }

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

            function i(e) {
                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o,
                    r = null,
                    i = null;
                return function() {
                    return n(t, r, arguments) || (i = e.apply(null, arguments)), r = arguments, i
                }
            }

            function s(e) {
                var t = Array.isArray(e[0]) ? e[0] : e;
                if (!t.every((function(e) {
                        return "function" == typeof e
                    }))) {
                    var r = t.map((function(e) {
                        return typeof e
                    })).join(", ");
                    throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: [" + r + "]")
                }
                return t
            }
            r.d(t, {
                defaultMemoize: () => i,
                createSelector: () => a
            });
            var a = function(e) {
                for (var t = arguments.length, r = Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) r[o - 1] = arguments[o];
                return function() {
                    for (var t = arguments.length, o = Array(t), n = 0; n < t; n++) o[n] = arguments[n];
                    var i = 0,
                        a = o.pop(),
                        l = s(o),
                        c = e.apply(void 0, [function() {
                            return i++, a.apply(null, arguments)
                        }].concat(r)),
                        u = e((function() {
                            for (var e = [], t = l.length, r = 0; r < t; r++) e.push(l[r].apply(null, arguments));
                            return c.apply(null, e)
                        }));
                    return u.resultFunc = a, u.dependencies = l, u.recomputations = function() {
                        return i
                    }, u.resetRecomputations = function() {
                        return i = 0
                    }, u
                }
            }(i)
        },
        60053: (e, t) => {
            "use strict";
            var r, o, n, i;
            if ("object" == typeof performance && "function" == typeof performance.now) {
                var s = performance;
                t.unstable_now = function() {
                    return s.now()
                }
            } else {
                var a = Date,
                    l = a.now();
                t.unstable_now = function() {
                    return a.now() - l
                }
            }
            if ("undefined" == typeof window || "function" != typeof MessageChannel) {
                var c = null,
                    u = null,
                    d = function() {
                        if (null !== c) try {
                            var e = t.unstable_now();
                            c(!0, e), c = null
                        } catch (e) {
                            throw setTimeout(d, 0), e
                        }
                    };
                r = function(e) {
                    null !== c ? setTimeout(r, 0, e) : (c = e, setTimeout(d, 0))
                }, o = function(e, t) {
                    u = setTimeout(e, t)
                }, n = function() {
                    clearTimeout(u)
                }, t.unstable_shouldYield = function() {
                    return !1
                }, i = t.unstable_forceFrameRate = function() {}
            } else {
                var h = window.setTimeout,
                    p = window.clearTimeout;
                if ("undefined" != typeof console) {
                    var f = window.cancelAnimationFrame;
                    "function" != typeof window.requestAnimationFrame && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"), "function" != typeof f && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")
                }
                var g = !1,
                    m = null,
                    _ = -1,
                    v = 5,
                    b = 0;
                t.unstable_shouldYield = function() {
                    return t.unstable_now() >= b
                }, i = function() {}, t.unstable_forceFrameRate = function(e) {
                    0 > e || 125 < e ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : v = 0 < e ? Math.floor(1e3 / e) : 5
                };
                var y = new MessageChannel,
                    w = y.port2;
                y.port1.onmessage = function() {
                    if (null !== m) {
                        var e = t.unstable_now();
                        b = e + v;
                        try {
                            m(!0, e) ? w.postMessage(null) : (g = !1, m = null)
                        } catch (e) {
                            throw w.postMessage(null), e
                        }
                    } else g = !1
                }, r = function(e) {
                    m = e, g || (g = !0, w.postMessage(null))
                }, o = function(e, r) {
                    _ = h((function() {
                        e(t.unstable_now())
                    }), r)
                }, n = function() {
                    p(_), _ = -1
                }
            }

            function S(e, t) {
                var r = e.length;
                e.push(t);
                e: for (;;) {
                    var o = r - 1 >>> 1,
                        n = e[o];
                    if (!(void 0 !== n && 0 < E(n, t))) break e;
                    e[o] = t, e[r] = n, r = o
                }
            }

            function C(e) {
                return void 0 === (e = e[0]) ? null : e
            }

            function k(e) {
                var t = e[0];
                if (void 0 !== t) {
                    var r = e.pop();
                    if (r !== t) {
                        e[0] = r;
                        e: for (var o = 0, n = e.length; o < n;) {
                            var i = 2 * (o + 1) - 1,
                                s = e[i],
                                a = i + 1,
                                l = e[a];
                            if (void 0 !== s && 0 > E(s, r)) void 0 !== l && 0 > E(l, s) ? (e[o] = l, e[a] = r, o = a) : (e[o] = s, e[i] = r, o = i);
                            else {
                                if (!(void 0 !== l && 0 > E(l, r))) break e;
                                e[o] = l, e[a] = r, o = a
                            }
                        }
                    }
                    return t
                }
                return null
            }

            function E(e, t) {
                var r = e.sortIndex - t.sortIndex;
                return 0 !== r ? r : e.id - t.id
            }
            var x = [],
                T = [],
                A = 1,
                M = null,
                L = 3,
                P = !1,
                F = !1,
                I = !1;

            function D(e) {
                for (var t = C(T); null !== t;) {
                    if (null === t.callback) k(T);
                    else {
                        if (!(t.startTime <= e)) break;
                        k(T), t.sortIndex = t.expirationTime, S(x, t)
                    }
                    t = C(T)
                }
            }

            function O(e) {
                if (I = !1, D(e), !F)
                    if (null !== C(x)) F = !0, r(R);
                    else {
                        var t = C(T);
                        null !== t && o(O, t.startTime - e)
                    }
            }

            function R(e, r) {
                F = !1, I && (I = !1, n()), P = !0;
                var i = L;
                try {
                    for (D(r), M = C(x); null !== M && (!(M.expirationTime > r) || e && !t.unstable_shouldYield());) {
                        var s = M.callback;
                        if ("function" == typeof s) {
                            M.callback = null, L = M.priorityLevel;
                            var a = s(M.expirationTime <= r);
                            r = t.unstable_now(), "function" == typeof a ? M.callback = a : M === C(x) && k(x), D(r)
                        } else k(x);
                        M = C(x)
                    }
                    if (null !== M) var l = !0;
                    else {
                        var c = C(T);
                        null !== c && o(O, c.startTime - r), l = !1
                    }
                    return l
                } finally {
                    M = null, L = i, P = !1
                }
            }
            var B = i;
            t.unstable_IdlePriority = 5, t.unstable_ImmediatePriority = 1, t.unstable_LowPriority = 4, t.unstable_NormalPriority = 3,
                t.unstable_Profiling = null, t.unstable_UserBlockingPriority = 2, t.unstable_cancelCallback = function(e) {
                    e.callback = null
                }, t.unstable_continueExecution = function() {
                    F || P || (F = !0, r(R))
                }, t.unstable_getCurrentPriorityLevel = function() {
                    return L
                }, t.unstable_getFirstCallbackNode = function() {
                    return C(x)
                }, t.unstable_next = function(e) {
                    switch (L) {
                        case 1:
                        case 2:
                        case 3:
                            var t = 3;
                            break;
                        default:
                            t = L
                    }
                    var r = L;
                    L = t;
                    try {
                        return e()
                    } finally {
                        L = r
                    }
                }, t.unstable_pauseExecution = function() {}, t.unstable_requestPaint = B, t.unstable_runWithPriority = function(e, t) {
                    switch (e) {
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                            break;
                        default:
                            e = 3
                    }
                    var r = L;
                    L = e;
                    try {
                        return t()
                    } finally {
                        L = r
                    }
                }, t.unstable_scheduleCallback = function(e, i, s) {
                    var a = t.unstable_now();
                    switch ("object" == typeof s && null !== s ? s = "number" == typeof(s = s.delay) && 0 < s ? a + s : a : s = a, e) {
                        case 1:
                            var l = -1;
                            break;
                        case 2:
                            l = 250;
                            break;
                        case 5:
                            l = 1073741823;
                            break;
                        case 4:
                            l = 1e4;
                            break;
                        default:
                            l = 5e3
                    }
                    return e = {
                        id: A++,
                        callback: i,
                        priorityLevel: e,
                        startTime: s,
                        expirationTime: l = s + l,
                        sortIndex: -1
                    }, s > a ? (e.sortIndex = s, S(T, e), null === C(x) && e === C(T) && (I ? n() : I = !0, o(O, s - a))) : (e.sortIndex = l, S(x, e), F || P || (F = !0, r(R))), e
                }, t.unstable_wrapCallback = function(e) {
                    var t = L;
                    return function() {
                        var r = L;
                        L = t;
                        try {
                            return e.apply(this, arguments)
                        } finally {
                            L = r
                        }
                    }
                }
        },
        63840: (e, t, r) => {
            "use strict";
            e.exports = r(60053)
        },
        72916: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28"><path fill="currentColor" d="M15 5H6.5C5.67 5 5 5.67 5 6.5v15c0 .83.67 1.5 1.5 1.5h15c.83 0 1.5-.67 1.5-1.5V16h1v5.5a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 4 21.5v-15A2.5 2.5 0 0 1 6.5 4H15v1Zm7.41-.3a2 2 0 0 0-2.82 0l-.94.95-7.5 7.5-1 1-.15.14V19h4.7l.15-.15 1-1 7.5-7.5.94-.94a2 2 0 0 0 0-2.82L22.41 4.7Zm-2.12.71a1 1 0 0 1 1.42 0l1.88 1.88a1 1 0 0 1 0 1.42l-.59.58-1.65-1.64L19.71 6l.58-.59Zm.36 2.94L22.29 10l-6.79 6.8-1.65-1.65-1.64-1.65L19 6.7l1.65 1.65Zm-7.5 7.5 1.64 1.65-.5.5H11v-3.3l.5-.5 1.65 1.65Z"/></svg>'
        },
        88267: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16.5 20L11 14.5 16.5 9"/></svg>'
        },
        90584: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18" fill="none"><path stroke="currentColor" d="M8 5l3.5 3.5L8 12"/></svg>'
        },
        33828: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 15" width="22" height="15"><g fill="none" fill-rule="evenodd" stroke-width="2"><path stroke="#757575" d="M6.25 5.812L11 10.087l4.75-4.275M11 9.868V.315"/><path stroke="#ADAEB0" d="M21 10v4H1v-4"/></g></svg>'
        },
        48673: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"><g transform="translate(-8 -7)"><path fill-rule="evenodd" d="M17 11c1.38 0 2.63.56 3.54 1.46L18 15h6V9l-2.05 2.05A6.976 6.976 0 0 0 17 9c-3.53 0-6.43 2.61-6.92 6h2.02a5 5 0 0 1 4.9-4zm6.92 6H21.9a5 5 0 0 1-4.9 4c-1.38 0-2.63-.56-3.54-1.46L16 17h-6v6l2.05-2.05A6.976 6.976 0 0 0 17 23c1.55 0 2.98-.51 4.14-1.36l1.5-1.5A6.89 6.89 0 0 0 23.92 17z"/></g></svg>'
        },
        35152: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="299 131 12 7" width="12" height="7"><path fill="none" d="M300 132l5 5 5-5"/></svg>'
        },
        41142: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="14" height="14"><path d="M10.893 9.512l.458 3.624c.014.105-.006.16-.02.176-.028.03-.109.005-.182-.03L7.812 11.73a1.973 1.973 0 0 0-.811-.16c-.302 0-.59.057-.81.16l-3.338 1.552c-.118.056-.164.051-.182.03-.014-.016-.034-.07-.02-.178L3.11 9.51c.06-.503-.162-1.18-.505-1.54L.087 5.302c-.085-.091-.09-.148-.086-.158.003-.01.04-.053.16-.077l3.621-.689c.491-.09 1.069-.506 1.315-.948L7.004 0l1.902 3.43c.246.442.824.859 1.312.947l3.617.69c.123.024.162.068.164.077.003.01-.003.066-.089.157L11.4 7.97c-.348.367-.57 1.045-.506 1.543z"/></svg>'
        },
        78044: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="14" height="14"><path d="M9.901 9.639c-.102-.797.218-1.775.77-2.356l1.438-1.527-2.07-.395c-.784-.142-1.615-.742-2.008-1.446L7.003 2.06 5.97 3.917c-.391.702-1.222 1.301-2 1.443l-2.08.396 1.44 1.526c.547.577.866 1.549.77 2.353l-.262 2.086 1.93-.897a2.95 2.95 0 0 1 1.233-.254c.44 0 .87.085 1.233.254l1.93.897-.263-2.082zm.992-.127l.458 3.624c.014.105-.006.16-.02.176-.028.03-.109.005-.182-.03L7.812 11.73a1.973 1.973 0 0 0-.811-.16c-.302 0-.59.057-.81.16l-3.338 1.552c-.118.056-.164.051-.182.03-.014-.016-.034-.07-.02-.178L3.11 9.51c.06-.503-.162-1.18-.505-1.54L.087 5.302c-.085-.091-.09-.148-.086-.158.003-.01.04-.053.16-.077l3.621-.689c.491-.09 1.069-.506 1.315-.948L7.004 0l1.902 3.43c.246.442.824.859 1.312.947l3.617.69c.123.024.162.068.164.077.003.01-.003.066-.089.157L11.4 7.97c-.348.367-.57 1.045-.506 1.543z"/></svg>'
        },
        15045: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M7 15l5 5L23 9"/></svg>'
        },
        53985: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"><g fill="none" fill-rule="evenodd"><path d="M9.5 8.5c1.105 0 2-.395 2-1.5s-.895-1.5-2-1.5h-3v3h3zm.5 4c1.38 0 2.5-.62 2.5-2s-1.12-2-2.5-2H6.5v4H10z"/><path stroke-linecap="square" d="M9.5 3.5V5m0 8v1.5m-2-1.5v1.5m-2-2H6m-.5-7H6m1.5-2V5"/><circle cx="9" cy="9" r="8.5"/></g></svg>'
        },
        14269: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11 9" width="11px" height="9px"><path fill="none" fill-rule="evenodd" stroke-width="2" d="M1 3.22l3.415 3.496L10 1"/></svg>'
        },
        49939: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 9" width="6" height="9"><path fill="none" stroke="currentColor" d="M1 1l3.5 3.5L1 8"/></svg>'
        },
        99926: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><path d="M0 46l35-35 14 14-35 35H0zM39 7l6-6c5-5 19 9 14 14l-6 6z"/></svg>'
        },
        44050: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="100%" height="100%"><g fill="none" fill-rule="evenodd" stroke="currentColor"><circle cx="9" cy="9" r="8.5"/><path stroke-linecap="square" d="M5.5 13.5v-9h4m-2 4H6m3.5 1l3 4m0-4l-3 4"/></g></svg>'
        },
        95777: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18" fill="none"><path stroke="currentColor" d="M2.5 14.5c1.68-1.26 3.7-2 6.5-2s4.91.74 6.5 2m-13-11c1.68 1.26 3.7 2 6.5 2s4.91-.74 6.5-2"/><circle stroke="currentColor" cx="9" cy="9" r="8.5"/><path stroke="currentColor" d="M13.5 9c0 2.42-.55 4.58-1.4 6.12-.87 1.56-1.98 2.38-3.1 2.38s-2.23-.82-3.1-2.38c-.85-1.54-1.4-3.7-1.4-6.12s.55-4.58 1.4-6.12C6.77 1.32 7.88.5 9 .5s2.23.82 3.1 2.38c.85 1.54 1.4 3.7 1.4 6.12z"/></svg>'
        },
        12311: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" width="14" height="12"><g fill="none" fill-rule="evenodd" stroke="#9DB2BD"><path d="M1 0l12 12M13 0L1 12"/></g></svg>'
        },
        1825: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" width="20" height="21"><path d="M12.29.93l-1.024 1.215 3.654 3.068 1.023-1.217L12.29.93zM3.71.932L.058 3.99 1.08 5.205l3.647-3.06L3.71.933zM8 2.632A7.15 7.15 0 0 0 8 16.93c.32 0 .634-.028.943-.07v-1.604a5.58 5.58 0 0 1-.943.086A5.558 5.558 0 0 1 2.44 9.78 5.557 5.557 0 0 1 8 4.22a5.557 5.557 0 0 1 5.56 5.56c0 .05-.006.1-.007.15h1.59c0-.05.007-.1.007-.15A7.15 7.15 0 0 0 8 2.63zm-.795 3.177v4.764l3.774 2.266.594-.98-3.178-1.88V5.81h-1.19zM13.944 11.93v7h1v-7h-1zm4 3h-7v1h7v-1z"/></svg>'
        },
        81283: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 17" width="16" height="17"><path d="M15.944 3.997L12.29.93l-1.025 1.215 3.654 3.067 1.024-1.215zM4.727 2.147L3.71.93.056 3.99 1.08 5.205l3.647-3.06zm3.67 3.66H7.205v4.768l3.774 2.264.595-.978L8.397 9.98V5.807zM8 2.63a7.15 7.15 0 0 0 0 14.3 7.15 7.15 0 0 0 0-14.3zm0 12.71a5.557 5.557 0 0 1-5.56-5.56A5.557 5.557 0 0 1 8 4.22a5.557 5.557 0 0 1 5.56 5.56A5.557 5.557 0 0 1 8 15.34z"/></svg>'
        },
        70164: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18" fill="none"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.7 9l4.65-4.65-.7-.7L9 8.29 4.35 3.65l-.7.7L8.29 9l-4.64 4.65.7.7L9 9.71l4.65 4.64.7-.7L9.71 9z"/></svg>'
        },
        23651: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 22" width="19" height="22" fill="none"><path fill="currentColor" fill-rule="evenodd" d="M5 1v9.13a4 4 0 0 1 0 7.75V21a1 1 0 1 1-2 0v-3-.12a4 4 0 0 1 0-7.75V1a1 1 0 0 1 2 0zM2 14a2 2 0 1 1 4 0 2 2 0 0 1-4 0zm12-9.88V1a1 1 0 1 1 2 0v3.12a4 4 0 0 1 0 7.75V21a1 1 0 1 1-2 0v-9.13a4 4 0 0 1 0-7.75zM15 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></svg>'
        },
        50310: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" d="M8.36 3.608a6.002 6.002 0 1 0 2.755 11.672 6.01 6.01 0 0 0 4.277-4.64 5 5 0 1 1-7.03-7.03z"/></svg>'
        },
        13387: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="currentColor" d="M4 8a4 4 0 1 0 8 0 4 4 0 1 0-8 0"/></svg>'
        },
        25357: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M0 8a8 8 0 1 0 16 0A8 8 0 1 0 0 8zm2 0a6 6 0 1 0 12 0A6 6 0 1 0 2 8zm2 0a4 4 0 1 0 8 0 4 4 0 1 0-8 0"/></svg>'
        },
        67415: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><g fill="none" stroke="currentColor" stroke-width="2" transform="translate(1 1)"><circle cx="6" cy="6" r="6"/><path d="M10 10l4 4"/></g></svg>'
        },
        83407: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="5 6 21 21" width="16px" height="15px"><path d="M15.5 27c1.2 0 2.2-.9 2.4-2H13c.3 1.1 1.3 2 2.5 2zm6.5-7v-6c-.2-2.9-2.3-5.3-5.1-5.9 0-.2.1-.4.1-.6 0-.8-.7-1.5-1.5-1.5S14 6.7 14 7.5c0 .2.1.4.2.6-2.8.6-4.9 3-5.1 5.9v5.9C9 22.7 7 23 7 23v1h17v-1s-2-.3-2-3z"/></svg>'
        },
        68979: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 121" width="120" height="121" fill="none"><g clip-path="url(#afzoeckcd)"><path fill="#2A2E39" fill-rule="evenodd" clip-rule="evenodd" d="M26.01 81.72c10.54 13.42 34.92 11.87 54.46-3.47 19.55-15.34 26.85-38.66 16.31-52.08-10.54-13.42-34.92-11.87-54.46 3.47-9.2 7.22-15.68 16.2-18.87 25.09-.68 1.89-2.57 3.06-4.53 3.48a9.7 9.7 0 0 0-3.96 1.86C10.5 63.57 9.91 70.26 13.64 75a11.24 11.24 0 0 0 7.82 4.31 6.2 6.2 0 0 1 4.55 2.4z"/><path fill="#1848CC" fill-rule="evenodd" clip-rule="evenodd" d="M38.3 46.18c1.8 3.43 12.08 10.65 25.62 16.89 6.36 2.93 12.38 5.3 17.37 6.92a172.71 172.71 0 0 0-18-12.68C48.7 48.2 38.32 44.9 38.32 44.9c-.18.3-.19.72-.01 1.27z"/><path stroke="#B2B5BE" stroke-width="1.5" d="M96.25 82.01c-.19.3-.54.55-1.17.7a7.8 7.8 0 0 1-2.56.08c-2.14-.22-5-1-8.4-2.28-6.78-2.57-15.53-7.12-24.64-13.05-9.12-5.94-16.82-12.1-21.92-17.26-2.55-2.58-4.41-4.89-5.48-6.76a7.8 7.8 0 0 1-.96-2.37c-.12-.64-.03-1.06.16-1.35.2-.29.54-.54 1.17-.7a7.79 7.79 0 0 1 2.56-.08c2.14.22 5 1 8.4 2.28 6.78 2.57 15.53 7.13 24.64 13.06 9.12 5.93 16.82 12.1 21.92 17.25 2.55 2.59 4.42 4.89 5.48 6.76.54.94.85 1.73.96 2.37.12.64.03 1.06-.16 1.35z"/><path stroke="#B2B5BE" stroke-linecap="round" stroke-width="1.5" d="M38.96 45.25c1.99.57 4.47 1.55 7.3 2.86l12.2 6.52c2.16 1.3 4.4 2.68 6.66 4.16 10.56 6.87 19.12 13.85 22.97 18.44"/><path stroke="#B2B5BE" stroke-width="1.5" d="M93.79 76.21c6.77-14.14 1.41-32-13.05-41.42-14.46-9.41-32.96-7.09-43.15 4.83M84.96 31.87a6.08 6.08 0 0 1-2.58 2.29c-.9.39-1.69.35-2.23 0s-.9-1.05-.9-2.04a6.08 6.08 0 0 1 1.05-3.28 6.08 6.08 0 0 1 2.58-2.3c.9-.39 1.69-.35 2.23 0 .54.36.9 1.05.9 2.04.01.99-.32 2.17-1.05 3.29z"/><path stroke="#B2B5BE" stroke-linecap="round" stroke-width="1.5" d="M52.7 34.25c1.25-.31 4.56-1.32 8.92-1.3M90.14 94.7c-3.64-.05-15.75-.08-30.14-.08s-26.5.03-30.14.08M34.7 69.95l5.77 5.33M42.05 66.68l.84 3.27"/></g><defs><clipPath id="afzoeckcd"><path fill="#fff" d="M10 10.62h100v100H10v-100z"/></clipPath></defs></svg>'
        },
        41656: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 121" width="120" height="121" fill="none"><path fill="#F0F3FA" fill-rule="evenodd" clip-rule="evenodd" d="M26.01 81.72c10.54 13.42 34.92 11.87 54.46-3.47 19.55-15.34 26.85-38.66 16.31-52.08-10.54-13.42-34.92-11.87-54.46 3.47-9.2 7.22-15.68 16.2-18.87 25.09-.68 1.89-2.57 3.06-4.53 3.48a9.7 9.7 0 0 0-3.96 1.86C10.5 63.57 9.91 70.26 13.64 75a11.24 11.24 0 0 0 7.82 4.31 6.2 6.2 0 0 1 4.55 2.4z"/><path fill="url(#as2qxyr1y)" fill-rule="evenodd" clip-rule="evenodd" d="M38.3 46.18c1.8 3.43 12.08 10.65 25.62 16.89 6.36 2.93 12.38 5.3 17.37 6.92a172.7 172.7 0 0 0-18-12.68C48.7 48.2 38.32 44.9 38.32 44.9c-.18.3-.19.72-.01 1.27z"/><path stroke="#1E222D" stroke-width="1.5" d="M96.25 82.01c-.19.3-.54.55-1.17.7a7.8 7.8 0 0 1-2.56.08c-2.14-.22-5-1-8.4-2.28-6.78-2.57-15.53-7.12-24.64-13.05-9.12-5.94-16.82-12.1-21.92-17.26-2.55-2.58-4.41-4.89-5.48-6.76a7.8 7.8 0 0 1-.96-2.37c-.12-.64-.03-1.06.16-1.35.2-.29.54-.54 1.17-.7a7.79 7.79 0 0 1 2.56-.08c2.14.22 5 1 8.4 2.28 6.78 2.57 15.53 7.13 24.64 13.06 9.12 5.93 16.82 12.1 21.92 17.25 2.55 2.59 4.42 4.89 5.48 6.76.54.94.85 1.73.96 2.37.12.64.03 1.06-.16 1.35z"/><path stroke="#1E222D" stroke-linecap="round" stroke-width="1.5" d="M38.96 45.25c1.99.57 4.47 1.55 7.3 2.86l12.2 6.52c2.16 1.3 4.4 2.68 6.66 4.16 10.56 6.87 19.12 13.85 22.97 18.44"/><path stroke="#1E222D" stroke-width="1.5" d="M93.79 76.21c6.77-14.14 1.41-32-13.05-41.42-14.46-9.41-32.96-7.09-43.15 4.83M84.96 31.87a6.08 6.08 0 0 1-2.58 2.29c-.9.39-1.69.35-2.23 0s-.9-1.05-.9-2.04a6.08 6.08 0 0 1 1.05-3.28 6.08 6.08 0 0 1 2.58-2.3c.9-.39 1.69-.35 2.23 0 .54.36.9 1.05.9 2.04.01.99-.32 2.17-1.05 3.29z"/><path stroke="#1E222D" stroke-linecap="round" stroke-width="1.5" d="M52.7 34.25c1.25-.31 4.56-1.32 8.92-1.3M90.14 94.7c-3.64-.05-15.75-.08-30.14-.08s-26.5.03-30.14.08M34.7 69.95l5.77 5.33M42.05 66.68l.84 3.27"/><defs><linearGradient gradientUnits="userSpaceOnUse" x1="59.73" x2="59.73" y1="44.91" y2="69.99" id="as2qxyr1y"><stop stop-color="#2962FF"/><stop offset="1" stop-color="#2962FF"/></linearGradient></defs></svg>'
        },
        80096: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"><path d="M3.06 6.295C2.37 7.397 2 8.67 2 10c0 3.866 3.134 7 7 7s7-3.134 7-7-3.134-7-7-7V2c4.418 0 8 3.582 8 8s-3.582 8-8 8-8-3.582-8-8c0-1.556.444-3.007 1.212-4.236l.848.53zm0 0C2.37 7.397 2 8.67 2 10c0 3.866 3.134 7 7 7s7-3.134 7-7-3.134-7-7-7V2c4.418 0 8 3.582 8 8s-3.582 8-8 8-8-3.582-8-8c0-1.556.444-3.007 1.212-4.236l.848.53zM6 2.5L9 0v5L6 2.5z"/></svg>'
        },
        68258: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" d="M3.5 10.5h2v5h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M4.5 8.5v2m0 5v2"/><path fill="currentColor" d="M14 8h3v6h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M15.5 6.5v9m-7-11h4m-2-2v4"/></g></svg>'
        },
        14477: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" d="M14.5 4.5h2v6h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M15.5 2.5v2m0 6v2"/><path fill="currentColor" d="M3 4h3v6H3z"/><path stroke="currentColor" stroke-linecap="square" d="M4.5 2.5v9m4 4h4m-2-2v4"/></g></svg>'
        },
        88923: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="square" d="M14.5 10.5v7m-1-7h2m-5 1v-4m-3 2v-4m-3 2v-4"/></svg>'
        },
        54769: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="square" d="M14.5 2.5v7m-1 0h2m-5 2v-4m-3 7v-4m-3 6v-4"/></svg>'
        },
        194: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="square" d="M10.5 6.5v7m-2-4h4"/></svg>'
        },
        79776: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M15 4h3v12h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M16.5 17.5v-15"/><path stroke="currentColor" d="M10.5 7.5h2v4h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 5.5v2m0 4v2m-4 2v-4m-3 5v-4m-3 5v-4"/></g></svg>'
        },
        90983: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M9 8h3v6H9z"/><path stroke="currentColor" stroke-linecap="square" d="M10.5 6.5v9"/><path stroke="currentColor" d="M14.5 4.5h2v11h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M15.5 2.5v2m-9 4v-4m-3 3v-4m12 12v2"/></g></svg>'
        },
        79799: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" d="M6.5 6.5h2v5h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M7.5 4.5v2m0 5v2"/><path fill="currentColor" d="M16 5h3v6h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M17.5 3.5v9"/><path fill="currentColor" d="M11 3h3v2h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M12.5 2.5v3m-8 11v-4m-2 6v-4"/></g></svg>'
        },
        73345: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M11.5 9.5v8m-4-8v-4m8 4v-4m-11 2v-4"/><path fill="currentColor" d="M10 9h3v4h-3z"/></g></svg>'
        },
        5066: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M11.5 4.5v10m-4-3v-4m-3 7v-4"/><path fill="currentColor" d="M10 4h3v3h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M15.5 11.5v-4"/></g></svg>'
        },
        59647: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" d="M10.5 5.5h2v7h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 3.5v2m0 7v2"/><path fill="currentColor" d="M15 5h3v3h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M16.5 3.5v6.07m-9 3.93v-4m-3 6v-4m-3 6v-4"/></g></svg>'
        },
        53568: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M10 7h3v8h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 5.5v11"/><path stroke="currentColor" d="M15.5 7.5h2v3h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M16.5 5.5v2m0 3v2m-9-2v-4m-3 2v-4m-3 2v-4"/></g></svg>'
        },
        9008: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd" stroke="currentColor"><path stroke-linecap="square" d="M11.5 6.5v7m-4 0v-4m8 4v-4m-11 2v-4"/><path d="M10.5 13.5h2v3h-2z"/></g></svg>'
        },
        93152: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M15 9h3v4h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 9.5v-2m0-5v2m5 3v7m0-5v2"/><path stroke="currentColor" d="M10.5 4.5h2v3h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M7.5 13.5v-2m0-5v2"/><path stroke="currentColor" d="M6.5 8.5h2v3h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M3.5 17.5v-2m0-5v2"/><path stroke="currentColor" d="M2.5 12.5h2v3h-2z"/></g></svg>'
        },
        35923: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M15 7h3v4h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 17.5v-2m0-5v2m5-7v7m0-3v2"/><path stroke="currentColor" d="M10.5 12.5h2v3h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M7.5 13.5v-2m0-5v2"/><path stroke="currentColor" d="M6.5 8.5h2v3h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M3.5 9.5v-2m0-5v2"/><path stroke="currentColor" d="M2.5 4.5h2v3h-2z"/></g></svg>'
        },
        95931: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M9.5 9.5v8m-4-9v-4m-3 2v-4"/><path fill="currentColor" d="M8 7h3v5H8z"/><path stroke="currentColor" stroke-linecap="square" d="M14.5 11.5v4"/><path stroke="currentColor" d="M13.5 7.5h2v4h-2z"/></g></svg>'
        },
        2843: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M9.5 11.5v2m-4 2v-4m-3 6v-4"/><path stroke="currentColor" d="M8.5 7.5h2v4h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M14.5 2.5v5"/><path fill="currentColor" d="M13 7h3v5h-3z"/></g></svg>'
        },
        77719: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M13 4h3v12h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M10.5 11.5v-4m-3 2v-4m-3 2v-4"/></g></svg>'
        },
        54587: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd" stroke="currentColor"><path d="M13.5 4.5h2v11h-2z"/><path stroke-linecap="square" d="M10.5 12.5v-4m-3 6v-4m-3 6v-4"/></g></svg>'
        },
        37775: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M4.5 2.5v11"/><path fill="currentColor" d="M3 4h3v8H3z"/><path stroke="currentColor" stroke-linecap="square" d="M14.5 4.5v2m0 7v2"/><path stroke="currentColor" d="M13.5 6.5h2v7h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M9.5 12.5v5"/><path fill="currentColor" d="M8 14h3v2H8z"/></g></svg>'
        },
        25346: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd" stroke="currentColor"><path d="M10.5 9.5h2v3h-2z"/><path stroke-linecap="square" d="M11.5 8.5v-6m-4 13v-4m8 4v-4m-11 6v-4"/></g></svg>'
        },
        1166: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-linecap="square" d="M10.5 3.5v13"/><path fill="currentColor" d="M9 8h3v4H9z"/></g></svg>'
        },
        51572: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd" stroke="currentColor"><path stroke-linecap="square" d="M10.5 3.5v5m0 3v5"/><path d="M9.5 8.5h2v3h-2z"/></g></svg>'
        },
        84613: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M15 12h3v4h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M16.5 10.5v7"/><path fill="currentColor" d="M11 8h3v4h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M12.5 6.5v7"/><path fill="currentColor" d="M7 4h3v4H7z"/><path stroke="currentColor" stroke-linecap="square" d="M8.5 2.5v7m-4 1v-4m-2 6v-4"/></g></svg>'
        },
        85233: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd"><path fill="currentColor" d="M15 4h3v2h-3z"/><path stroke="currentColor" stroke-linecap="square" d="M11.5 11.5v-2m0-7v2m5-2v5"/><path stroke="currentColor" d="M10.5 4.5h2v5h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M7.5 14.5v-2m0-7v2"/><path stroke="currentColor" d="M6.5 7.5h2v5h-2z"/><path stroke="currentColor" stroke-linecap="square" d="M3.5 17.5v-2m0-7v2"/><path stroke="currentColor" d="M2.5 10.5h2v5h-2z"/></g></svg>'
        },
        50661: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="square" d="M14.5 8.5h4m-2-2v4m-7-6h4m-2-2v4m-6 2h4m-2-2v4m-3 5v-4m-2 6v-4"/></svg>'
        },
        24273: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="square" d="M14.5 11.5h4m-2-2v4m-7 2h4m-2-2v4m-6-6h4m-2-2v4m-3-5v-4m-2 2v-4"/></svg>'
        },
        59844: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" width="14" height="12" fill="none"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M2.71 1.29H1.3v9.42H2.7V1.3zM1.3 0C.58 0 0 .58 0 1.29v9.42C0 11.42.58 12 1.29 12H2.7C3.42 12 4 11.42 4 10.71V1.3C4 .58 3.42 0 2.71 0H1.3zM7.7 1.29H6.3v9.42H7.7V1.3zM6.3 0C5.58 0 5 .58 5 1.29v9.42c0 .71.58 1.29 1.29 1.29H7.7C8.42 12 9 11.42 9 10.71V1.3C9 .58 8.42 0 7.71 0H6.3zm5 1.29h1.42v9.42H11.3V1.3zm-1.29 0C10 .58 10.58 0 11.29 0h1.42C13.42 0 14 .58 14 1.29v9.42c0 .71-.58 1.29-1.29 1.29H11.3c-.71 0-1.29-.58-1.29-1.29V1.3z"/></svg>'
        },
        15665: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 14" width="16" height="14"><g fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 9v4H1V9M8 9V0"/><path d="M5 6l3 3 3-3"/></g></svg>'
        },
        26469: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"><path fill="#ADAEB0" fill-rule="evenodd" d="M12.5 11h-.79l-.28-.27A6.47 6.47 0 0 0 13 6.5 6.5 6.5 0 1 0 6.5 13c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L17.49 16l-4.99-5zm-6 0C4.01 11 2 8.99 2 6.5S4.01 2 6.5 2 11 4.01 11 6.5 8.99 11 6.5 11z"/></svg>'
        },
        3558: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><g fill="none" stroke="#758696" stroke-width="2"><path d="M1.125 9.11L9.13 1.104M1.125 1.105L9.13 9.11"/></g></svg>'
        },
        31780: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 3" width="8" height="3"><path d="M0 0 L4 3 L8 0 Z"/></svg>'
        },
        54179: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 3" width="8" height="3"><path d="M0 3 L4 0 L8 3 Z"/></svg>'
        },
        98610: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="8.5" cy="8.5" r="3"/><path stroke-linecap="square" d="M13.5 8.5h3M.5 8.5h3M8.5 3.5v-3M13 4l2-2M2 15l2-2"/><path stroke-linecap="square" stroke-linejoin="bevel" d="M2 2l2 2"/><path stroke-linecap="square" d="M13 13l2 2M8.5 16.5v-3"/></g></svg>'
        },
        17847: e => {
            e.exports = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 26" width="3" height="13" fill="currentColor"><circle cx="3" cy="3" r="3"/><circle cx="3" cy="13" r="3"/><circle cx="3" cy="23" r="3"/></svg>'
        },
        13469: function(e, t) {
            var r;
            (function() {
                var o = this,
                    n = o._,
                    i = Array.prototype,
                    s = Object.prototype,
                    a = Function.prototype,
                    l = i.push,
                    c = i.slice,
                    u = s.toString,
                    d = s.hasOwnProperty,
                    h = Array.isArray,
                    p = Object.keys,
                    f = a.bind,
                    g = Object.create,
                    m = function() {},
                    _ = function(e) {
                        return e instanceof _ ? e : this instanceof _ ? void(this._wrapped = e) : new _(e)
                    };
                e.exports && (t = e.exports = _), t._ = _, _.VERSION = "1.8.3";
                var v = function(e, t, r) {
                        if (void 0 === t) return e;
                        switch (null == r ? 3 : r) {
                            case 1:
                                return function(r) {
                                    return e.call(t, r)
                                };
                            case 2:
                                return function(r, o) {
                                    return e.call(t, r, o)
                                };
                            case 3:
                                return function(r, o, n) {
                                    return e.call(t, r, o, n)
                                };
                            case 4:
                                return function(r, o, n, i) {
                                    return e.call(t, r, o, n, i)
                                }
                        }
                        return function() {
                            return e.apply(t, arguments)
                        }
                    },
                    b = function(e, t, r) {
                        return null == e ? _.identity : _.isFunction(e) ? v(e, t, r) : _.isObject(e) ? _.matcher(e) : _.property(e)
                    };
                _.iteratee = function(e, t) {
                    return b(e, t, 1 / 0)
                };
                var y = function(e, t) {
                        return function(r) {
                            var o = arguments.length;
                            if (o < 2 || null == r) return r;
                            for (var n = 1; n < o; n++)
                                for (var i = arguments[n], s = e(i), a = s.length, l = 0; l < a; l++) {
                                    var c = s[l];
                                    t && void 0 !== r[c] || (r[c] = i[c])
                                }
                            return r
                        }
                    },
                    w = function(e) {
                        if (!_.isObject(e)) return {};
                        if (g) return g(e);
                        m.prototype = e;
                        var t = new m;
                        return m.prototype = null, t
                    },
                    S = function(e) {
                        return function(t) {
                            return null == t ? void 0 : t[e]
                        }
                    },
                    C = Math.pow(2, 53) - 1,
                    k = S("length"),
                    E = function(e) {
                        var t = k(e);
                        return "number" == typeof t && t >= 0 && t <= C
                    };

                function x(e) {
                    function t(t, r, o, n, i, s) {
                        for (; i >= 0 && i < s; i += e) {
                            var a = n ? n[i] : i;
                            o = r(o, t[a], a, t)
                        }
                        return o
                    }
                    return function(r, o, n, i) {
                        o = v(o, i, 4);
                        var s = !E(r) && _.keys(r),
                            a = (s || r).length,
                            l = e > 0 ? 0 : a - 1;
                        return arguments.length < 3 && (n = r[s ? s[l] : l], l += e), t(r, o, n, s, l, a)
                    }
                }
                _.each = _.forEach = function(e, t, r) {
                    var o, n;
                    if (t = v(t, r), E(e))
                        for (o = 0, n = e.length; o < n; o++) t(e[o], o, e);
                    else {
                        var i = _.keys(e);
                        for (o = 0, n = i.length; o < n; o++) t(e[i[o]], i[o], e)
                    }
                    return e
                }, _.map = _.collect = function(e, t, r) {
                    t = b(t, r);
                    for (var o = !E(e) && _.keys(e), n = (o || e).length, i = Array(n), s = 0; s < n; s++) {
                        var a = o ? o[s] : s;
                        i[s] = t(e[a], a, e)
                    }
                    return i
                }, _.reduce = _.foldl = _.inject = x(1), _.reduceRight = _.foldr = x(-1), _.find = _.detect = function(e, t, r) {
                    var o;
                    if (void 0 !== (o = E(e) ? _.findIndex(e, t, r) : _.findKey(e, t, r)) && -1 !== o) return e[o]
                }, _.filter = _.select = function(e, t, r) {
                    var o = [];
                    return t = b(t, r), _.each(e, (function(e, r, n) {
                        t(e, r, n) && o.push(e)
                    })), o
                }, _.reject = function(e, t, r) {
                    return _.filter(e, _.negate(b(t)), r)
                }, _.every = _.all = function(e, t, r) {
                    t = b(t, r);
                    for (var o = !E(e) && _.keys(e), n = (o || e).length, i = 0; i < n; i++) {
                        var s = o ? o[i] : i;
                        if (!t(e[s], s, e)) return !1
                    }
                    return !0
                }, _.some = _.any = function(e, t, r) {
                    t = b(t, r);
                    for (var o = !E(e) && _.keys(e), n = (o || e).length, i = 0; i < n; i++) {
                        var s = o ? o[i] : i;
                        if (t(e[s], s, e)) return !0
                    }
                    return !1
                }, _.contains = _.includes = _.include = function(e, t, r, o) {
                    return E(e) || (e = _.values(e)), ("number" != typeof r || o) && (r = 0), _.indexOf(e, t, r) >= 0
                }, _.invoke = function(e, t) {
                    var r = c.call(arguments, 2),
                        o = _.isFunction(t);
                    return _.map(e, (function(e) {
                        var n = o ? t : e[t];
                        return null == n ? n : n.apply(e, r)
                    }))
                }, _.pluck = function(e, t) {
                    return _.map(e, _.property(t))
                }, _.where = function(e, t) {
                    return _.filter(e, _.matcher(t))
                }, _.findWhere = function(e, t) {
                    return _.find(e, _.matcher(t))
                }, _.max = function(e, t, r) {
                    var o, n, i = -1 / 0,
                        s = -1 / 0;
                    if (null == t && null != e)
                        for (var a = 0, l = (e = E(e) ? e : _.values(e)).length; a < l; a++)(o = e[a]) > i && (i = o);
                    else t = b(t, r), _.each(e, (function(e, r, o) {
                        ((n = t(e, r, o)) > s || n === -1 / 0 && i === -1 / 0) && (i = e, s = n)
                    }));
                    return i
                }, _.min = function(e, t, r) {
                    var o, n, i = 1 / 0,
                        s = 1 / 0;
                    if (null == t && null != e)
                        for (var a = 0, l = (e = E(e) ? e : _.values(e)).length; a < l; a++)(o = e[a]) < i && (i = o);
                    else t = b(t, r), _.each(e, (function(e, r, o) {
                        ((n = t(e, r, o)) < s || n === 1 / 0 && i === 1 / 0) && (i = e, s = n)
                    }));
                    return i
                }, _.shuffle = function(e) {
                    for (var t, r = E(e) ? e : _.values(e), o = r.length, n = Array(o), i = 0; i < o; i++)(t = _.random(0, i)) !== i && (n[i] = n[t]), n[t] = r[i];
                    return n
                }, _.sample = function(e, t, r) {
                    return null == t || r ? (E(e) || (e = _.values(e)), e[_.random(e.length - 1)]) : _.shuffle(e).slice(0, Math.max(0, t))
                }, _.sortBy = function(e, t, r) {
                    return t = b(t, r), _.pluck(_.map(e, (function(e, r, o) {
                        return {
                            value: e,
                            index: r,
                            criteria: t(e, r, o)
                        }
                    })).sort((function(e, t) {
                        var r = e.criteria,
                            o = t.criteria;
                        if (r !== o) {
                            if (r > o || void 0 === r) return 1;
                            if (r < o || void 0 === o) return -1
                        }
                        return e.index - t.index
                    })), "value")
                };
                var T = function(e) {
                    return function(t, r, o) {
                        var n = {};
                        return r = b(r, o), _.each(t, (function(o, i) {
                            var s = r(o, i, t);
                            e(n, o, s)
                        })), n
                    }
                };
                _.groupBy = T((function(e, t, r) {
                    _.has(e, r) ? e[r].push(t) : e[r] = [t]
                })), _.indexBy = T((function(e, t, r) {
                    e[r] = t
                })), _.countBy = T((function(e, t, r) {
                    _.has(e, r) ? e[r]++ : e[r] = 1
                })), _.toArray = function(e) {
                    return e ? _.isArray(e) ? c.call(e) : E(e) ? _.map(e, _.identity) : _.values(e) : []
                }, _.size = function(e) {
                    return null == e ? 0 : E(e) ? e.length : _.keys(e).length
                }, _.partition = function(e, t, r) {
                    t = b(t, r);
                    var o = [],
                        n = [];
                    return _.each(e, (function(e, r, i) {
                        (t(e, r, i) ? o : n).push(e)
                    })), [o, n]
                }, _.first = _.head = _.take = function(e, t, r) {
                    if (null != e) return null == t || r ? e[0] : _.initial(e, e.length - t)
                }, _.initial = function(e, t, r) {
                    return c.call(e, 0, Math.max(0, e.length - (null == t || r ? 1 : t)))
                }, _.last = function(e, t, r) {
                    if (null != e) return null == t || r ? e[e.length - 1] : _.rest(e, Math.max(0, e.length - t))
                }, _.rest = _.tail = _.drop = function(e, t, r) {
                    return c.call(e, null == t || r ? 1 : t)
                }, _.compact = function(e) {
                    return _.filter(e, _.identity)
                };
                var A = function(e, t, r, o) {
                    for (var n = [], i = 0, s = o || 0, a = k(e); s < a; s++) {
                        var l = e[s];
                        if (E(l) && (_.isArray(l) || _.isArguments(l))) {
                            t || (l = A(l, t, r));
                            var c = 0,
                                u = l.length;
                            for (n.length += u; c < u;) n[i++] = l[c++]
                        } else r || (n[i++] = l)
                    }
                    return n
                };

                function M(e) {
                    return function(t, r, o) {
                        r = b(r, o);
                        for (var n = k(t), i = e > 0 ? 0 : n - 1; i >= 0 && i < n; i += e)
                            if (r(t[i], i, t)) return i;
                        return -1
                    }
                }

                function L(e, t, r) {
                    return function(o, n, i) {
                        var s = 0,
                            a = k(o);
                        if ("number" == typeof i) e > 0 ? s = i >= 0 ? i : Math.max(i + a, s) : a = i >= 0 ? Math.min(i + 1, a) : i + a + 1;
                        else if (r && i && a) return o[i = r(o, n)] === n ? i : -1;
                        if (n != n) return (i = t(c.call(o, s, a), _.isNaN)) >= 0 ? i + s : -1;
                        for (i = e > 0 ? s : a - 1; i >= 0 && i < a; i += e)
                            if (o[i] === n) return i;
                        return -1
                    }
                }
                _.flatten = function(e, t) {
                    return A(e, t, !1)
                }, _.without = function(e) {
                    return _.difference(e, c.call(arguments, 1))
                }, _.uniq = _.unique = function(e, t, r, o) {
                    _.isBoolean(t) || (o = r, r = t, t = !1), null != r && (r = b(r, o));
                    for (var n = [], i = [], s = 0, a = k(e); s < a; s++) {
                        var l = e[s],
                            c = r ? r(l, s, e) : l;
                        t ? (s && i === c || n.push(l), i = c) : r ? _.contains(i, c) || (i.push(c), n.push(l)) : _.contains(n, l) || n.push(l)
                    }
                    return n
                }, _.union = function() {
                    return _.uniq(A(arguments, !0, !0))
                }, _.intersection = function(e) {
                    for (var t = [], r = arguments.length, o = 0, n = k(e); o < n; o++) {
                        var i = e[o];
                        if (!_.contains(t, i)) {
                            for (var s = 1; s < r && _.contains(arguments[s], i); s++);
                            s === r && t.push(i)
                        }
                    }
                    return t
                }, _.difference = function(e) {
                    var t = A(arguments, !0, !0, 1);
                    return _.filter(e, (function(e) {
                        return !_.contains(t, e)
                    }))
                }, _.zip = function() {
                    return _.unzip(arguments)
                }, _.unzip = function(e) {
                    for (var t = e && _.max(e, k).length || 0, r = Array(t), o = 0; o < t; o++) r[o] = _.pluck(e, o);
                    return r
                }, _.object = function(e, t) {
                    for (var r = {}, o = 0, n = k(e); o < n; o++) t ? r[e[o]] = t[o] : r[e[o][0]] = e[o][1];
                    return r
                }, _.findIndex = M(1), _.findLastIndex = M(-1), _.sortedIndex = function(e, t, r, o) {
                    for (var n = (r = b(r, o, 1))(t), i = 0, s = k(e); i < s;) {
                        var a = Math.floor((i + s) / 2);
                        r(e[a]) < n ? i = a + 1 : s = a
                    }
                    return i
                }, _.indexOf = L(1, _.findIndex, _.sortedIndex), _.lastIndexOf = L(-1, _.findLastIndex), _.range = function(e, t, r) {
                    null == t && (t = e || 0, e = 0), r = r || 1;
                    for (var o = Math.max(Math.ceil((t - e) / r), 0), n = Array(o), i = 0; i < o; i++, e += r) n[i] = e;
                    return n
                };
                var P = function(e, t, r, o, n) {
                    if (!(o instanceof t)) return e.apply(r, n);
                    var i = w(e.prototype),
                        s = e.apply(i, n);
                    return _.isObject(s) ? s : i
                };
                _.bind = function(e, t) {
                    if (f && e.bind === f) return f.apply(e, c.call(arguments, 1));
                    if (!_.isFunction(e)) throw new TypeError("Bind must be called on a function");
                    var r = c.call(arguments, 2),
                        o = function() {
                            return P(e, o, t, this, r.concat(c.call(arguments)))
                        };
                    return o
                }, _.partial = function(e) {
                    var t = c.call(arguments, 1),
                        r = function() {
                            for (var o = 0, n = t.length, i = Array(n), s = 0; s < n; s++) i[s] = t[s] === _ ? arguments[o++] : t[s];
                            for (; o < arguments.length;) i.push(arguments[o++]);
                            return P(e, r, this, this, i)
                        };
                    return r
                }, _.bindAll = function(e) {
                    var t, r, o = arguments.length;
                    if (o <= 1) throw new Error("bindAll must be passed function names");
                    for (t = 1; t < o; t++) e[r = arguments[t]] = _.bind(e[r], e);
                    return e
                }, _.memoize = function(e, t) {
                    var r = function(o) {
                        var n = r.cache,
                            i = "" + (t ? t.apply(this, arguments) : o);
                        return _.has(n, i) || (n[i] = e.apply(this, arguments)), n[i]
                    };
                    return r.cache = {}, r
                }, _.delay = function(e, t) {
                    var r = c.call(arguments, 2);
                    return setTimeout((function() {
                        return e.apply(null, r)
                    }), t)
                }, _.defer = _.partial(_.delay, _, 1), _.throttle = function(e, t, r) {
                    var o, n, i, s = null,
                        a = 0;
                    r || (r = {});
                    var l = function() {
                        a = !1 === r.leading ? 0 : _.now(), s = null, i = e.apply(o, n), s || (o = n = null)
                    };
                    return function() {
                        var c = _.now();
                        a || !1 !== r.leading || (a = c);
                        var u = t - (c - a);
                        return o = this, n = arguments, u <= 0 || u > t ? (s && (clearTimeout(s), s = null), a = c, i = e.apply(o, n), s || (o = n = null)) : s || !1 === r.trailing || (s = setTimeout(l, u)), i
                    }
                }, _.debounce = function(e, t, r) {
                    var o, n, i, s, a, l = function() {
                        var c = _.now() - s;
                        c < t && c >= 0 ? o = setTimeout(l, t - c) : (o = null, r || (a = e.apply(i, n), o || (i = n = null)))
                    };
                    return function() {
                        i = this, n = arguments, s = _.now();
                        var c = r && !o;
                        return o || (o = setTimeout(l, t)), c && (a = e.apply(i, n), i = n = null), a
                    }
                }, _.wrap = function(e, t) {
                    return _.partial(t, e)
                }, _.negate = function(e) {
                    return function() {
                        return !e.apply(this, arguments)
                    }
                }, _.compose = function() {
                    var e = arguments,
                        t = e.length - 1;
                    return function() {
                        for (var r = t, o = e[t].apply(this, arguments); r--;) o = e[r].call(this, o);
                        return o
                    }
                }, _.after = function(e, t) {
                    return function() {
                        if (--e < 1) return t.apply(this, arguments)
                    }
                }, _.before = function(e, t) {
                    var r;
                    return function() {
                        return --e > 0 && (r = t.apply(this, arguments)), e <= 1 && (t = null), r
                    }
                }, _.once = _.partial(_.before, 2);
                var F = !{
                        toString: null
                    }.propertyIsEnumerable("toString"),
                    I = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];

                function D(e, t) {
                    var r = I.length,
                        o = e.constructor,
                        n = _.isFunction(o) && o.prototype || s,
                        i = "constructor";
                    for (_.has(e, i) && !_.contains(t, i) && t.push(i); r--;)(i = I[r]) in e && e[i] !== n[i] && !_.contains(t, i) && t.push(i)
                }
                _.keys = function(e) {
                    if (!_.isObject(e)) return [];
                    if (p) return p(e);
                    var t = [];
                    for (var r in e) _.has(e, r) && t.push(r);
                    return F && D(e, t), t
                }, _.allKeys = function(e) {
                    if (!_.isObject(e)) return [];
                    var t = [];
                    for (var r in e) t.push(r);
                    return F && D(e, t), t
                }, _.values = function(e) {
                    for (var t = _.keys(e), r = t.length, o = Array(r), n = 0; n < r; n++) o[n] = e[t[n]];
                    return o
                }, _.mapObject = function(e, t, r) {
                    t = b(t, r);
                    for (var o, n = _.keys(e), i = n.length, s = {}, a = 0; a < i; a++) s[o = n[a]] = t(e[o], o, e);
                    return s
                }, _.pairs = function(e) {
                    for (var t = _.keys(e), r = t.length, o = Array(r), n = 0; n < r; n++) o[n] = [t[n], e[t[n]]];
                    return o
                }, _.invert = function(e) {
                    for (var t = {}, r = _.keys(e), o = 0, n = r.length; o < n; o++) t[e[r[o]]] = r[o];
                    return t
                }, _.functions = _.methods = function(e) {
                    var t = [];
                    for (var r in e) _.isFunction(e[r]) && t.push(r);
                    return t.sort()
                }, _.extend = y(_.allKeys), _.extendOwn = _.assign = y(_.keys), _.findKey = function(e, t, r) {
                    t = b(t, r);
                    for (var o, n = _.keys(e), i = 0, s = n.length; i < s; i++)
                        if (t(e[o = n[i]], o, e)) return o
                }, _.pick = function(e, t, r) {
                    var o, n, i = {},
                        s = e;
                    if (null == s) return i;
                    _.isFunction(t) ? (n = _.allKeys(s), o = v(t, r)) : (n = A(arguments, !1, !1, 1), o = function(e, t, r) {
                        return t in r
                    }, s = Object(s));
                    for (var a = 0, l = n.length; a < l; a++) {
                        var c = n[a],
                            u = s[c];
                        o(u, c, s) && (i[c] = u)
                    }
                    return i
                }, _.omit = function(e, t, r) {
                    if (_.isFunction(t)) t = _.negate(t);
                    else {
                        var o = _.map(A(arguments, !1, !1, 1), String);
                        t = function(e, t) {
                            return !_.contains(o, t)
                        }
                    }
                    return _.pick(e, t, r)
                }, _.defaults = y(_.allKeys, !0), _.create = function(e, t) {
                    var r = w(e);
                    return t && _.extendOwn(r, t), r
                }, _.clone = function(e) {
                    return _.isObject(e) ? _.isArray(e) ? e.slice() : _.extend({}, e) : e
                }, _.tap = function(e, t) {
                    return t(e), e
                }, _.isMatch = function(e, t) {
                    var r = _.keys(t),
                        o = r.length;
                    if (null == e) return !o;
                    for (var n = Object(e), i = 0; i < o; i++) {
                        var s = r[i];
                        if (t[s] !== n[s] || !(s in n)) return !1
                    }
                    return !0
                };
                var O = function(e, t, r, o) {
                    if (e === t) return 0 !== e || 1 / e == 1 / t;
                    if (null == e || null == t) return e === t;
                    e instanceof _ && (e = e._wrapped), t instanceof _ && (t = t._wrapped);
                    var n = u.call(e);
                    if (n !== u.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
                    }
                    var i = "[object Array]" === n;
                    if (!i) {
                        if ("object" != typeof e || "object" != typeof t) return !1;
                        var s = e.constructor,
                            a = t.constructor;
                        if (s !== a && !(_.isFunction(s) && s instanceof s && _.isFunction(a) && a instanceof a) && "constructor" in e && "constructor" in t) return !1
                    }
                    o = o || [];
                    for (var l = (r = r || []).length; l--;)
                        if (r[l] === e) return o[l] === t;
                    if (r.push(e), o.push(t), i) {
                        if ((l = e.length) !== t.length) return !1;
                        for (; l--;)
                            if (!O(e[l], t[l], r, o)) return !1
                    } else {
                        var c, d = _.keys(e);
                        if (l = d.length, _.keys(t).length !== l) return !1;
                        for (; l--;)
                            if (c = d[l], !_.has(t, c) || !O(e[c], t[c], r, o)) return !1
                    }
                    return r.pop(), o.pop(), !0
                };
                _.isEqual = function(e, t) {
                    return O(e, t)
                }, _.isEmpty = function(e) {
                    return null == e || (E(e) && (_.isArray(e) || _.isString(e) || _.isArguments(e)) ? 0 === e.length : 0 === _.keys(e).length)
                }, _.isElement = function(e) {
                    return !(!e || 1 !== e.nodeType)
                }, _.isArray = h || function(e) {
                    return "[object Array]" === u.call(e)
                }, _.isObject = function(e) {
                    var t = typeof e;
                    return "function" === t || "object" === t && !!e
                }, _.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], (function(e) {
                    _["is" + e] = function(t) {
                        return u.call(t) === "[object " + e + "]"
                    }
                })), _.isArguments(arguments) || (_.isArguments = function(e) {
                    return _.has(e, "callee")
                }), "object" != typeof Int8Array && (_.isFunction = function(e) {
                    return "function" == typeof e || !1
                }), _.isFinite = function(e) {
                    return isFinite(e) && !isNaN(parseFloat(e))
                }, _.isNaN = function(e) {
                    return _.isNumber(e) && e !== +e
                }, _.isBoolean = function(e) {
                    return !0 === e || !1 === e || "[object Boolean]" === u.call(e)
                }, _.isNull = function(e) {
                    return null === e
                }, _.isUndefined = function(e) {
                    return void 0 === e
                }, _.has = function(e, t) {
                    return null != e && d.call(e, t)
                }, _.noConflict = function() {
                    return o._ = n, this
                }, _.identity = function(e) {
                    return e
                }, _.constant = function(e) {
                    return function() {
                        return e
                    }
                }, _.noop = function() {}, _.property = S, _.propertyOf = function(e) {
                    return null == e ? function() {} : function(t) {
                        return e[t]
                    }
                }, _.matcher = _.matches = function(e) {
                    return e = _.extendOwn({}, e),
                        function(t) {
                            return _.isMatch(t, e)
                        }
                }, _.times = function(e, t, r) {
                    var o = Array(Math.max(0, e));
                    t = v(t, r, 1);
                    for (var n = 0; n < e; n++) o[n] = t(n);
                    return o
                }, _.random = function(e, t) {
                    return null == t && (t = e, e = 0), e + Math.floor(Math.random() * (t - e + 1))
                }, _.now = Date.now || function() {
                    return (new Date).getTime()
                };
                var R = {
                        "&": "&amp;",
                        "<": "&lt;",
                        ">": "&gt;",
                        '"': "&quot;",
                        "'": "&#x27;",
                        "`": "&#x60;"
                    },
                    B = _.invert(R),
                    N = function(e) {
                        var t = function(t) {
                                return e[t]
                            },
                            r = "(?:" + _.keys(e).join("|") + ")",
                            o = RegExp(r),
                            n = RegExp(r, "g");
                        return function(e) {
                            return e = null == e ? "" : "" + e, o.test(e) ? e.replace(n, t) : e
                        }
                    };
                _.escape = N(R), _.unescape = N(B), _.result = function(e, t, r) {
                    var o = null == e ? void 0 : e[t];
                    return void 0 === o && (o = r), _.isFunction(o) ? o.call(e) : o
                };
                var $ = 0;
                _.uniqueId = function(e) {
                    var t = ++$ + "";
                    return e ? e + t : t
                }, _.templateSettings = {
                    evaluate: /<%([\s\S]+?)%>/g,
                    interpolate: /<%=([\s\S]+?)%>/g,
                    escape: /<%-([\s\S]+?)%>/g
                };
                var j = /(.)^/,
                    W = {
                        "'": "'",
                        "\\": "\\",
                        "\r": "r",
                        "\n": "n",
                        "\u2028": "u2028",
                        "\u2029": "u2029"
                    },
                    V = /\\|'|\r|\n|\u2028|\u2029/g,
                    U = function(e) {
                        return "\\" + W[e]
                    };
                _.template = function(e, t, r) {
                    !t && r && (t = r), t = _.defaults({}, t, _.templateSettings);
                    var o = RegExp([(t.escape || j).source, (t.interpolate || j).source, (t.evaluate || j).source].join("|") + "|$", "g"),
                        n = 0,
                        i = "__p+='";
                    e.replace(o, (function(t, r, o, s, a) {
                        return i += e.slice(n, a).replace(V, U), n = a + t.length, r ? i += "'+\n((__t=(" + r + "))==null?'':_.escape(__t))+\n'" : o ? i += "'+\n((__t=(" + o + "))==null?'':__t)+\n'" : s && (i += "';\n" + s + "\n__p+='"), t
                    })), i += "';\n", t.variable || (i = "with(obj||{}){\n" + i + "}\n"), i = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + i + "return __p;\n";
                    try {
                        var s = new Function(t.variable || "obj", "_", i)
                    } catch (e) {
                        throw e.source = i, e
                    }
                    var a = function(e) {
                            return s.call(this, e, _)
                        },
                        l = t.variable || "obj";
                    return a.source = "function(" + l + "){\n" + i + "}", a
                }, _.chain = function(e) {
                    var t = _(e);
                    return t._chain = !0, t
                };
                var q = function(e, t) {
                    return e._chain ? _(t).chain() : t
                };
                _.mixin = function(e) {
                    _.each(_.functions(e), (function(t) {
                        var r = _[t] = e[t];
                        _.prototype[t] = function() {
                            var e = [this._wrapped];
                            return l.apply(e, arguments), q(this, r.apply(_, e))
                        }
                    }))
                }, _.mixin(_), _.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], (function(e) {
                    var t = i[e];
                    _.prototype[e] = function() {
                        var r = this._wrapped;
                        return t.apply(r, arguments), "shift" !== e && "splice" !== e || 0 !== r.length || delete r[0], q(this, r)
                    }
                })), _.each(["concat", "join", "slice"], (function(e) {
                    var t = i[e];
                    _.prototype[e] = function() {
                        return q(this, t.apply(this._wrapped, arguments))
                    }
                })), _.prototype.value = function() {
                    return this._wrapped
                }, _.prototype.valueOf = _.prototype.toJSON = _.prototype.value, _.prototype.toString = function() {
                    return "" + this._wrapped
                }, void 0 === (r = function() {
                    return _
                }.apply(t, [])) || (e.exports = r)
            }).call(this)
        },
        4879: (e, t, r) => {
            var o = {
                "./flag-square-ad.svg": 77431,
                "./flag-square-ae.svg": 87855,
                "./flag-square-af.svg": 46838,
                "./flag-square-ag.svg": 19112,
                "./flag-square-ai.svg": 30864,
                "./flag-square-al.svg": 49775,
                "./flag-square-am.svg": 69031,
                "./flag-square-ao.svg": 99296,
                "./flag-square-ar.svg": 63010,
                "./flag-square-as.svg": 11712,
                "./flag-square-at.svg": 44161,
                "./flag-square-au.svg": 59686,
                "./flag-square-aw.svg": 67851,
                "./flag-square-ax.svg": 63471,
                "./flag-square-az.svg": 45185,
                "./flag-square-ba.svg": 66755,
                "./flag-square-bb.svg": 73472,
                "./flag-square-bd.svg": 13060,
                "./flag-square-be.svg": 56199,
                "./flag-square-bf.svg": 9687,
                "./flag-square-bg.svg": 91995,
                "./flag-square-bh.svg": 1440,
                "./flag-square-bi.svg": 85239,
                "./flag-square-bj.svg": 24226,
                "./flag-square-bl.svg": 67596,
                "./flag-square-bm.svg": 21340,
                "./flag-square-bn.svg": 51258,
                "./flag-square-bo.svg": 83397,
                "./flag-square-bq.svg": 51253,
                "./flag-square-br.svg": 64253,
                "./flag-square-bs.svg": 24059,
                "./flag-square-bt.svg": 29951,
                "./flag-square-btc.svg": 82317,
                "./flag-square-bw.svg": 12762,
                "./flag-square-by.svg": 45475,
                "./flag-square-bz.svg": 48871,
                "./flag-square-ca.svg": 49665,
                "./flag-square-cc.svg": 47939,
                "./flag-square-cd.svg": 1534,
                "./flag-square-cf.svg": 91592,
                "./flag-square-cg.svg": 93941,
                "./flag-square-ch.svg": 40514,
                "./flag-square-ci.svg": 95761,
                "./flag-square-ck.svg": 0,
                "./flag-square-cl.svg": 7371,
                "./flag-square-cm.svg": 77158,
                "./flag-square-cn.svg": 57906,
                "./flag-square-co.svg": 63836,
                "./flag-square-cr.svg": 10513,
                "./flag-square-cu.svg": 66158,
                "./flag-square-cv.svg": 34440,
                "./flag-square-cw.svg": 1683,
                "./flag-square-cx.svg": 27453,
                "./flag-square-cy.svg": 92378,
                "./flag-square-cz.svg": 87683,
                "./flag-square-de.svg": 99769,
                "./flag-square-dj.svg": 72564,
                "./flag-square-dk.svg": 16808,
                "./flag-square-dm.svg": 31572,
                "./flag-square-do.svg": 60388,
                "./flag-square-dz.svg": 29016,
                "./flag-square-ec.svg": 72792,
                "./flag-square-ee.svg": 5862,
                "./flag-square-eg.svg": 71321,
                "./flag-square-eh.svg": 17341,
                "./flag-square-er.svg": 29760,
                "./flag-square-es.svg": 9278,
                "./flag-square-et.svg": 92599,
                "./flag-square-eu.svg": 67132,
                "./flag-square-fi.svg": 12099,
                "./flag-square-fj.svg": 32423,
                "./flag-square-fk.svg": 75511,
                "./flag-square-fm.svg": 25515,
                "./flag-square-fo.svg": 91112,
                "./flag-square-forex.svg": 47094,
                "./flag-square-fr.svg": 59315,
                "./flag-square-ga.svg": 82821,
                "./flag-square-gb.svg": 73306,
                "./flag-square-gd.svg": 89539,
                "./flag-square-ge.svg": 55061,
                "./flag-square-gf.svg": 39483,
                "./flag-square-gg.svg": 65614,
                "./flag-square-gh.svg": 56932,
                "./flag-square-gi.svg": 64749,
                "./flag-square-gl.svg": 60257,
                "./flag-square-gm.svg": 25797,
                "./flag-square-gn.svg": 39174,
                "./flag-square-gp.svg": 43438,
                "./flag-square-gq.svg": 48104,
                "./flag-square-gr.svg": 23748,
                "./flag-square-gs.svg": 44571,
                "./flag-square-gt.svg": 49078,
                "./flag-square-gu.svg": 33037,
                "./flag-square-gw.svg": 2074,
                "./flag-square-gy.svg": 34221,
                "./flag-square-hk.svg": 64833,
                "./flag-square-hn.svg": 63365,
                "./flag-square-hr.svg": 96318,
                "./flag-square-ht.svg": 67530,
                "./flag-square-hu.svg": 5549,
                "./flag-square-id.svg": 58438,
                "./flag-square-ie.svg": 88307,
                "./flag-square-ik.svg": 95984,
                "./flag-square-il.svg": 34244,
                "./flag-square-im.svg": 63716,
                "./flag-square-in.svg": 48726,
                "./flag-square-io.svg": 11145,
                "./flag-square-iq.svg": 76285,
                "./flag-square-ir.svg": 59322,
                "./flag-square-is.svg": 284,
                "./flag-square-it.svg": 10794,
                "./flag-square-je.svg": 36276,
                "./flag-square-jm.svg": 73869,
                "./flag-square-jo.svg": 6122,
                "./flag-square-jp.svg": 6922,
                "./flag-square-ke.svg": 62814,
                "./flag-square-kg.svg": 65618,
                "./flag-square-kh.svg": 44130,
                "./flag-square-ki.svg": 50852,
                "./flag-square-km.svg": 79101,
                "./flag-square-kn.svg": 81055,
                "./flag-square-kp.svg": 51177,
                "./flag-square-kr.svg": 47504,
                "./flag-square-kw.svg": 46265,
                "./flag-square-ky.svg": 13306,
                "./flag-square-kz.svg": 87442,
                "./flag-square-la.svg": 40787,
                "./flag-square-lb.svg": 63019,
                "./flag-square-lc.svg": 25679,
                "./flag-square-li.svg": 62037,
                "./flag-square-lk.svg": 46603,
                "./flag-square-lr.svg": 44991,
                "./flag-square-ls.svg": 62255,
                "./flag-square-lt.svg": 32295,
                "./flag-square-lu.svg": 42882,
                "./flag-square-lv.svg": 77143,
                "./flag-square-ly.svg": 8083,
                "./flag-square-ma.svg": 67420,
                "./flag-square-mc.svg": 22090,
                "./flag-square-md.svg": 78486,
                "./flag-square-me.svg": 63075,
                "./flag-square-mf.svg": 72413,
                "./flag-square-mg.svg": 98225,
                "./flag-square-mh.svg": 41026,
                "./flag-square-mk.svg": 92157,
                "./flag-square-ml.svg": 77024,
                "./flag-square-mm.svg": 29481,
                "./flag-square-mn.svg": 58174,
                "./flag-square-mo.svg": 18366,
                "./flag-square-mock-dark.svg": 90291,
                "./flag-square-mock.svg": 32559,
                "./flag-square-mp.svg": 52096,
                "./flag-square-mq.svg": 53648,
                "./flag-square-mr.svg": 31564,
                "./flag-square-ms.svg": 37654,
                "./flag-square-mt.svg": 36983,
                "./flag-square-mu.svg": 59725,
                "./flag-square-mv.svg": 55798,
                "./flag-square-mw.svg": 81634,
                "./flag-square-mx.svg": 87276,
                "./flag-square-my.svg": 39857,
                "./flag-square-mz.svg": 33093,
                "./flag-square-na.svg": 32341,
                "./flag-square-nc.svg": 4874,
                "./flag-square-ne.svg": 70015,
                "./flag-square-nf.svg": 93575,
                "./flag-square-ng.svg": 177,
                "./flag-square-ni.svg": 91252,
                "./flag-square-nl.svg": 76341,
                "./flag-square-no.svg": 80209,
                "./flag-square-np.svg": 38688,
                "./flag-square-nr.svg": 23162,
                "./flag-square-nu.svg": 53323,
                "./flag-square-nz.svg": 19879,
                "./flag-square-om.svg": 20769,
                "./flag-square-pa.svg": 43938,
                "./flag-square-pe.svg": 61591,
                "./flag-square-pf.svg": 15319,
                "./flag-square-pg.svg": 38418,
                "./flag-square-ph.svg": 52185,
                "./flag-square-pk.svg": 11063,
                "./flag-square-pl.svg": 34979,
                "./flag-square-pm.svg": 30302,
                "./flag-square-pr.svg": 83764,
                "./flag-square-ps.svg": 44359,
                "./flag-square-pt.svg": 37269,
                "./flag-square-pw.svg": 84452,
                "./flag-square-py.svg": 25903,
                "./flag-square-qa.svg": 12442,
                "./flag-square-re.svg": 35248,
                "./flag-square-ro.svg": 1195,
                "./flag-square-rs.svg": 54617,
                "./flag-square-ru.svg": 6702,
                "./flag-square-rw.svg": 65030,
                "./flag-square-sa.svg": 58541,
                "./flag-square-sb.svg": 97519,
                "./flag-square-sc.svg": 68713,
                "./flag-square-sd.svg": 58480,
                "./flag-square-se.svg": 46803,
                "./flag-square-sg.svg": 86390,
                "./flag-square-sh.svg": 523,
                "./flag-square-si.svg": 45767,
                "./flag-square-sj.svg": 72946,
                "./flag-square-sk.svg": 5344,
                "./flag-square-sl.svg": 79035,
                "./flag-square-sm.svg": 37536,
                "./flag-square-sn.svg": 29053,
                "./flag-square-so.svg": 86055,
                "./flag-square-sr.svg": 41654,
                "./flag-square-ss.svg": 42251,
                "./flag-square-st.svg": 33627,
                "./flag-square-sv.svg": 11983,
                "./flag-square-sx.svg": 43149,
                "./flag-square-sy.svg": 22995,
                "./flag-square-sz.svg": 41030,
                "./flag-square-tc.svg": 40754,
                "./flag-square-td.svg": 58310,
                "./flag-square-tg.svg": 99720,
                "./flag-square-th.svg": 91382,
                "./flag-square-tj.svg": 35975,
                "./flag-square-tk.svg": 71326,
                "./flag-square-tl.svg": 28217,
                "./flag-square-tm.svg": 62469,
                "./flag-square-tn.svg": 75514,
                "./flag-square-to.svg": 52593,
                "./flag-square-tr.svg": 31729,
                "./flag-square-tt.svg": 91948,
                "./flag-square-tv.svg": 75974,
                "./flag-square-tw.svg": 47338,
                "./flag-square-tz.svg": 49021,
                "./flag-square-ua.svg": 82026,
                "./flag-square-ug.svg": 89760,
                "./flag-square-uk.svg": 88398,
                "./flag-square-us.svg": 85612,
                "./flag-square-uy.svg": 78455,
                "./flag-square-uz.svg": 44390,
                "./flag-square-va.svg": 90978,
                "./flag-square-vc.svg": 14550,
                "./flag-square-ve.svg": 80865,
                "./flag-square-vg.svg": 52902,
                "./flag-square-vi.svg": 81312,
                "./flag-square-vn.svg": 77568,
                "./flag-square-vu.svg": 56447,
                "./flag-square-wf.svg": 53010,
                "./flag-square-ws.svg": 21376,
                "./flag-square-ww.svg": 7721,
                "./flag-square-xk.svg": 52616,
                "./flag-square-ye.svg": 30819,
                "./flag-square-yt.svg": 55065,
                "./flag-square-za.svg": 69721,
                "./flag-square-zm.svg": 85950,
                "./flag-square-zw.svg": 82909
            };

            function n(e) {
                var t = i(e);
                return r(t)
            }

            function i(e) {
                if (!r.o(o, e)) {
                    var t = new Error("Cannot find module '" + e + "'");
                    throw t.code = "MODULE_NOT_FOUND", t
                }
                return o[e]
            }
            n.keys = function() {
                return Object.keys(o)
            }, n.resolve = i, e.exports = n, n.id = 4879
        },
        86240: e => {
            "use strict";
            e.exports = JSON.parse('{"size-sticky-symbol-header-height":"64px","media-phone":"screen and (max-width: 767px)","media-phone-vertical":"screen and (max-width: 479px)","media-mf-legacy-phone":"screen and (min-width: 480px)","media-mf-legacy-notebook":"screen and (min-width: 1020px)","media-mf-phone-landscape":"screen and (min-width: 568px)","media-mf-tablet-vertical":"screen and (min-width: 768px)","media-mf-tablet-landscape":"screen and (min-width: 1024px)","media-mf-laptop":"screen and (min-width: 1280px)","z-index-sticky-search-bar":101}')
        },
        55357: e => {
            "use strict";
            e.exports = JSON.parse('{"us":{"title":"USA","screenerName":"america","screenerTimezone":"America/New_York","defaultExchange":"US","exchangesForHotlist":["AMEX","NASDAQ","NYSE","OTC","US"],"exchangesStocks":["NASDAQ","NYSE","NYSE ARCA","OTC"],"group":"North America"},"ae":{"title":"United Arab Emirates","screenerName":"uae","screenerTimezone":"Asia/Dubai","exchangesStocks":["DFM"],"group":"Middle East / Africa"},"ar":{"title":"Argentina","screenerName":"argentina","screenerTimezone":"America/Argentina/Buenos_Aires","exchangesForHotlist":["BCBA"],"exchangesStocks":["BYMA"],"defaultExchange":"BCBA","group":"Mexico and South America"},"at":{"title":"Austria"},"au":{"title":"Australia","screenerName":"australia","screenerTimezone":"Australia/Sydney","exchangesStocks":["ASX"],"group":"Asia / Pacific"},"be":{"title":"Belgium","screenerName":"belgium","screenerTimezone":"Europe/Brussels","exchangesForHotlist":["EURONEXT_BRU"],"exchangesStocks":["EURONEXTBRU"],"defaultExchange":"EURONEXT_BRU","group":"Europe"},"bh":{"title":"Bahrain","screenerName":"bahrain","screenerTimezone":"Asia/Bahrain","exchangesStocks":["BAHRAIN"],"group":"Middle East / Africa"},"br":{"title":"Brazil","screenerName":"brazil","screenerTimezone":"America/Sao_Paulo","exchangesStocks":["BMFBOVESPA"],"group":"Mexico and South America"},"ca":{"title":"Canada","screenerName":"canada","screenerTimezone":"America/Toronto","exchangesStocks":["TSX","TSXV","CSE","NEO"],"group":"North America"},"ch":{"title":"Switzerland","screenerName":"switzerland","screenerTimezone":"Europe/Zurich","exchangesStocks":["SIX"],"group":"Europe"},"cl":{"title":"Chile","screenerName":"chile","screenerTimezone":"America/Santiago","exchangesStocks":["BCS"],"group":"Mexico and South America"},"cn":{"title":"China","tvLocale":"zh_CN","screenerName":"china","screenerTimezone":"Asia/Hong_Kong","exchangesStocks":["SSE","SZSE"],"group":"Asia / Pacific"},"co":{"title":"Colombia","screenerName":"colombia","screenerTimezone":"America/Bogota","exchangesStocks":["BVC"],"group":"Mexico and South America"},"cz":{"title":"Czech Republic"},"de":{"title":"Germany","tvLocale":"de_DE","screenerName":"germany","screenerTimezone":"Europe/Berlin","defaultExchange":"XETR","exchangesStocks":["FWB","SWB","XETR","BER","DUS","HAM","HAN","MUN"],"group":"Europe"},"dk":{"title":"Denmark","screenerName":"denmark","screenerTimezone":"Europe/Copenhagen","exchangesStocks":["OMXCOP"],"group":"Europe"},"ee":{"title":"Estonia","screenerName":"estonia","screenerTimezone":"Europe/Tallinn","exchangesStocks":["OMXTSE"],"group":"Europe"},"eg":{"title":"Egypt","screenerName":"egypt","screenerTimezone":"Africa/Cairo","exchangesStocks":["EGX"],"group":"Middle East / Africa"},"es":{"title":"Spain","screenerName":"spain","screenerTimezone":"Europe/Madrid","exchangesStocks":["BME"],"group":"Europe"},"eu":{"title":"European Union","screenerName":"euronext","screenerTimezone":"Europe/Paris","exchangesForHotlist":[],"exchangesStocks":["EURONEXT"]},"fi":{"title":"Finland","screenerName":"finland","screenerTimezone":"Europe/Helsinki","exchangesStocks":["OMXHEX"],"group":"Europe"},"fr":{"title":"France","screenerName":"france","screenerTimezone":"Europe/Paris","exchangesForHotlist":["EURONEXT_PAR"],"exchangesStocks":["EURONEXTPAR"],"defaultExchange":"EURONEXT_PAR","group":"Europe"},"gr":{"title":"Greece","screenerName":"greece","screenerTimezone":"Europe/Athens","exchangesStocks":["ATHEX"],"group":"Europe"},"hk":{"title":"Hong Kong","screenerName":"hongkong","screenerTimezone":"Asia/Hong_Kong","exchangesStocks":["HKEX"],"group":"Asia / Pacific"},"hu":{"title":"Hungary"},"id":{"title":"Indonesia","screenerName":"indonesia","screenerTimezone":"Asia/Jakarta","exchangesStocks":["IDX"],"group":"Asia / Pacific"},"ie":{"title":"Ireland"},"il":{"title":"Israel","screenerName":"israel","screenerTimezone":"Asia/Jerusalem","exchangesStocks":["TASE"],"group":"Middle East / Africa"},"in":{"title":"India","screenerName":"india","screenerTimezone":"Asia/Kolkata","exchangesStocks":["BSE","NSE"],"group":"Asia / Pacific"},"ir":{"title":"Iran"},"is":{"title":"Iceland","screenerName":"iceland","screenerTimezone":"Atlantic/Reykjavik","exchangesStocks":["OMXICE"],"group":"Europe"},"it":{"title":"Italy","screenerName":"italy","screenerTimezone":"Europe/Rome","exchangesForHotlist":["MIL"],"exchangesStocks":["MIL"],"group":"Europe"},"jp":{"title":"Japan","tvLocale":"ja","screenerName":"japan","screenerTimezone":"Asia/Tokyo","defaultExchange":"TSE","exchangesForHotlist":["NAG","TSE"],"exchangesStocks":["TSE","NAG","FSE","SAPSE"],"group":"Asia / Pacific"},"kp":{"title":"Noth Korea"},"kr":{"title":"South Korea","tvLocale":"kr","screenerName":"korea","screenerTimezone":"Asia/Seoul","exchangesStocks":["KRX"],"group":"Asia / Pacific"},"lt":{"title":"Lithuania","screenerName":"lithuania","screenerTimezone":"Europe/Vilnius","exchangesStocks":["OMXVSE"],"group":"Europe"},"lv":{"title":"Latvia","screenerName":"latvia","screenerTimezone":"Europe/Riga","exchangesStocks":["OMXRSE"],"group":"Europe"},"lu":{"title":"Luxembourg","screenerName":"luxembourg","screenerTimezone":"Europe/Luxembourg","exchangesStocks":["LUXSE"],"exchangesForHotlist":["LUXSE"],"defaultExchange":"LUXSE","group":"Europe"},"mx":{"title":"Mexico","screenerName":"mexico","screenerTimezone":"America/Mexico_City","exchangesStocks":["BMV"],"group":"Mexico and South America"},"my":{"title":"Malaysia","tvLocale":"ms_MY","screenerName":"malaysia","screenerTimezone":"Asia/Singapore","exchangesStocks":["MYX"],"group":"Asia / Pacific"},"ng":{"title":"Nigeria","screenerName":"nigeria","screenerTimezone":"Africa/Lagos","exchangesStocks":["NSENG"],"group":"Middle East / Africa"},"nl":{"title":"Netherlands","screenerName":"netherlands","screenerTimezone":"Europe/Amsterdam","exchangesForHotlist":["EURONEXT_AMS"],"exchangesStocks":["EURONEXTAMS"],"defaultExchange":"EURONEXT_AMS","group":"Europe"},"no":{"title":"Norway","screenerName":"norway","screenerTimezone":"Europe/Oslo","exchangesForHotlist":["OSL"],"exchangesStocks":["EURONEXTOSE"],"defaultExchange":"OSL","group":"Europe"},"nz":{"title":"New Zealand","screenerName":"newzealand","screenerTimezone":"Pacific/Auckland","exchangesStocks":["NZX"],"group":"Asia / Pacific"},"pe":{"title":"Peru","screenerName":"peru","screenerTimezone":"America/Lima","exchangesStocks":["BVL"],"group":"Mexico and South America"},"ph":{"title":"Philippines","screenerName":"philippines","screenerTimezone":"Philippines/Manila","exchangesStocks":["PSE"],"group":"Asia / Pacific"},"pl":{"title":"Poland","screenerName":"poland","screenerTimezone":"Europe/Warsaw","exchangesStocks":["GPW","NEWCONNECT"],"group":"Europe"},"pt":{"title":"Portugal","screenerName":"portugal","screenerTimezone":"Europe/Lisbon","exchangesForHotlist":["EURONEXT_LIS"],"exchangesStocks":["EURONEXTLIS"],"defaultExchange":"EURONEXT_LIS","group":"Europe"},"qa":{"title":"Qatar","screenerName":"qatar","screenerTimezone":"Asia/Qatar","exchangesStocks":["QSE"],"group":"Middle East / Africa"},"ro":{"title":"Romania","screenerName":"romania","screenerTimezone":"Europe/Bucharest","exchangesStocks":["BVB"],"exchangesForHotlist":["BVB"],"defaultExchange":"BVB","group":"Europe"},"rs":{"title":"Serbia","screenerName":"serbia","screenerTimezone":"Europe/Belgrade","exchangesStocks":["BELEX"],"group":"Europe"},"ru":{"title":"Russia","screenerName":"russia","screenerTimezone":"Europe/Moscow","exchangesStocks":["MOEX"],"group":"Europe"},"sa":{"title":"Saudi Arabia","tvLocale":"ar_AE","screenerName":"ksa","screenerTimezone":"Asia/Riyadh","exchangesStocks":["TADAWUL"],"group":"Middle East / Africa"},"se":{"title":"Sweden","tvLocale":"sv_SE","screenerName":"sweden","screenerTimezone":"Europe/Stockholm","exchangesStocks":["NGM","OMXSTO"],"exchangesForHotlist":["NGM","OMXSTO"],"group":"Europe"},"sg":{"title":"Singapore","screenerName":"singapore","screenerTimezone":"Asia/Singapore","exchangesStocks":["SGX"],"group":"Asia / Pacific"},"sk":{"title":"Slovakia","screenerName":"slovakia","screenerTimezone":"Europe/Bratislava","exchangesStocks":["BSSE"],"group":"Europe"},"th":{"title":"Thailand","tvLocale":"th_TH","screenerName":"thailand","screenerTimezone":"Asia/Bangkok","exchangesStocks":["SET"],"group":"Asia / Pacific"},"tr":{"title":"Turkey","screenerName":"turkey","screenerTimezone":"Europe/Istanbul","exchangesStocks":["BIST"],"group":"Europe"},"tw":{"title":"Taiwan","tvLocale":"zh_TW","screenerName":"taiwan","screenerTimezone":"Asia/Taipei","exchangesStocks":["TWSE","TPEX"],"group":"Asia / Pacific"},"uk":{"title":"United Kingdom","screenerName":"uk","screenerTimezone":"Europe/London","defaultExchange":"LSE","exchangesStocks":["LSE","LSIN"],"group":"Europe"},"vn":{"title":"Vietnam","tvLocale":"vi_VN","screenerName":"vietnam","screenerTimezone":"Asia/Ho_Chi_Minh","exchangesStocks":["HOSE","HNX","UPCOM"],"group":"Asia / Pacific"},"za":{"title":"South Africa","screenerName":"rsa","screenerTimezone":"Africa/Johannesburg","exchangesStocks":["JSE"],"group":"Middle East / Africa"},"ww":{"title":"Worldwide"}}')
        },
        22949: e => {
            "use strict";
            e.exports = JSON.parse('["us","ae","ar","au","be","bh","br","ca","ch","cl","cn","co","de","dk","ee","eg","es","fi","fr","gr","hk","id","il","in","is","it","jp","kr","lt","lv","lu","mx","my","ng","nl","no","nz","pe","ph","pl","pt","qa","rs","ru","ro","sa","se","sg","sk","th","tr","tw","uk","vn","za"]')
        }
    },
    e => {
        e.O(0, [23876, 5205, 52273, 59456, 43894, 25535, 87127, 38817, 76520, 53684, 4327, 51219, 42118, 47607, 73618, 30209, 18078, 42732, 67470, 12141, 20629, 75173, 89109, 16861, 13336, 96789, 13523], () => {
            return t = 16191, e(e.s = t);
            var t
        });
        e.O()
    }
]);